@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.
Files changed (169) hide show
  1. package/dist/src/cli-commands/packs/add/command.d.ts +14 -0
  2. package/dist/src/cli-commands/packs/add/command.d.ts.map +1 -0
  3. package/dist/src/cli-commands/packs/add/command.js +52 -0
  4. package/dist/src/cli-commands/packs/add/command.js.map +1 -0
  5. package/dist/src/cli-commands/packs/add/handler.d.ts +23 -0
  6. package/dist/src/cli-commands/packs/add/handler.d.ts.map +1 -0
  7. package/dist/src/cli-commands/packs/add/handler.js +135 -0
  8. package/dist/src/cli-commands/packs/add/handler.js.map +1 -0
  9. package/dist/src/cli-commands/packs/command.d.ts +3 -0
  10. package/dist/src/cli-commands/packs/command.d.ts.map +1 -0
  11. package/dist/src/cli-commands/packs/command.js +33 -0
  12. package/dist/src/cli-commands/packs/command.js.map +1 -0
  13. package/dist/src/cli-commands/packs/index.d.ts +13 -0
  14. package/dist/src/cli-commands/packs/index.d.ts.map +1 -0
  15. package/dist/src/cli-commands/packs/index.js +12 -0
  16. package/dist/src/cli-commands/packs/index.js.map +1 -0
  17. package/dist/src/cli-commands/packs/install/build-plan.d.ts +19 -0
  18. package/dist/src/cli-commands/packs/install/build-plan.d.ts.map +1 -0
  19. package/dist/src/cli-commands/packs/install/build-plan.js +44 -0
  20. package/dist/src/cli-commands/packs/install/build-plan.js.map +1 -0
  21. package/dist/src/cli-commands/packs/install/command.d.ts +17 -0
  22. package/dist/src/cli-commands/packs/install/command.d.ts.map +1 -0
  23. package/dist/src/cli-commands/packs/install/command.js +66 -0
  24. package/dist/src/cli-commands/packs/install/command.js.map +1 -0
  25. package/dist/src/cli-commands/packs/install/handler.d.ts +43 -0
  26. package/dist/src/cli-commands/packs/install/handler.d.ts.map +1 -0
  27. package/dist/src/cli-commands/packs/install/handler.js +180 -0
  28. package/dist/src/cli-commands/packs/install/handler.js.map +1 -0
  29. package/dist/src/cli-commands/packs/install/install-pack.d.ts +20 -0
  30. package/dist/src/cli-commands/packs/install/install-pack.d.ts.map +1 -0
  31. package/dist/src/cli-commands/packs/install/install-pack.js +42 -0
  32. package/dist/src/cli-commands/packs/install/install-pack.js.map +1 -0
  33. package/dist/src/cli-commands/packs/new/command.d.ts +14 -0
  34. package/dist/src/cli-commands/packs/new/command.d.ts.map +1 -0
  35. package/dist/src/cli-commands/packs/new/command.js +51 -0
  36. package/dist/src/cli-commands/packs/new/command.js.map +1 -0
  37. package/dist/src/cli-commands/packs/new/handler.d.ts +23 -0
  38. package/dist/src/cli-commands/packs/new/handler.d.ts.map +1 -0
  39. package/dist/src/cli-commands/packs/new/handler.js +96 -0
  40. package/dist/src/cli-commands/packs/new/handler.js.map +1 -0
  41. package/dist/src/cli-commands/packs/operations.d.ts +67 -0
  42. package/dist/src/cli-commands/packs/operations.d.ts.map +1 -0
  43. package/dist/src/cli-commands/packs/operations.js +10 -0
  44. package/dist/src/cli-commands/packs/operations.js.map +1 -0
  45. package/dist/src/cli-commands/packs/pack-paths.d.ts +28 -0
  46. package/dist/src/cli-commands/packs/pack-paths.d.ts.map +1 -0
  47. package/dist/src/cli-commands/packs/pack-paths.js +22 -0
  48. package/dist/src/cli-commands/packs/pack-paths.js.map +1 -0
  49. package/dist/src/cli-commands/packs/publish/command.d.ts +15 -0
  50. package/dist/src/cli-commands/packs/publish/command.d.ts.map +1 -0
  51. package/dist/src/cli-commands/packs/publish/command.js +56 -0
  52. package/dist/src/cli-commands/packs/publish/command.js.map +1 -0
  53. package/dist/src/cli-commands/packs/publish/handler.d.ts +34 -0
  54. package/dist/src/cli-commands/packs/publish/handler.d.ts.map +1 -0
  55. package/dist/src/cli-commands/packs/publish/handler.js +123 -0
  56. package/dist/src/cli-commands/packs/publish/handler.js.map +1 -0
  57. package/dist/src/cli-commands/packs/publish/publish-pack.d.ts +26 -0
  58. package/dist/src/cli-commands/packs/publish/publish-pack.d.ts.map +1 -0
  59. package/dist/src/cli-commands/packs/publish/publish-pack.js +142 -0
  60. package/dist/src/cli-commands/packs/publish/publish-pack.js.map +1 -0
  61. package/dist/src/cli-commands/packs/remove/command.d.ts +14 -0
  62. package/dist/src/cli-commands/packs/remove/command.d.ts.map +1 -0
  63. package/dist/src/cli-commands/packs/remove/command.js +52 -0
  64. package/dist/src/cli-commands/packs/remove/command.js.map +1 -0
  65. package/dist/src/cli-commands/packs/remove/handler.d.ts +23 -0
  66. package/dist/src/cli-commands/packs/remove/handler.d.ts.map +1 -0
  67. package/dist/src/cli-commands/packs/remove/handler.js +115 -0
  68. package/dist/src/cli-commands/packs/remove/handler.js.map +1 -0
  69. package/dist/src/cli-commands/packs/uninstall/build-plan.d.ts +46 -0
  70. package/dist/src/cli-commands/packs/uninstall/build-plan.d.ts.map +1 -0
  71. package/dist/src/cli-commands/packs/uninstall/build-plan.js +99 -0
  72. package/dist/src/cli-commands/packs/uninstall/build-plan.js.map +1 -0
  73. package/dist/src/cli-commands/packs/uninstall/command.d.ts +14 -0
  74. package/dist/src/cli-commands/packs/uninstall/command.d.ts.map +1 -0
  75. package/dist/src/cli-commands/packs/uninstall/command.js +53 -0
  76. package/dist/src/cli-commands/packs/uninstall/command.js.map +1 -0
  77. package/dist/src/cli-commands/packs/uninstall/handler.d.ts +31 -0
  78. package/dist/src/cli-commands/packs/uninstall/handler.d.ts.map +1 -0
  79. package/dist/src/cli-commands/packs/uninstall/handler.js +57 -0
  80. package/dist/src/cli-commands/packs/uninstall/handler.js.map +1 -0
  81. package/dist/src/cli-commands/packs/uninstall/uninstall-pack.d.ts +25 -0
  82. package/dist/src/cli-commands/packs/uninstall/uninstall-pack.d.ts.map +1 -0
  83. package/dist/src/cli-commands/packs/uninstall/uninstall-pack.js +87 -0
  84. package/dist/src/cli-commands/packs/uninstall/uninstall-pack.js.map +1 -0
  85. package/dist/src/cli-commands/packs/unpack/command.d.ts +14 -0
  86. package/dist/src/cli-commands/packs/unpack/command.d.ts.map +1 -0
  87. package/dist/src/cli-commands/packs/unpack/command.js +51 -0
  88. package/dist/src/cli-commands/packs/unpack/command.js.map +1 -0
  89. package/dist/src/cli-commands/packs/unpack/handler.d.ts +52 -0
  90. package/dist/src/cli-commands/packs/unpack/handler.d.ts.map +1 -0
  91. package/dist/src/cli-commands/packs/unpack/handler.js +116 -0
  92. package/dist/src/cli-commands/packs/unpack/handler.js.map +1 -0
  93. package/dist/src/cli-commands/skills/constants.d.ts +1 -0
  94. package/dist/src/cli-commands/skills/constants.d.ts.map +1 -1
  95. package/dist/src/cli-commands/skills/constants.js +1 -0
  96. package/dist/src/cli-commands/skills/constants.js.map +1 -1
  97. package/dist/src/cli-commands/skills/disable/disable-skill.d.ts +7 -8
  98. package/dist/src/cli-commands/skills/disable/disable-skill.d.ts.map +1 -1
  99. package/dist/src/cli-commands/skills/disable/disable-skill.js +9 -35
  100. package/dist/src/cli-commands/skills/disable/disable-skill.js.map +1 -1
  101. package/dist/src/cli-commands/skills/disable/handler.d.ts +1 -0
  102. package/dist/src/cli-commands/skills/disable/handler.d.ts.map +1 -1
  103. package/dist/src/cli-commands/skills/disable/handler.js +19 -7
  104. package/dist/src/cli-commands/skills/disable/handler.js.map +1 -1
  105. package/dist/src/cli-commands/skills/enable/enable-skill.d.ts +6 -7
  106. package/dist/src/cli-commands/skills/enable/enable-skill.d.ts.map +1 -1
  107. package/dist/src/cli-commands/skills/enable/enable-skill.js +16 -74
  108. package/dist/src/cli-commands/skills/enable/enable-skill.js.map +1 -1
  109. package/dist/src/cli-commands/skills/enable/handler.d.ts +1 -0
  110. package/dist/src/cli-commands/skills/enable/handler.d.ts.map +1 -1
  111. package/dist/src/cli-commands/skills/enable/handler.js +9 -0
  112. package/dist/src/cli-commands/skills/enable/handler.js.map +1 -1
  113. package/dist/src/cli-commands/skills/install/install-result.d.ts +1 -1
  114. package/dist/src/cli-commands/skills/install/install-result.d.ts.map +1 -1
  115. package/dist/src/cli-commands/skills/install/install-skill.d.ts.map +1 -1
  116. package/dist/src/cli-commands/skills/install/install-skill.js +3 -17
  117. package/dist/src/cli-commands/skills/install/install-skill.js.map +1 -1
  118. package/dist/src/cli-commands/skills/rename/rename-skill.d.ts.map +1 -1
  119. package/dist/src/cli-commands/skills/rename/rename-skill.js +0 -11
  120. package/dist/src/cli-commands/skills/rename/rename-skill.js.map +1 -1
  121. package/dist/src/cli-commands/skills/skill-paths.d.ts +1 -1
  122. package/dist/src/cli-commands/skills/skill-paths.js +2 -2
  123. package/dist/src/cli-commands/skills/skill-paths.js.map +1 -1
  124. package/dist/src/cli-commands/skills/uninstall/uninstall-skill.d.ts +1 -1
  125. package/dist/src/cli-commands/skills/uninstall/uninstall-skill.d.ts.map +1 -1
  126. package/dist/src/cli-commands/skills/uninstall/uninstall-skill.js +5 -10
  127. package/dist/src/cli-commands/skills/uninstall/uninstall-skill.js.map +1 -1
  128. package/dist/src/extensions/packs/manifest-schema.d.ts +6 -6
  129. package/dist/src/extensions/packs/manifest-schema.d.ts.map +1 -1
  130. package/dist/src/extensions/packs/manifest-schema.js +28 -7
  131. package/dist/src/extensions/packs/manifest-schema.js.map +1 -1
  132. package/dist/src/lockfile/index.d.ts +2 -2
  133. package/dist/src/lockfile/index.d.ts.map +1 -1
  134. package/dist/src/lockfile/index.js +1 -1
  135. package/dist/src/lockfile/index.js.map +1 -1
  136. package/dist/src/lockfile/lockfile.d.ts +21 -0
  137. package/dist/src/lockfile/lockfile.d.ts.map +1 -1
  138. package/dist/src/lockfile/schema.d.ts +77 -1
  139. package/dist/src/lockfile/schema.d.ts.map +1 -1
  140. package/dist/src/lockfile/schema.js +58 -1
  141. package/dist/src/lockfile/schema.js.map +1 -1
  142. package/dist/src/main.d.ts.map +1 -1
  143. package/dist/src/main.js +3 -0
  144. package/dist/src/main.js.map +1 -1
  145. package/dist/src/registry/schema.d.ts +4 -4
  146. package/dist/src/registry/schema.d.ts.map +1 -1
  147. package/dist/src/registry/schema.js +3 -3
  148. package/dist/src/registry/schema.js.map +1 -1
  149. package/dist/src/settings/index.d.ts +2 -2
  150. package/dist/src/settings/index.d.ts.map +1 -1
  151. package/dist/src/settings/index.js +1 -1
  152. package/dist/src/settings/index.js.map +1 -1
  153. package/dist/src/settings/schema.d.ts +46 -1
  154. package/dist/src/settings/schema.d.ts.map +1 -1
  155. package/dist/src/settings/schema.js +34 -1
  156. package/dist/src/settings/schema.js.map +1 -1
  157. package/dist/src/settings/settings.d.ts +3 -1
  158. package/dist/src/settings/settings.d.ts.map +1 -1
  159. package/dist/src/sources/providers/registry.d.ts.map +1 -1
  160. package/dist/src/sources/providers/registry.js +11 -5
  161. package/dist/src/sources/providers/registry.js.map +1 -1
  162. package/dist/src/sources/resolve-source.d.ts.map +1 -1
  163. package/dist/src/sources/resolve-source.js +2 -2
  164. package/dist/src/sources/resolve-source.js.map +1 -1
  165. package/dist/src/workspace/service.d.ts +19 -2
  166. package/dist/src/workspace/service.d.ts.map +1 -1
  167. package/dist/src/workspace/service.js +83 -5
  168. package/dist/src/workspace/service.js.map +1 -1
  169. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/remove/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Pack-specific uninstall plan builder.
3
+ *
4
+ * Diffs UninstallPackOperations against lockfile state to produce a Plan.
5
+ * Installed packs become expected-success steps; missing packs become expected-no-op steps.
6
+ *
7
+ * Also detects orphaned extensions that are no longer referenced by any
8
+ * remaining pack or direct settings entry.
9
+ *
10
+ * @experimental This API is unstable and may change without notice.
11
+ */
12
+ import * as Option from "effect/Option";
13
+ import type { Lockfile, PackLockEntry } from "../../../lockfile/schema.js";
14
+ import type { SkillsMap } from "../../../settings/schema.js";
15
+ import type { Plan } from "../../../workspace/plan.js";
16
+ import type { UninstallPackOperation } from "../operations.js";
17
+ /**
18
+ * Identifies skill FQNs that become orphaned after removing a pack.
19
+ *
20
+ * A skill is orphaned if:
21
+ * 1. It is in the removed pack's resolvedSkills
22
+ * 2. It is NOT in any other remaining pack's resolvedSkills
23
+ * 3. It is NOT a direct entry in settings skills map
24
+ *
25
+ * Pure function.
26
+ */
27
+ export declare const findOrphanedSkills: (removedPackEntry: PackLockEntry, remainingPacks: Readonly<Record<string, PackLockEntry>>, configuredSkills: SkillsMap) => ReadonlyArray<string>;
28
+ /**
29
+ * Identifies command FQNs that become orphaned after removing a pack.
30
+ *
31
+ * Pure function.
32
+ */
33
+ export declare const findOrphanedCommands: (removedPackEntry: PackLockEntry, remainingPacks: Readonly<Record<string, PackLockEntry>>) => ReadonlyArray<string>;
34
+ /**
35
+ * Identifies MCP server FQNs that become orphaned after removing a pack.
36
+ *
37
+ * Pure function.
38
+ */
39
+ export declare const findOrphanedMcpServers: (removedPackEntry: PackLockEntry, remainingPacks: Readonly<Record<string, PackLockEntry>>) => ReadonlyArray<string>;
40
+ /**
41
+ * Build an uninstall plan by comparing pack operations against the lockfile.
42
+ *
43
+ * Pure function — no Effect needed.
44
+ */
45
+ export declare const buildUninstallPlan: (ops: ReadonlyArray<UninstallPackOperation>, lockfile: Lockfile, name: string, description: Option.Option<string>) => Plan<UninstallPackOperation>;
46
+ //# sourceMappingURL=build-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-plan.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/uninstall/build-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAC7B,kBAAkB,aAAa,EAC/B,gBAAgB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EACvD,kBAAkB,SAAS,KAC1B,aAAa,CAAC,MAAM,CAetB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,kBAAkB,aAAa,EAC/B,gBAAgB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,KACtD,aAAa,CAAC,MAAM,CAWtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,kBAAkB,aAAa,EAC/B,gBAAgB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,KACtD,aAAa,CAAC,MAAM,CAWtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,KAAK,aAAa,CAAC,sBAAsB,CAAC,EAC1C,UAAU,QAAQ,EAClB,MAAM,MAAM,EACZ,aAAa,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KACjC,IAAI,CAAC,sBAAsB,CA4B5B,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Pack-specific uninstall plan builder.
3
+ *
4
+ * Diffs UninstallPackOperations against lockfile state to produce a Plan.
5
+ * Installed packs become expected-success steps; missing packs become expected-no-op steps.
6
+ *
7
+ * Also detects orphaned extensions that are no longer referenced by any
8
+ * remaining pack or direct settings entry.
9
+ *
10
+ * @experimental This API is unstable and may change without notice.
11
+ */
12
+ import * as Option from "effect/Option";
13
+ /**
14
+ * Identifies skill FQNs that become orphaned after removing a pack.
15
+ *
16
+ * A skill is orphaned if:
17
+ * 1. It is in the removed pack's resolvedSkills
18
+ * 2. It is NOT in any other remaining pack's resolvedSkills
19
+ * 3. It is NOT a direct entry in settings skills map
20
+ *
21
+ * Pure function.
22
+ */
23
+ export const findOrphanedSkills = (removedPackEntry, remainingPacks, configuredSkills) => {
24
+ const removedSkills = Object.keys(removedPackEntry.resolvedSkills);
25
+ // Collect all skills referenced by remaining packs
26
+ const otherPackSkills = new Set();
27
+ for (const entry of Object.values(remainingPacks)) {
28
+ for (const fqn of Object.keys(entry.resolvedSkills)) {
29
+ otherPackSkills.add(fqn);
30
+ }
31
+ }
32
+ // Filter to skills that are truly orphaned
33
+ return removedSkills.filter((fqn) => !otherPackSkills.has(fqn) && !(fqn in configuredSkills));
34
+ };
35
+ /**
36
+ * Identifies command FQNs that become orphaned after removing a pack.
37
+ *
38
+ * Pure function.
39
+ */
40
+ export const findOrphanedCommands = (removedPackEntry, remainingPacks) => {
41
+ const removedCommands = Object.keys(removedPackEntry.resolvedCommands);
42
+ const otherPackCommands = new Set();
43
+ for (const entry of Object.values(remainingPacks)) {
44
+ for (const fqn of Object.keys(entry.resolvedCommands)) {
45
+ otherPackCommands.add(fqn);
46
+ }
47
+ }
48
+ return removedCommands.filter((fqn) => !otherPackCommands.has(fqn));
49
+ };
50
+ /**
51
+ * Identifies MCP server FQNs that become orphaned after removing a pack.
52
+ *
53
+ * Pure function.
54
+ */
55
+ export const findOrphanedMcpServers = (removedPackEntry, remainingPacks) => {
56
+ const removedServers = Object.keys(removedPackEntry.resolvedMcpServers);
57
+ const otherPackServers = new Set();
58
+ for (const entry of Object.values(remainingPacks)) {
59
+ for (const fqn of Object.keys(entry.resolvedMcpServers)) {
60
+ otherPackServers.add(fqn);
61
+ }
62
+ }
63
+ return removedServers.filter((fqn) => !otherPackServers.has(fqn));
64
+ };
65
+ /**
66
+ * Build an uninstall plan by comparing pack operations against the lockfile.
67
+ *
68
+ * Pure function — no Effect needed.
69
+ */
70
+ export const buildUninstallPlan = (ops, lockfile, name, description) => ({
71
+ name,
72
+ description,
73
+ jobs: [
74
+ {
75
+ concurrency: 1,
76
+ steps: ops.map((op) => {
77
+ const lockedPacks = lockfile.packs ?? {};
78
+ const installed = Object.hasOwn(lockedPacks, op.args.packName);
79
+ return installed
80
+ ? {
81
+ _tag: "PlannedJobStep",
82
+ operation: op,
83
+ expectedResult: {
84
+ result: "success",
85
+ message: `Uninstalled pack ${op.args.packName}`,
86
+ },
87
+ label: op.args.packName,
88
+ }
89
+ : {
90
+ _tag: "PlannedJobStep",
91
+ operation: op,
92
+ expectedResult: { result: "no-op", message: "not installed" },
93
+ label: op.args.packName,
94
+ };
95
+ }),
96
+ },
97
+ ],
98
+ });
99
+ //# sourceMappingURL=build-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-plan.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/uninstall/build-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Packs uninstall command yargs definition - wires handler to `axm packs uninstall`.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ */
6
+ import type { CommandModule } from "yargs";
7
+ export interface UninstallPackCommandArgs {
8
+ name: string;
9
+ yes: boolean;
10
+ preview: boolean;
11
+ "non-interactive": boolean | undefined;
12
+ }
13
+ export declare const uninstallPackCommand: CommandModule<{}, UninstallPackCommandArgs>;
14
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/uninstall/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAGD,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,EAAE,EAAE,wBAAwB,CA8C5E,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Packs uninstall command yargs definition - wires handler to `axm packs uninstall`.
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 { handleUninstallPack } from "./handler.js";
9
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- yargs convention
10
+ export const uninstallPackCommand = {
11
+ command: "uninstall <name>",
12
+ describe: "Uninstall a pack and remove orphaned extensions",
13
+ builder: (yargs) => yargs
14
+ .positional("name", {
15
+ type: "string",
16
+ describe: "Name or glob pattern of the pack to uninstall",
17
+ demandOption: true,
18
+ })
19
+ .option("yes", {
20
+ alias: "y",
21
+ type: "boolean",
22
+ describe: "Skip confirmation prompt",
23
+ default: false,
24
+ })
25
+ .option("preview", {
26
+ type: "boolean",
27
+ describe: "Display uninstall plan without applying",
28
+ default: false,
29
+ })
30
+ .option("non-interactive", {
31
+ type: "boolean",
32
+ describe: "Disable all interactive prompts",
33
+ })
34
+ .example("$0 packs uninstall my-pack", "Uninstall a pack and its orphaned extensions")
35
+ .example("$0 packs uninstall my-pack --preview", "Preview what would be uninstalled")
36
+ .example("$0 packs uninstall my-pack --yes", "Uninstall without confirmation prompt")
37
+ .example("$0 packs uninstall acme-*", "Uninstall all packs matching a pattern"),
38
+ handler: async (argv) => {
39
+ await run(handleUninstallPack({
40
+ name: argv.name,
41
+ yes: argv.yes,
42
+ }), {
43
+ workspace: {
44
+ global: false,
45
+ yes: argv.yes,
46
+ nonInteractive: Option.fromNullable(argv["non-interactive"]),
47
+ preview: argv.preview,
48
+ agents: Option.none(),
49
+ },
50
+ });
51
+ },
52
+ };
53
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/uninstall/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AASnD,uFAAuF;AACvF,MAAM,CAAC,MAAM,oBAAoB,GAAgD;IAC/E,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,EAAE,iDAAiD;IAC3D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,+CAA+C;QACzD,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,0BAA0B;QACpC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,yCAAyC;QACnD,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE;QACzB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,iCAAiC;KAC5C,CAAC;SACD,OAAO,CAAC,4BAA4B,EAAE,8CAA8C,CAAC;SACrF,OAAO,CAAC,sCAAsC,EAAE,mCAAmC,CAAC;SACpF,OAAO,CAAC,kCAAkC,EAAE,uCAAuC,CAAC;SACpF,OAAO,CAAC,2BAA2B,EAAE,wCAAwC,CAAC;IACnF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,GAAG,CACP,mBAAmB,CAAC;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,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,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB;SACF,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Uninstall command handler - Effect-based orchestration for `axm packs uninstall`.
3
+ *
4
+ * Uses plan-based reconciliation pattern:
5
+ * 1. Load lockfile
6
+ * 2. Expand glob pattern against lockfile keys
7
+ * 3. Build UninstallPackOperations
8
+ * 4. Build plan (diff against lockfile)
9
+ * 5. Resolve plan via workspace (display, confirm, apply based on flags)
10
+ *
11
+ * @experimental This API is unstable and may change without notice.
12
+ */
13
+ import * as Effect from "effect/Effect";
14
+ import { Log } from "../../../tui/index.js";
15
+ import { Workspace } from "../../../workspace/index.js";
16
+ /**
17
+ * Arguments for the packs uninstall handler.
18
+ */
19
+ export interface UninstallPackHandlerArgs {
20
+ /** Name or glob pattern of the pack to uninstall */
21
+ readonly name: string;
22
+ /** Skip confirmations */
23
+ readonly yes: boolean;
24
+ }
25
+ /**
26
+ * Handles the `axm packs uninstall` command.
27
+ *
28
+ * @experimental This API is unstable and may change without notice.
29
+ */
30
+ export declare const handleUninstallPack: (args: UninstallPackHandlerArgs) => Effect.Effect<void, import("../../../tui/errors.js").PromptCancelled | import("../../../cli-error/cli-error.js").CliError, import("../../../tui/index.js").Confirm | Log | import("@effect/platform/FileSystem").FileSystem | import("@effect/platform/Path").Path | Workspace>;
31
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/uninstall/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAUxD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAMD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,wBAAwB,oRAyChB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Uninstall command handler - Effect-based orchestration for `axm packs uninstall`.
3
+ *
4
+ * Uses plan-based reconciliation pattern:
5
+ * 1. Load lockfile
6
+ * 2. Expand glob pattern against lockfile keys
7
+ * 3. Build UninstallPackOperations
8
+ * 4. Build plan (diff against lockfile)
9
+ * 5. Resolve plan via workspace (display, confirm, apply based on flags)
10
+ *
11
+ * @experimental This API is unstable and may change without notice.
12
+ */
13
+ import * as Effect from "effect/Effect";
14
+ import * as Option from "effect/Option";
15
+ import { Log } from "../../../tui/index.js";
16
+ import { Workspace } from "../../../workspace/index.js";
17
+ import { buildUninstallPlan } from "./build-plan.js";
18
+ import { expandGlob } from "../../../skills/index.js";
19
+ import { uninstallPack } from "./uninstall-pack.js";
20
+ // -----------------------------------------------------------------------------
21
+ // Main Handler
22
+ // -----------------------------------------------------------------------------
23
+ /**
24
+ * Handles the `axm packs uninstall` command.
25
+ *
26
+ * @experimental This API is unstable and may change without notice.
27
+ */
28
+ export const handleUninstallPack = (args) => Effect.gen(function* () {
29
+ const ws = yield* Workspace;
30
+ const log = yield* Log;
31
+ yield* log.info("axm packs uninstall");
32
+ // Step 1: Load lockfile
33
+ const lockedPacks = yield* ws.getLockedPacks();
34
+ const lockedSkills = yield* ws.getLockedSkills();
35
+ const lockfile = { lockfileVersion: 1, skills: lockedSkills, packs: lockedPacks };
36
+ // Step 2: Expand glob pattern
37
+ const packNames = expandGlob(args.name, Object.keys(lockedPacks));
38
+ // Handle glob matching zero packs
39
+ if (args.name.includes("*") && packNames.length === 0) {
40
+ yield* log.warn(`No packs matched pattern "${args.name}"`);
41
+ yield* log.success("Nothing to uninstall.");
42
+ return;
43
+ }
44
+ // For literal names not in lockfile, still build an operation (plan marks as no-op)
45
+ const names = packNames.length > 0 ? packNames : [args.name];
46
+ // Step 3: Build operations
47
+ const ops = names.map((name) => ({
48
+ name: "uninstall-pack",
49
+ args: { packName: name },
50
+ }));
51
+ // Step 4: Build plan
52
+ const plan = buildUninstallPlan(ops, lockfile, "Uninstall pack(s)", Option.none());
53
+ // Step 5: Resolve plan via workspace
54
+ yield* ws.resolvePlan(plan, { "uninstall-pack": uninstallPack });
55
+ yield* log.success("Done");
56
+ }).pipe(Effect.withSpan("UninstallPack.handle"));
57
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/uninstall/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAgBpD,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAA8B,EAAE,EAAE,CACpE,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,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAEvC,wBAAwB;IACxB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAElF,8BAA8B;IAC9B,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAElE,kCAAkC;IAClC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC3D,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,oFAAoF;IACpF,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7D,2BAA2B;IAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CACnB,CAAC,IAAI,EAAE,EAAE,CACP,CAAC;QACC,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzB,CAAkC,CACtC,CAAC;IAEF,qBAAqB;IACrB,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAEnF,qCAAqC;IACrC,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC;IAEjE,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Uninstall-pack operation handler.
3
+ *
4
+ * Removes pack from settings, lockfile, and disk. Orphaned extensions
5
+ * (those no longer referenced by any remaining pack or direct settings entry)
6
+ * are also cleaned up.
7
+ *
8
+ * @experimental This API is unstable and may change without notice.
9
+ */
10
+ import * as FileSystem from "@effect/platform/FileSystem";
11
+ import * as Path from "@effect/platform/Path";
12
+ import { Log } from "../../../tui/index.js";
13
+ import type { OperationHandler } from "../../../workspace/apply-plan.js";
14
+ import { Workspace } from "../../../workspace/service.js";
15
+ import type { UninstallPackOperation } from "../operations.js";
16
+ /**
17
+ * Uninstall-pack operation handler.
18
+ *
19
+ * 1. Look up pack in lockfile
20
+ * 2. Remove pack directory from disk
21
+ * 3. Detect orphaned skills and remove them
22
+ * 4. Remove pack from settings and lockfile
23
+ */
24
+ export declare const uninstallPack: OperationHandler<UninstallPackOperation, FileSystem.FileSystem | Path.Path | Workspace | Log>;
25
+ //# sourceMappingURL=uninstall-pack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall-pack.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/uninstall/uninstall-pack.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAI9C,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAM/D;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,gBAAgB,CAC1C,sBAAsB,EACtB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,GAAG,CA6FjD,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Uninstall-pack operation handler.
3
+ *
4
+ * Removes pack from settings, lockfile, and disk. Orphaned extensions
5
+ * (those no longer referenced by any remaining pack or direct settings entry)
6
+ * are also cleaned up.
7
+ *
8
+ * @experimental This API is unstable and may change without notice.
9
+ */
10
+ import * as FileSystem from "@effect/platform/FileSystem";
11
+ import * as Path from "@effect/platform/Path";
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 } from "../../../tui/index.js";
16
+ import { Workspace } from "../../../workspace/service.js";
17
+ import { REGISTRY_EXTENSIONS_DIR } from "../../skills/constants.js";
18
+ import { removeIfExists } from "../../skills/fs-helpers.js";
19
+ import { sanitizeName } from "../../skills/install/skill-utils.js";
20
+ import { findOrphanedSkills } from "./build-plan.js";
21
+ /**
22
+ * Uninstall-pack operation handler.
23
+ *
24
+ * 1. Look up pack in lockfile
25
+ * 2. Remove pack directory from disk
26
+ * 3. Detect orphaned skills and remove them
27
+ * 4. Remove pack from settings and lockfile
28
+ */
29
+ export const uninstallPack = (op) => Effect.gen(function* () {
30
+ const fs = yield* FileSystem.FileSystem;
31
+ const path = yield* Path.Path;
32
+ const ws = yield* Workspace;
33
+ const log = yield* Log;
34
+ const base = path.dirname(ws.path);
35
+ // Read pack lock entry
36
+ const lockedPackOpt = yield* ws.getLockedPack(op.args.packName).pipe(Effect.mapError((e) => makeCliError({
37
+ code: "UNINSTALL_PACK_LOCKFILE_READ_FAILED",
38
+ what: `Failed to read lockfile: ${e.what}`,
39
+ cause: e,
40
+ })));
41
+ if (Option.isNone(lockedPackOpt)) {
42
+ return { result: "no-op", message: "not installed" };
43
+ }
44
+ const lockedPack = lockedPackOpt.value;
45
+ // Remove pack directory from disk
46
+ const packDir = path.join(base, REGISTRY_EXTENSIONS_DIR, lockedPack.scope, "packs", lockedPack.name);
47
+ yield* removeIfExists(fs, packDir);
48
+ // Detect orphaned skills
49
+ const lockedPacks = yield* ws.getLockedPacks();
50
+ const { [op.args.packName]: _, ...remainingPacks } = lockedPacks;
51
+ void _;
52
+ const configuredSkillsNormalized = yield* ws.getConfiguredSkills();
53
+ // findOrphanedSkills only checks key presence (`fqn in configuredSkills`),
54
+ // so we build a minimal SkillsMap-shaped record from the normalized keys.
55
+ const configuredSkillKeys = Object.fromEntries(Object.keys(configuredSkillsNormalized).map((k) => [k, ""]));
56
+ const orphanedSkills = findOrphanedSkills(lockedPack, remainingPacks, configuredSkillKeys);
57
+ // Remove orphaned skills from disk and settings/lockfile
58
+ yield* Effect.forEach(orphanedSkills, (skillFqn) => Effect.gen(function* () {
59
+ // Remove skill files from all known canonical locations
60
+ const sanitized = sanitizeName(skillFqn);
61
+ const extensionsDir = path.join(base, REGISTRY_EXTENSIONS_DIR);
62
+ const extensionsDirExists = yield* fs
63
+ .exists(extensionsDir)
64
+ .pipe(Effect.catchAll(() => Effect.succeed(false)));
65
+ if (extensionsDirExists) {
66
+ const scopeDirs = yield* fs
67
+ .readDirectory(extensionsDir)
68
+ .pipe(Effect.catchAll(() => Effect.succeed([])));
69
+ yield* Effect.forEach(scopeDirs, (scopeDir) => {
70
+ if (!scopeDir.startsWith("@"))
71
+ return Effect.void;
72
+ const skillPath = path.join(extensionsDir, scopeDir, "skills", sanitized);
73
+ return removeIfExists(fs, skillPath);
74
+ }, { concurrency: "unbounded" });
75
+ }
76
+ // Remove from settings + lockfile
77
+ yield* ws.removeSkill(skillFqn).pipe(Effect.catchAll(() => Effect.void));
78
+ yield* log.info(`Removed orphaned skill: ${skillFqn}`);
79
+ }), { concurrency: 1 });
80
+ // Remove pack from settings and lockfile
81
+ yield* ws.removePack(op.args.packName).pipe(Effect.catchAll((e) => log.warn(`Pack removal from settings failed: ${String(e)}`)));
82
+ return {
83
+ result: "success",
84
+ message: `Uninstalled pack ${op.args.packName}`,
85
+ };
86
+ });
87
+ //# sourceMappingURL=uninstall-pack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall-pack.js","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/uninstall/uninstall-pack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Unpack command yargs definition -- wires handler to `axm packs unpack`.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ */
6
+ import type { CommandModule } from "yargs";
7
+ export interface UnpackCommandArgs {
8
+ name: string;
9
+ yes: boolean;
10
+ preview: boolean;
11
+ "non-interactive": boolean | undefined;
12
+ }
13
+ export declare const unpackCommand: CommandModule<{}, UnpackCommandArgs>;
14
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/unpack/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAGD,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE,iBAAiB,CAkD9D,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Unpack command yargs definition -- wires handler to `axm packs unpack`.
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 { handleUnpack } from "./handler.js";
9
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- yargs convention
10
+ export const unpackCommand = {
11
+ command: "unpack <name>",
12
+ describe: "Eject pack contents into direct settings entries",
13
+ builder: (yargs) => yargs
14
+ .positional("name", {
15
+ type: "string",
16
+ describe: "Pack name to unpack",
17
+ demandOption: true,
18
+ })
19
+ .option("yes", {
20
+ alias: "y",
21
+ type: "boolean",
22
+ describe: "Skip all confirmation prompts",
23
+ default: false,
24
+ })
25
+ .option("preview", {
26
+ type: "boolean",
27
+ describe: "Display unpack plan without applying",
28
+ default: false,
29
+ })
30
+ .option("non-interactive", {
31
+ type: "boolean",
32
+ describe: "Disable all interactive prompts",
33
+ })
34
+ .example("$0 packs unpack @acme/frontend-tools", "Eject pack contents into settings")
35
+ .example("$0 packs unpack @acme/frontend-tools --preview", "See what would change in settings"),
36
+ handler: async (argv) => {
37
+ await run(handleUnpack({
38
+ name: argv.name,
39
+ yes: argv.yes,
40
+ }), {
41
+ workspace: {
42
+ global: false,
43
+ yes: argv.yes,
44
+ nonInteractive: Option.fromNullable(argv["non-interactive"]),
45
+ preview: argv.preview,
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/unpack/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAS5C,uFAAuF;AACvF,MAAM,CAAC,MAAM,aAAa,GAAyC;IACjE,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,kDAAkD;IAC5D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,qBAAqB;QAC/B,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,+BAA+B;QACzC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,sCAAsC;QAChD,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE;QACzB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,iCAAiC;KAC5C,CAAC;SACD,OAAO,CACN,sCAAsC,EACtC,mCAAmC,CACpC;SACA,OAAO,CACN,gDAAgD,EAChD,mCAAmC,CACpC;IACL,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,GAAG,CACP,YAAY,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,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,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB;SACF,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,52 @@
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 { Log, Spinner } from "../../../tui/index.js";
14
+ import { Workspace } from "../../../workspace/index.js";
15
+ import type { Operation } from "../../../workspace/plan.js";
16
+ import type { OperationHandler } from "../../../workspace/apply-plan.js";
17
+ /**
18
+ * Arguments for the packs unpack command.
19
+ */
20
+ export interface UnpackHandlerArgs {
21
+ /** Pack name (FQN like @scope/name). */
22
+ readonly name: string;
23
+ /** Skip confirmations. */
24
+ readonly yes: boolean;
25
+ }
26
+ /**
27
+ * Args for the unpack-pack operation.
28
+ */
29
+ export type UnpackPackOperationArgs = {
30
+ /** Pack FQN to unpack. */
31
+ readonly name: string;
32
+ };
33
+ /**
34
+ * Unpack a pack into direct settings entries.
35
+ *
36
+ * @experimental This API is unstable and may change without notice.
37
+ */
38
+ export type UnpackPackOperation = Operation<"unpack-pack", UnpackPackOperationArgs>;
39
+ /**
40
+ * Unpack operation handler.
41
+ *
42
+ * 1. Look up pack in lockfile for resolved extensions
43
+ * 2. Read current settings to find existing direct skill entries
44
+ * 3. Add resolved skills as direct entries (skip existing)
45
+ * 4. Remove pack from settings and lockfile
46
+ */
47
+ export declare const unpackPack: OperationHandler<UnpackPackOperation, Workspace>;
48
+ /**
49
+ * Handles the `axm packs unpack` command.
50
+ */
51
+ export declare const handleUnpack: (args: UnpackHandlerArgs) => Effect.Effect<undefined, import("../../../tui/errors.js").PromptCancelled | import("../../../cli-error/cli-error.js").CliError, import("../../../tui/index.js").Confirm | Log | Spinner | Workspace>;
52
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/packs/unpack/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,KAAK,EAAmC,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAOzE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;AAMpF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,mBAAmB,EAAE,SAAS,CAqDpE,CAAC;AAML;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,iBAAiB,yMAmDL,CAAC"}