@tacuchi/agent-workflow-cli 5.6.0 → 5.7.0

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.
@@ -0,0 +1,22 @@
1
+ import type { ParsedArgs } from "../../cli/parser.js";
2
+ import type { CliContext } from "../../cli/types.js";
3
+ import type { CommandResult } from "../../domain/types.js";
4
+ export interface BootstrapStep {
5
+ name: "doctor" | "uninstall-legacy" | "install-skill" | "next-steps";
6
+ status: "ok" | "skipped" | "error";
7
+ data?: unknown;
8
+ message?: string;
9
+ }
10
+ export interface BootstrapNextStep {
11
+ harness: "claude-code" | "codex";
12
+ detected: boolean;
13
+ install_command: string;
14
+ description: string;
15
+ }
16
+ export interface SelfBootstrapData {
17
+ steps: BootstrapStep[];
18
+ next_steps: BootstrapNextStep[];
19
+ summary: string;
20
+ }
21
+ export declare function selfBootstrap(args: ParsedArgs, ctx: CliContext): Promise<CommandResult<SelfBootstrapData>>;
22
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/application/self/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAS3D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,kBAAkB,GAAG,eAAe,GAAG,YAAY,CAAC;IACrE,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CA4D3C"}
@@ -0,0 +1,115 @@
1
+ import { selfDoctor } from "./doctor-self.js";
2
+ import { selfInstallSkill, } from "./install-skill.js";
3
+ import { selfUninstallSkill } from "./uninstall-skill.js";
4
+ export async function selfBootstrap(args, ctx) {
5
+ const dryRun = args.flags.has("--dry-run");
6
+ const steps = [];
7
+ const doctorResult = await selfDoctor(ctx);
8
+ if (!doctorResult.ok || !doctorResult.data) {
9
+ steps.push({
10
+ name: "doctor",
11
+ status: "error",
12
+ message: doctorResult.error?.message ?? "unknown doctor error",
13
+ });
14
+ return failedResult(steps, "doctor failed; aborted bootstrap");
15
+ }
16
+ const doctorData = doctorResult.data;
17
+ steps.push({ name: "doctor", status: "ok", data: doctorData.skill });
18
+ const hasLegacy = doctorData.skill.targets.some((t) => t.legacy_leftover === true);
19
+ if (hasLegacy) {
20
+ const uninstallArgs = buildUninstallArgs(dryRun);
21
+ const uninstallResult = await selfUninstallSkill(uninstallArgs, ctx);
22
+ if (!uninstallResult.ok || !uninstallResult.data) {
23
+ steps.push({
24
+ name: "uninstall-legacy",
25
+ status: "error",
26
+ message: uninstallResult.error?.message ?? "unknown uninstall error",
27
+ });
28
+ return failedResult(steps, "uninstall-legacy failed; aborted bootstrap");
29
+ }
30
+ const uninstallData = uninstallResult.data;
31
+ steps.push({ name: "uninstall-legacy", status: "ok", data: uninstallData });
32
+ }
33
+ else {
34
+ steps.push({ name: "uninstall-legacy", status: "skipped", message: "no legacy leftover" });
35
+ }
36
+ const installArgs = buildInstallArgs(dryRun);
37
+ const installResult = await selfInstallSkill(installArgs, ctx);
38
+ if (!installResult.ok || !installResult.data) {
39
+ steps.push({
40
+ name: "install-skill",
41
+ status: "error",
42
+ message: installResult.error?.message ?? "unknown install error",
43
+ });
44
+ return failedResult(steps, "install-skill failed; aborted bootstrap");
45
+ }
46
+ const installData = installResult.data;
47
+ steps.push({ name: "install-skill", status: "ok", data: installData });
48
+ const nextSteps = buildNextSteps(installData.dests);
49
+ steps.push({ name: "next-steps", status: "ok", data: nextSteps });
50
+ const summary = composeSummary(steps, nextSteps);
51
+ return {
52
+ ok: true,
53
+ data: {
54
+ steps,
55
+ next_steps: nextSteps,
56
+ summary,
57
+ },
58
+ exitCode: 0,
59
+ };
60
+ }
61
+ function buildUninstallArgs(dryRun) {
62
+ return {
63
+ rest: [],
64
+ plugin: {},
65
+ flags: new Set(dryRun ? ["--legacy", "--dry-run"] : ["--legacy"]),
66
+ values: new Map([["target", "all"]]),
67
+ valuesMulti: new Map(),
68
+ };
69
+ }
70
+ function buildInstallArgs(dryRun) {
71
+ return {
72
+ rest: [],
73
+ plugin: {},
74
+ flags: new Set(dryRun ? ["--force", "--dry-run"] : ["--force"]),
75
+ values: new Map([["target", "all"]]),
76
+ valuesMulti: new Map(),
77
+ };
78
+ }
79
+ function buildNextSteps(dests) {
80
+ return [
81
+ {
82
+ harness: "claude-code",
83
+ detected: dests.some((d) => d.target === "claude"),
84
+ install_command: "/plugin marketplace add <marketplace-url>; /plugin install qtc",
85
+ description: "En Claude Code: agregá el marketplace si aún no está, después instalá el plugin 'qtc'.",
86
+ },
87
+ {
88
+ harness: "codex",
89
+ detected: dests.some((d) => d.target === "codex"),
90
+ install_command: "codex plugin install <marketplace-url>#qtc",
91
+ description: "En Codex: instalá el plugin 'qtc' desde el marketplace y reiniciá la app para refrescar el cache.",
92
+ },
93
+ ];
94
+ }
95
+ function composeSummary(steps, nextSteps) {
96
+ const ok = steps.filter((s) => s.status === "ok").length;
97
+ const skipped = steps.filter((s) => s.status === "skipped").length;
98
+ const detected = nextSteps.filter((n) => n.detected).map((n) => n.harness);
99
+ const detectedFragment = detected.length > 0
100
+ ? `Harnesses detectados: ${detected.join(", ")}.`
101
+ : "Sin harnesses detectados — instalá Claude Code o Codex y volvé a correr.";
102
+ return `Bootstrap completo: ${ok} pasos OK, ${skipped} saltados. ${detectedFragment} Ver next_steps[] para los comandos de instalación del plugin.`;
103
+ }
104
+ function failedResult(steps, summary) {
105
+ return {
106
+ ok: true,
107
+ data: {
108
+ steps,
109
+ next_steps: [],
110
+ summary,
111
+ },
112
+ exitCode: 1,
113
+ };
114
+ }
115
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/application/self/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,10 @@ export interface SkillTargetReport {
8
8
  legacy_leftover?: boolean;
9
9
  legacy_leftover_path?: string;
10
10
  legacy_leftover_warning?: string;
11
+ lock_present?: boolean;
12
+ lock_canonical_entry?: boolean;
13
+ lock_legacy_entry?: boolean;
14
+ lock_warning?: string;
11
15
  }
12
16
  export interface SelfDoctorReport {
13
17
  cli_version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-self.d.ts","sourceRoot":"","sources":["../../../src/application/self/doctor-self.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,KAAK,aAAa,EAAgC,MAAM,oBAAoB,CAAC;AAEtF,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,EAAE;QACL,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,iBAAiB,EAAE,CAAC;KAC9B,CAAC;CACH;AAID,wBAAsB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAsD1F"}
1
+ {"version":3,"file":"doctor-self.d.ts","sourceRoot":"","sources":["../../../src/application/self/doctor-self.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAEL,KAAK,aAAa,EAInB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,EAAE;QACL,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,iBAAiB,EAAE,CAAC;KAC9B,CAAC;CACH;AAID,wBAAsB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAqC1F"}
@@ -1,30 +1,16 @@
1
1
  import { createRequire } from "node:module";
2
2
  import { join } from "node:path";
3
- import { SKILL_DIR_NAME, TARGET_ROOTS } from "./install-skill.js";
4
- const LEGACY_SKILL_DIR = "agent-workflow-manager";
3
+ import { AGENTS_LOCK_REL, LEGACY_SKILL_NAME, SKILL_DIR_NAME, TARGET_ROOTS, } from "./install-skill.js";
4
+ const FS_TARGETS = ["claude", "codex"];
5
5
  export async function selfDoctor(ctx) {
6
6
  const home = ctx.env.homeDir();
7
- const targets = ["claude", "codex"];
8
7
  const targetReports = [];
9
- for (const target of targets) {
10
- const skillPath = join(home, ...TARGET_ROOTS[target], SKILL_DIR_NAME);
11
- const legacyPath = join(home, ...TARGET_ROOTS[target], LEGACY_SKILL_DIR);
12
- const installed = await ctx.fs.exists(skillPath);
13
- const legacyLeftover = await ctx.fs.exists(legacyPath);
14
- targetReports.push({
15
- target,
16
- path: skillPath,
17
- installed,
18
- ...(legacyLeftover
19
- ? {
20
- legacy_leftover: true,
21
- legacy_leftover_path: legacyPath,
22
- legacy_leftover_warning: `Skill legacy detectada en ${legacyPath}. Reemplazada por '${skillPath}' tras el rename de agent-workflow-manager → agent-workflow. Recomendado: mv ${legacyPath} ${legacyPath}.bak (preserva evidencia) y cuando estés tranquilo, rm -rf el .bak.`,
23
- }
24
- : {}),
25
- });
8
+ for (const target of FS_TARGETS) {
9
+ targetReports.push(await reportFsTarget(ctx, home, target));
26
10
  }
27
- const installedAny = targetReports.some((t) => t.installed);
11
+ const agentsReport = await reportAgentsTarget(ctx, home);
12
+ if (agentsReport)
13
+ targetReports.push(agentsReport);
28
14
  return {
29
15
  ok: true,
30
16
  data: {
@@ -46,13 +32,76 @@ export async function selfDoctor(ctx) {
46
32
  ...(ctx.runtime.displayName ? { display_name: ctx.runtime.displayName } : {}),
47
33
  },
48
34
  skill: {
49
- installed: installedAny,
35
+ installed: targetReports.some((t) => t.installed),
50
36
  targets: targetReports,
51
37
  },
52
38
  },
53
39
  exitCode: 0,
54
40
  };
55
41
  }
42
+ async function reportFsTarget(ctx, home, target) {
43
+ const skillPath = join(home, ...TARGET_ROOTS[target], SKILL_DIR_NAME);
44
+ const legacyPath = join(home, ...TARGET_ROOTS[target], LEGACY_SKILL_NAME);
45
+ const installed = await ctx.fs.exists(skillPath);
46
+ const legacyLeftover = await ctx.fs.exists(legacyPath);
47
+ return {
48
+ target,
49
+ path: skillPath,
50
+ installed,
51
+ ...(legacyLeftover
52
+ ? {
53
+ legacy_leftover: true,
54
+ legacy_leftover_path: legacyPath,
55
+ legacy_leftover_warning: legacyWarning(legacyPath, skillPath),
56
+ }
57
+ : {}),
58
+ };
59
+ }
60
+ async function reportAgentsTarget(ctx, home) {
61
+ const agentsRoot = join(home, ...TARGET_ROOTS.agents.slice(0, 1));
62
+ if (!(await ctx.fs.exists(agentsRoot)))
63
+ return null;
64
+ const skillPath = join(home, ...TARGET_ROOTS.agents, SKILL_DIR_NAME);
65
+ const legacyPath = join(home, ...TARGET_ROOTS.agents, LEGACY_SKILL_NAME);
66
+ const installed = await ctx.fs.exists(skillPath);
67
+ const legacyLeftover = await ctx.fs.exists(legacyPath);
68
+ const lockPath = join(home, ...AGENTS_LOCK_REL);
69
+ const lockPresent = await ctx.fs.exists(lockPath);
70
+ let lockCanonical;
71
+ let lockLegacy;
72
+ let lockWarning;
73
+ if (lockPresent) {
74
+ try {
75
+ const raw = await ctx.fs.readText(lockPath);
76
+ const parsed = JSON.parse(raw);
77
+ const skills = parsed.skills ?? {};
78
+ lockCanonical = Object.hasOwn(skills, SKILL_DIR_NAME);
79
+ lockLegacy = Object.hasOwn(skills, LEGACY_SKILL_NAME);
80
+ }
81
+ catch (err) {
82
+ lockWarning = `Could not parse ${lockPath}: ${err.message}. Skipping lock-based detection — filesystem scan still reliable.`;
83
+ }
84
+ }
85
+ return {
86
+ target: "agents",
87
+ path: skillPath,
88
+ installed,
89
+ ...(legacyLeftover
90
+ ? {
91
+ legacy_leftover: true,
92
+ legacy_leftover_path: legacyPath,
93
+ legacy_leftover_warning: legacyWarning(legacyPath, skillPath),
94
+ }
95
+ : {}),
96
+ lock_present: lockPresent,
97
+ ...(lockCanonical !== undefined ? { lock_canonical_entry: lockCanonical } : {}),
98
+ ...(lockLegacy !== undefined ? { lock_legacy_entry: lockLegacy } : {}),
99
+ ...(lockWarning ? { lock_warning: lockWarning } : {}),
100
+ };
101
+ }
102
+ function legacyWarning(legacyPath, skillPath) {
103
+ return `Skill legacy detectada en ${legacyPath}. Reemplazada por '${skillPath}' tras el rename de agent-workflow-manager → agent-workflow. Usá 'agent-workflow self uninstall-skill --legacy' para limpiar.`;
104
+ }
56
105
  function readPackageVersion() {
57
106
  try {
58
107
  const require = createRequire(import.meta.url);
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-self.js","sourceRoot":"","sources":["../../../src/application/self/doctor-self.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-self.js","sourceRoot":"","sources":["../../../src/application/self/doctor-self.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,10 @@ import type { CliContext } from "../../cli/types.js";
3
3
  import type { CommandResult } from "../../domain/types.js";
4
4
  export declare const SKILL_DIR_NAME = "agent-workflow";
5
5
  export declare const BUNDLED_SKILL_REL_PATH = "skills/agent-workflow";
6
- export type InstallTarget = "claude" | "codex";
6
+ export type InstallTarget = "claude" | "codex" | "agents";
7
7
  export declare const TARGET_ROOTS: Record<InstallTarget, readonly string[]>;
8
+ export declare const AGENTS_LOCK_REL: readonly [".agents", ".skill-lock.json"];
9
+ export declare const LEGACY_SKILL_NAME = "agent-workflow-manager";
8
10
  export interface SelfInstallTargetResult {
9
11
  target: InstallTarget;
10
12
  dest: string;
@@ -1 +1 @@
1
- {"version":3,"file":"install-skill.d.ts","sourceRoot":"","sources":["../../../src/application/self/install-skill.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,sBAAsB,0BAA6B,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAGjE,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IAC5C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,uBAAuB,EAAE,CAAC;CAClC;AAID,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,UAAU,EACf,cAAc,GAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAA2B,GACrE,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CA8E9C;AAsID,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBtE"}
1
+ {"version":3,"file":"install-skill.d.ts","sourceRoot":"","sources":["../../../src/application/self/install-skill.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,sBAAsB,0BAA6B,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAIjE,CAAC;AAEF,eAAO,MAAM,eAAe,0CAA2C,CAAC;AACxE,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IAC5C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,uBAAuB,EAAE,CAAC;CAClC;AAMD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,UAAU,EACf,cAAc,GAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAA2B,GACrE,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CA8E9C;AAuID,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBtE"}
@@ -6,8 +6,12 @@ export const BUNDLED_SKILL_REL_PATH = `skills/${SKILL_DIR_NAME}`;
6
6
  export const TARGET_ROOTS = {
7
7
  claude: [".claude", "skills"],
8
8
  codex: [".codex", "skills"],
9
+ agents: [".agents", "skills"],
9
10
  };
10
- const TARGET_CHOICES = ["claude", "codex", "all"];
11
+ export const AGENTS_LOCK_REL = [".agents", ".skill-lock.json"];
12
+ export const LEGACY_SKILL_NAME = "agent-workflow-manager";
13
+ const TARGET_CHOICES = ["claude", "codex", "agents", "all"];
14
+ const ALL_INSTALL_TARGETS = ["claude", "codex"];
11
15
  export async function selfInstallSkill(args, ctx, resolveBundled = resolveBundledSkillPath) {
12
16
  const force = args.flags.has("--force");
13
17
  const dryRun = args.flags.has("--dry-run");
@@ -94,7 +98,7 @@ function resolveTargets(targetArg) {
94
98
  },
95
99
  };
96
100
  }
97
- const targets = targetArg === "all" ? ["claude", "codex"] : [targetArg];
101
+ const targets = targetArg === "all" ? [...ALL_INSTALL_TARGETS] : [targetArg];
98
102
  return { ok: true, value: targets };
99
103
  }
100
104
  async function resolveSource(fromArg, resolveBundled) {
@@ -134,6 +138,7 @@ function buildDestByTarget(home) {
134
138
  return {
135
139
  claude: join(home, ...TARGET_ROOTS.claude, SKILL_DIR_NAME),
136
140
  codex: join(home, ...TARGET_ROOTS.codex, SKILL_DIR_NAME),
141
+ agents: join(home, ...TARGET_ROOTS.agents, SKILL_DIR_NAME),
137
142
  };
138
143
  }
139
144
  async function validateSourceContents(sourceArg, ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"install-skill.js","sourceRoot":"","sources":["../../../src/application/self/install-skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-skill.js","sourceRoot":"","sources":["../../../src/application/self/install-skill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ParsedArgs } from "../../cli/parser.js";
2
+ import type { CliContext } from "../../cli/types.js";
3
+ import type { CommandResult } from "../../domain/types.js";
4
+ import { type InstallTarget } from "./install-skill.js";
5
+ export type UninstallTargetChoice = InstallTarget | "all";
6
+ export interface UninstallRemoval {
7
+ target: InstallTarget;
8
+ path: string;
9
+ kind: "canonical" | "legacy";
10
+ status: "removed" | "dry-run" | "skipped";
11
+ reason?: string;
12
+ }
13
+ export interface SelfUninstallSkillData {
14
+ status: "removed" | "dry-run" | "noop";
15
+ removed: UninstallRemoval[];
16
+ lock_updated: boolean;
17
+ lock_path?: string;
18
+ lock_warning?: string;
19
+ }
20
+ export declare function selfUninstallSkill(args: ParsedArgs, ctx: CliContext): Promise<CommandResult<SelfUninstallSkillData>>;
21
+ //# sourceMappingURL=uninstall-skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall-skill.d.ts","sourceRoot":"","sources":["../../../src/application/self/uninstall-skill.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAEL,KAAK,aAAa,EAInB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,KAAK,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC7B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAwChD"}
@@ -0,0 +1,105 @@
1
+ import { rm, writeFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { AGENTS_LOCK_REL, LEGACY_SKILL_NAME, SKILL_DIR_NAME, TARGET_ROOTS, } from "./install-skill.js";
4
+ const TARGET_CHOICES = ["claude", "codex", "agents", "all"];
5
+ const ALL_TARGETS = ["claude", "codex", "agents"];
6
+ export async function selfUninstallSkill(args, ctx) {
7
+ const dryRun = args.flags.has("--dry-run");
8
+ const includeLegacy = args.flags.has("--legacy");
9
+ const targetArg = (args.values.get("target") ?? "all");
10
+ if (!TARGET_CHOICES.includes(targetArg)) {
11
+ return {
12
+ ok: false,
13
+ error: {
14
+ code: "INVALID_TARGET",
15
+ message: `--target must be one of: ${TARGET_CHOICES.join(", ")}. Got '${targetArg}'.`,
16
+ },
17
+ exitCode: 1,
18
+ };
19
+ }
20
+ const targets = targetArg === "all" ? [...ALL_TARGETS] : [targetArg];
21
+ const home = ctx.env.homeDir();
22
+ const removals = [];
23
+ for (const target of targets) {
24
+ removals.push(...(await removeFromTarget(ctx, home, target, includeLegacy, dryRun)));
25
+ }
26
+ const lockResult = targets.includes("agents")
27
+ ? await updateAgentsLock(ctx, home, includeLegacy, dryRun)
28
+ : { updated: false };
29
+ return {
30
+ ok: true,
31
+ data: {
32
+ status: resolveStatus(dryRun, removals.length),
33
+ removed: removals,
34
+ lock_updated: lockResult.updated,
35
+ ...(lockResult.path ? { lock_path: lockResult.path } : {}),
36
+ ...(lockResult.warning ? { lock_warning: lockResult.warning } : {}),
37
+ },
38
+ exitCode: 0,
39
+ };
40
+ }
41
+ async function removeFromTarget(ctx, home, target, includeLegacy, dryRun) {
42
+ const out = [];
43
+ const canonical = join(home, ...TARGET_ROOTS[target], SKILL_DIR_NAME);
44
+ if (await ctx.fs.exists(canonical)) {
45
+ if (!dryRun)
46
+ await rm(canonical, { recursive: true, force: true });
47
+ out.push({
48
+ target,
49
+ path: canonical,
50
+ kind: "canonical",
51
+ status: dryRun ? "dry-run" : "removed",
52
+ });
53
+ }
54
+ if (includeLegacy) {
55
+ const legacy = join(home, ...TARGET_ROOTS[target], LEGACY_SKILL_NAME);
56
+ if (await ctx.fs.exists(legacy)) {
57
+ if (!dryRun)
58
+ await rm(legacy, { recursive: true, force: true });
59
+ out.push({
60
+ target,
61
+ path: legacy,
62
+ kind: "legacy",
63
+ status: dryRun ? "dry-run" : "removed",
64
+ });
65
+ }
66
+ }
67
+ return out;
68
+ }
69
+ function resolveStatus(dryRun, removedCount) {
70
+ if (dryRun)
71
+ return "dry-run";
72
+ return removedCount === 0 ? "noop" : "removed";
73
+ }
74
+ async function updateAgentsLock(ctx, home, includeLegacy, dryRun) {
75
+ const lockPath = join(home, ...AGENTS_LOCK_REL);
76
+ if (!(await ctx.fs.exists(lockPath)))
77
+ return { updated: false };
78
+ let parsed;
79
+ try {
80
+ parsed = JSON.parse(await ctx.fs.readText(lockPath));
81
+ }
82
+ catch (err) {
83
+ return {
84
+ updated: false,
85
+ path: lockPath,
86
+ warning: `Could not parse ${lockPath}: ${err.message}. Lock left untouched.`,
87
+ };
88
+ }
89
+ const skills = (parsed.skills ?? {});
90
+ const before = Object.keys(skills);
91
+ const namesToRemove = [SKILL_DIR_NAME, ...(includeLegacy ? [LEGACY_SKILL_NAME] : [])];
92
+ for (const name of namesToRemove) {
93
+ delete skills[name];
94
+ }
95
+ const after = Object.keys(skills);
96
+ const changed = before.length !== after.length;
97
+ if (!changed)
98
+ return { updated: false, path: lockPath };
99
+ if (!dryRun) {
100
+ parsed.skills = skills;
101
+ await writeFile(lockPath, `${JSON.stringify(parsed, null, 2)}\n`, "utf8");
102
+ }
103
+ return { updated: true, path: lockPath };
104
+ }
105
+ //# sourceMappingURL=uninstall-skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall-skill.js","sourceRoot":"","sources":["../../../src/application/self/uninstall-skill.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"self.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/self.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKjD,eAAO,MAAM,WAAW,EAAE,UAoCzB,CAAC"}
1
+ {"version":3,"file":"self.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/self.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAYjD,eAAO,MAAM,WAAW,EAAE,UAyCzB,CAAC"}
@@ -1,11 +1,20 @@
1
+ import { selfBootstrap } from "../../application/self/bootstrap.js";
1
2
  import { selfDoctor } from "../../application/self/doctor-self.js";
2
3
  import { selfInstallSkill } from "../../application/self/install-skill.js";
3
4
  import { selfNamespace } from "../../application/self/namespace-info.js";
5
+ import { selfUninstallSkill } from "../../application/self/uninstall-skill.js";
4
6
  import { selfUpdate } from "../../application/self/update-self.js";
5
- const SELF_SUBCOMMANDS = ["namespace", "doctor", "update", "install-skill"];
7
+ const SELF_SUBCOMMANDS = [
8
+ "namespace",
9
+ "doctor",
10
+ "update",
11
+ "install-skill",
12
+ "uninstall-skill",
13
+ "bootstrap",
14
+ ];
6
15
  export const selfCommand = {
7
16
  name: "self",
8
- describe: "Manage the agent-workflow CLI itself (namespace, doctor, update, install-skill).",
17
+ describe: "Manage the agent-workflow CLI itself (namespace, doctor, update, install-skill, uninstall-skill, bootstrap).",
9
18
  async execute(args, ctx) {
10
19
  const sub = args.rest[0];
11
20
  switch (sub) {
@@ -17,13 +26,17 @@ export const selfCommand = {
17
26
  return selfUpdate(args, ctx);
18
27
  case "install-skill":
19
28
  return selfInstallSkill(args, ctx);
29
+ case "uninstall-skill":
30
+ return selfUninstallSkill(args, ctx);
31
+ case "bootstrap":
32
+ return selfBootstrap(args, ctx);
20
33
  case undefined:
21
34
  case "":
22
35
  return {
23
36
  ok: true,
24
37
  data: {
25
38
  subcommands: [...SELF_SUBCOMMANDS],
26
- help_hint: "uso: aw self <subcommand>. Ej: 'aw self doctor' o 'aw self update --dry-run'",
39
+ help_hint: "uso: aw self <subcommand>. Ej: 'aw self bootstrap' (instalación limpia guiada) o 'aw self doctor'.",
27
40
  },
28
41
  exitCode: 0,
29
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"self.js","sourceRoot":"","sources":["../../../src/cli/commands/self.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAMnE,MAAM,gBAAgB,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAU,CAAC;AAErF,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,kFAAkF;IAC5F,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,WAAW;gBACd,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;YAC5B,KAAK,QAAQ;gBACX,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;YACzB,KAAK,QAAQ;gBACX,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/B,KAAK,eAAe;gBAClB,OAAO,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACrC,KAAK,SAAS,CAAC;YACf,KAAK,EAAE;gBACL,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE;wBACJ,WAAW,EAAE,CAAC,GAAG,gBAAgB,CAAC;wBAClC,SAAS,EACP,8EAA8E;qBACjF;oBACD,QAAQ,EAAE,CAAC;iBACZ,CAAC;YACJ;gBACE,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,6BAA6B,GAAG,iBAAiB,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;qBACxF;oBACD,QAAQ,EAAE,CAAC;iBACZ,CAAC;QACN,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"self.js","sourceRoot":"","sources":["../../../src/cli/commands/self.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAMnE,MAAM,gBAAgB,GAAG;IACvB,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,eAAe;IACf,iBAAiB;IACjB,WAAW;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,IAAI,EAAE,MAAM;IACZ,QAAQ,EACN,8GAA8G;IAChH,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,WAAW;gBACd,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;YAC5B,KAAK,QAAQ;gBACX,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;YACzB,KAAK,QAAQ;gBACX,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/B,KAAK,eAAe;gBAClB,OAAO,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACrC,KAAK,iBAAiB;gBACpB,OAAO,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACvC,KAAK,WAAW;gBACd,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAClC,KAAK,SAAS,CAAC;YACf,KAAK,EAAE;gBACL,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE;wBACJ,WAAW,EAAE,CAAC,GAAG,gBAAgB,CAAC;wBAClC,SAAS,EACP,oGAAoG;qBACvG;oBACD,QAAQ,EAAE,CAAC;iBACZ,CAAC;YACJ;gBACE,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,6BAA6B,GAAG,iBAAiB,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;qBACxF;oBACD,QAAQ,EAAE,CAAC;iBACZ,CAAC;QACN,CAAC;IACH,CAAC;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tacuchi/agent-workflow-cli",
3
- "version": "5.6.0",
3
+ "version": "5.7.0",
4
4
  "description": "Agnostic runtime CLI for session-lifecycle workflows. Auto-detects namespace from any `.<ns>/sessions/` dir in CWD; falls back to 'agent-workflow'. Plugins like `qtc-workflow-plugin` reclaim a fixed namespace via SessionStart hook (writes to `~/.config/agent-workflow/namespace`). Bundles the universal `agent-workflow` skill in the tarball — `self install-skill` copies it from the bundled location to `~/.claude/skills/agent-workflow/` and `~/.codex/skills/agent-workflow/` (dual-target by default; opt-out with `--target claude|codex`). Override the source with `--from <local-path>` for skill development.",
5
5
  "type": "module",
6
6
  "bin": {