@context-forge/cli 0.12.0 → 0.13.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,17 @@
1
+ ---
2
+ name: cf-build
3
+ description: Build and load a Context Forge context prompt. Use when the user asks to build, load, or refresh Context Forge context, optionally for a particular phase or slice.
4
+ ---
5
+
6
+ # Context Forge Build
7
+
8
+ 1. Run `cf build --json` from the project root. If the user supplied a phase
9
+ or slice, pass it with `--phase <phase>` or `--slice <slice>`.
10
+ 2. If the command fails, show its error output and stop.
11
+ 3. Use the returned prompt as your working context.
12
+ 4. Confirm receipt with exactly one line:
13
+ `Context loaded: {project} | {phase} | {slice}` — take the three values
14
+ from the command's output.
15
+ 5. Follow the instruction prompt contained in the generated context.
16
+ 6. If the instruction prompt contains a STOP condition, STOP — do not begin
17
+ work; request the required input instead.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: cf-check
3
+ description: Run Context Forge consistency checks on project artifacts. Use when the user asks to check, fix, or audit cf project document consistency.
4
+ ---
5
+
6
+ # Context Forge Check
7
+
8
+ 1. Run `cf check` from the project root. Pass through any options the user
9
+ supplied (e.g. `--fix`, `--slice <index>`).
10
+ 2. Print the command's output verbatim. Add no commentary, summary, or
11
+ interpretation.
12
+ 3. If the command fails, show its error output instead.
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: cf-get
3
+ description: Show all fields for the active Context Forge project. Use when the user asks to see the cf project's fields or configuration.
4
+ ---
5
+
6
+ # Context Forge Get
7
+
8
+ 1. Run `cf get` from the project root.
9
+ 2. Print the command's output verbatim. Add no commentary, summary, or
10
+ interpretation.
11
+ 3. If the command fails, show its error output instead.
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: cf-next
3
+ description: Show the recommended next action for the current Context Forge project. Use when the user asks what to do next in the cf workflow.
4
+ ---
5
+
6
+ # Context Forge Next
7
+
8
+ 1. Run `cf next` from the project root.
9
+ 2. Print the command's output verbatim. Add no commentary, summary, or
10
+ interpretation.
11
+ 3. If the command fails, show its error output instead.
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: cf-onboard
3
+ description: Guide a user through Context Forge project setup and into their first phase of work. Use when the user wants to set up or onboard a project with Context Forge.
4
+ ---
5
+
6
+ # Context Forge Onboard
7
+
8
+ You are guiding a user through Context Forge project onboarding. Follow these
9
+ steps in order — skip any step whose precondition is already met.
10
+
11
+ ## Step 1 — Detect existing project
12
+
13
+ Run `cf project list` and check whether a project is already registered at
14
+ the current working directory.
15
+
16
+ - If a project exists at this path → skip to Step 3.
17
+ - If no project exists → continue to Step 2.
18
+
19
+ ## Step 2 — Create project
20
+
21
+ Ask the user what they'd like to name their project. If they provided a name
22
+ with the request, use that. If the user declines to choose, default to the
23
+ current directory name.
24
+
25
+ Run `cf init <name>`. This single command handles everything: git
26
+ initialization, project registration, guide installation, command/skill
27
+ installation, and IDE setup. After `cf init` completes, continue to Step 3.
28
+
29
+ **Important:** Do not rely on environment context (like "Is a git
30
+ repository") to determine git status — `cf init` checks the actual directory
31
+ and handles git initialization itself.
32
+
33
+ If the Context Forge MCP server is configured and shell access is
34
+ unavailable, fall back to its `project_create` tool (with `name` and
35
+ `projectPath` set to the CWD) followed by `guide_install`. The MCP fallback
36
+ cannot initialize git — if the directory is not a git repository, inform the
37
+ user they need to run `git init` first.
38
+
39
+ ## Step 3 — Transition to concept discussion
40
+
41
+ The project is set up. Run `cf build` and use the output as your working
42
+ context to begin the Phase 0 (Concept) conversation.
43
+
44
+ Begin by asking the user to describe what they want to build. Guide them
45
+ through the concept exploration naturally — the context prompt provides the
46
+ structure. The goal is a concept document at the end of this conversation.
47
+
48
+ ## Step 4 — Mention ongoing guidance
49
+
50
+ After the concept conversation concludes (or if the user wants to pause),
51
+ mention: "You can run `cf next` (or the `cf-next` skill) anytime to see what
52
+ to do next. It adapts as your project progresses."
53
+
54
+ ## Notes
55
+
56
+ - If an MCP tool call fails, fall back to the CLI equivalent.
57
+ - If the user already has a project but is in a later phase (not Phase 0),
58
+ acknowledge this and suggest `cf next` instead of starting a concept
59
+ discussion.
60
+ - Keep the conversation natural. This is onboarding, not a checklist.
61
+ Adapt to what the user is telling you.
@@ -0,0 +1,13 @@
1
+ ---
2
+ name: cf-project
3
+ description: Manage Context Forge projects (list, get, set, rm, schema). Use when the user asks to list cf projects or manage project registration.
4
+ ---
5
+
6
+ # Context Forge Project
7
+
8
+ 1. Run `cf project` from the project root, passing through the user's
9
+ subcommand and arguments (e.g. `cf project list`, `cf project get`,
10
+ `cf project set <field> <value>`, `cf project rm`, `cf project --schema`).
11
+ 2. Print the command's output verbatim. Add no commentary, summary, or
12
+ interpretation.
13
+ 3. If the command fails, show its error output instead.
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: cf-prompt
3
+ description: Get or list Context Forge prompt templates. Use when the user asks for a cf prompt by phase name or wants the list of available prompts.
4
+ ---
5
+
6
+ # Context Forge Prompt
7
+
8
+ 1. If the user gave no argument, or the argument is `list`: run
9
+ `cf prompt list` and print its output verbatim, without commentary.
10
+ 2. Otherwise run `cf prompt get <argument>` with the user's argument
11
+ (a phase name such as those shown by `cf prompt list`).
12
+ 3. If the command fails, show its error output and stop.
13
+ 4. When `cf prompt get` returns a prompt template: use it as your working
14
+ context and immediately begin the work it describes. Confirm receipt
15
+ with exactly one line: `Received prompt: {phase name}` — take the phase
16
+ name from the command's output.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: cf-set
3
+ description: Set a field on the active Context Forge project (e.g. phase, slice). Use when the user asks to set or change a cf project field.
4
+ ---
5
+
6
+ # Context Forge Set
7
+
8
+ 1. Run `cf set <field> <value>` from the project root, using the field and
9
+ value the user supplied. If either is missing, ask for it — do not guess.
10
+ 2. Print the command's output verbatim. Add no commentary, summary, or
11
+ interpretation.
12
+ 3. If the command fails, show its error output instead.
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: cf-status
3
+ description: Show Context Forge project status (phase, slice, task progress). Use when the user asks for cf status or where the project stands.
4
+ ---
5
+
6
+ # Context Forge Status
7
+
8
+ 1. Run `cf status` from the project root.
9
+ 2. Print the command's output verbatim. Add no commentary, summary, or
10
+ interpretation.
11
+ 3. If the command fails, show its error output instead.
@@ -1,28 +1,64 @@
1
1
  import { Command } from 'commander';
2
- /** Resolve the bundled commands/ directory relative to this script's location. */
3
- export declare function getSourceCommandsDir(): string;
2
+ /** Targets that receive command/skill delivery. `copilot`/`cursor` have no known mechanism yet. */
3
+ export type CommandTarget = 'claude' | 'agents';
4
+ export interface CommandTargetDescriptor {
5
+ /** Bundled asset subdirectory under commands/. */
6
+ sourceDir: string;
7
+ /** Project-relative install directory (project-local scope, the default). */
8
+ localDir: string;
9
+ /** Machine-level install directory (--global scope). */
10
+ globalDir: () => string;
11
+ /** Install/prune strategy: flat .md files under cf/, or one directory per skill. */
12
+ layout: 'flat-md' | 'skill-dirs';
13
+ /** Maps a raw installed entry name to how the user invokes it. */
14
+ invocationHint: (entry: string) => string;
15
+ /** Noun used in messages ("commands" vs "skills"). */
16
+ noun: string;
17
+ label: string;
18
+ }
19
+ /**
20
+ * One entry per deliverable target — the `Record<CommandTarget, …>` annotation
21
+ * makes the compiler reject a CommandTarget without a descriptor.
22
+ */
23
+ export declare const COMMAND_TARGETS: Record<CommandTarget, CommandTargetDescriptor>;
4
24
  /**
5
- * Copy command files from the bundled commands/cf/ directory to the target.
6
- * Creates directories as needed. Overwrites existing files (idempotent).
7
- * Removes stale .md files in the target that no longer exist in the source.
8
- *
9
- * @returns Object with installed and removed filenames.
25
+ * Resolve user input ('claude', 'codex', 'openai', 'agents', …) to a deliverable
26
+ * command target. Throws UserError for unknown targets and for valid IDE targets
27
+ * with no command delivery (copilot, cursor) an explicit error, not a no-op.
10
28
  */
11
- export declare function installCommands(targetDir: string): {
29
+ export declare function resolveCommandTarget(input: string): CommandTarget;
30
+ export interface InstallScopeOptions {
31
+ /** Install to the machine-level directory instead of project-local. */
32
+ global?: boolean;
33
+ /** Explicit directory override — beats both scopes. */
34
+ targetDir?: string;
35
+ }
36
+ /** Resolve the install directory for a target and scope. Project-local is the default. */
37
+ export declare function resolveInstallDir(target: CommandTarget, opts?: InstallScopeOptions): string;
38
+ /** Resolve the bundled commands/ directory relative to this script's location. */
39
+ export declare function getSourceCommandsDir(): string;
40
+ export interface InstallResult {
12
41
  installed: string[];
13
42
  removed: string[];
14
- };
43
+ }
44
+ /**
45
+ * Install a target's bundled command assets into targetDir (layout per descriptor).
46
+ * Creates directories as needed, overwrites existing files (idempotent), and
47
+ * removes stale managed entries no longer present in the source.
48
+ */
49
+ export declare function installCommands(target: CommandTarget, targetDir: string): InstallResult;
15
50
  /**
16
- * Remove managed command files from the target.
17
- * "Managed" = any .md file that exists in the bundled source directory.
18
- * Preserves user-added files not in the source. Removes cf/ if empty.
19
- * No error if files or directory don't exist (idempotent).
20
- *
21
- * @returns List of removed filenames.
51
+ * Remove managed command assets from the target.
52
+ * "Managed" = entries present in the bundled source for this target.
53
+ * Preserves user-added entries. flat-md removes cf/ if left empty; skill-dirs
54
+ * never removes the parent directory (it is shared with other skills).
55
+ * Idempotent — no error if files or directories don't exist.
22
56
  */
23
- export declare function uninstallCommands(targetDir: string): string[];
24
- /** Install commands to the target directory (defaults to ~/.claude/commands). Errors propagate. */
25
- export declare function installCommandsAction(targetDir?: string): void;
57
+ export declare function uninstallCommands(target: CommandTarget, targetDir: string): string[];
58
+ /** Install and report for an already-resolved command target. Errors propagate. */
59
+ export declare function installCommandsForTarget(target: CommandTarget, opts?: InstallScopeOptions): void;
60
+ /** Install and report, resolving the target from user input. Errors propagate. */
61
+ export declare function installCommandsAction(ide?: string, opts?: InstallScopeOptions): void;
26
62
  export declare function registerInstallCommandsCommand(program: Command): void;
27
63
  export declare function registerUninstallCommandsCommand(program: Command): void;
28
64
  //# sourceMappingURL=commandInstaller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commandInstaller.d.ts","sourceRoot":"","sources":["../../src/commands/commandInstaller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,kFAAkF;AAClF,wBAAgB,oBAAoB,IAAI,MAAM,CAU7C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAwB7F;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAuB7D;AAOD,mGAAmG;AACnG,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAU9D;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoBrE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBvE"}
1
+ {"version":3,"file":"commandInstaller.d.ts","sourceRoot":"","sources":["../../src/commands/commandInstaller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,mGAAmG;AACnG,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD,MAAM,WAAW,uBAAuB;IACtC,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,oFAAoF;IACpF,MAAM,EAAE,SAAS,GAAG,YAAY,CAAC;IACjC,kEAAkE;IAClE,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAoB1E,CAAC;AAMF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAYjE;AAED,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAI/F;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,IAAI,MAAM,CAU7C;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA2DD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAMvF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CA6BpF;AAoBD,mFAAmF;AACnF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,GAAE,mBAAwB,GAAG,IAAI,CAGpG;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAiB,EAAE,IAAI,GAAE,mBAAwB,GAAG,IAAI,CAElG;AAQD,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAerE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0BvE"}
@@ -3,8 +3,61 @@ import * as os from 'node:os';
3
3
  import * as path from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  import { success, dim } from '../output/styles.js';
6
+ import { normalizeTarget, invalidTargetMessage } from './ideTargets.js';
7
+ import { UserError } from '../utils/errors.js';
6
8
  const __filename = fileURLToPath(import.meta.url);
7
9
  const __dirname = path.dirname(__filename);
10
+ /**
11
+ * One entry per deliverable target — the `Record<CommandTarget, …>` annotation
12
+ * makes the compiler reject a CommandTarget without a descriptor.
13
+ */
14
+ export const COMMAND_TARGETS = {
15
+ claude: {
16
+ sourceDir: 'cf',
17
+ localDir: '.claude/commands',
18
+ globalDir: () => path.join(os.homedir(), '.claude', 'commands'),
19
+ layout: 'flat-md',
20
+ invocationHint: (entry) => '/cf:' + entry.replace(/\.md$/, ''),
21
+ noun: 'commands',
22
+ label: 'Claude Code',
23
+ },
24
+ agents: {
25
+ sourceDir: 'codex',
26
+ localDir: '.agents/skills',
27
+ // Codex's machine-level skills directory (design D2 — live-verified before merge).
28
+ globalDir: () => path.join(os.homedir(), '.codex', 'skills'),
29
+ layout: 'skill-dirs',
30
+ invocationHint: (entry) => '$' + entry,
31
+ noun: 'skills',
32
+ label: 'Codex',
33
+ },
34
+ };
35
+ function isCommandTarget(target) {
36
+ return target in COMMAND_TARGETS;
37
+ }
38
+ /**
39
+ * Resolve user input ('claude', 'codex', 'openai', 'agents', …) to a deliverable
40
+ * command target. Throws UserError for unknown targets and for valid IDE targets
41
+ * with no command delivery (copilot, cursor) — an explicit error, not a no-op.
42
+ */
43
+ export function resolveCommandTarget(input) {
44
+ const normalized = normalizeTarget(input);
45
+ if (!normalized) {
46
+ throw new UserError(invalidTargetMessage(input));
47
+ }
48
+ if (!isCommandTarget(normalized)) {
49
+ throw new UserError(`No command delivery exists for target '${normalized}'. ` +
50
+ `Commands are available for: ${Object.keys(COMMAND_TARGETS).join(', ')} (aliases: codex, openai → agents).`);
51
+ }
52
+ return normalized;
53
+ }
54
+ /** Resolve the install directory for a target and scope. Project-local is the default. */
55
+ export function resolveInstallDir(target, opts = {}) {
56
+ if (opts.targetDir)
57
+ return path.resolve(opts.targetDir);
58
+ const descriptor = COMMAND_TARGETS[target];
59
+ return opts.global ? descriptor.globalDir() : path.resolve(process.cwd(), descriptor.localDir);
60
+ }
8
61
  /** Resolve the bundled commands/ directory relative to this script's location. */
9
62
  export function getSourceCommandsDir() {
10
63
  // In dist: dist/commands/commandInstaller.js → ../../commands/
@@ -15,23 +68,14 @@ export function getSourceCommandsDir() {
15
68
  }
16
69
  return resolved;
17
70
  }
18
- /**
19
- * Copy command files from the bundled commands/cf/ directory to the target.
20
- * Creates directories as needed. Overwrites existing files (idempotent).
21
- * Removes stale .md files in the target that no longer exist in the source.
22
- *
23
- * @returns Object with installed and removed filenames.
24
- */
25
- export function installCommands(targetDir) {
26
- const sourceDir = path.join(getSourceCommandsDir(), 'cf');
71
+ /** flat-md layout: copy cf/*.md into targetDir/cf/, prune stale managed .md files. */
72
+ function installFlatMd(sourceDir, targetDir) {
27
73
  const targetCfDir = path.join(targetDir, 'cf');
28
74
  fs.mkdirSync(targetCfDir, { recursive: true });
29
75
  const sourceFiles = new Set(fs.readdirSync(sourceDir).filter((f) => f.endsWith('.md')));
30
- // Install current files
31
76
  for (const file of sourceFiles) {
32
77
  fs.copyFileSync(path.join(sourceDir, file), path.join(targetCfDir, file));
33
78
  }
34
- // Remove stale files (exist in target but not in source)
35
79
  const removed = [];
36
80
  const targetFiles = fs.readdirSync(targetCfDir).filter((f) => f.endsWith('.md'));
37
81
  for (const file of targetFiles) {
@@ -42,66 +86,118 @@ export function installCommands(targetDir) {
42
86
  }
43
87
  return { installed: [...sourceFiles], removed };
44
88
  }
89
+ /** Names of bundled skill directories (subdirectories containing a SKILL.md). */
90
+ function bundledSkillNames(sourceDir) {
91
+ return fs
92
+ .readdirSync(sourceDir, { withFileTypes: true })
93
+ .filter((e) => e.isDirectory() && fs.existsSync(path.join(sourceDir, e.name, 'SKILL.md')))
94
+ .map((e) => e.name);
95
+ }
45
96
  /**
46
- * Remove managed command files from the target.
47
- * "Managed" = any .md file that exists in the bundled source directory.
48
- * Preserves user-added files not in the source. Removes cf/ if empty.
49
- * No error if files or directory don't exist (idempotent).
50
- *
51
- * @returns List of removed filenames.
97
+ * skill-dirs layout: copy each bundled skill directory into targetDir, then prune
98
+ * stale managed directories. "Managed" = `cf-` prefix AND contains a SKILL.md
99
+ * the prefix marks CF ownership (the analogue of the cf/ subdirectory in the flat
100
+ * layout); the SKILL.md check keeps non-skill directories that merely share the
101
+ * prefix untouched. Other skills in the directory (e.g. the guide's workflow
102
+ * skills) are never touched.
52
103
  */
53
- export function uninstallCommands(targetDir) {
54
- const sourceDir = path.join(getSourceCommandsDir(), 'cf');
55
- const managedFiles = fs.readdirSync(sourceDir).filter((f) => f.endsWith('.md'));
56
- const targetCfDir = path.join(targetDir, 'cf');
104
+ function installSkillDirs(sourceDir, targetDir) {
105
+ fs.mkdirSync(targetDir, { recursive: true });
106
+ const sourceSkills = new Set(bundledSkillNames(sourceDir));
107
+ for (const skill of sourceSkills) {
108
+ fs.cpSync(path.join(sourceDir, skill), path.join(targetDir, skill), { recursive: true });
109
+ }
57
110
  const removed = [];
58
- for (const file of managedFiles) {
59
- const filePath = path.join(targetCfDir, file);
60
- if (fs.existsSync(filePath)) {
61
- fs.rmSync(filePath);
62
- removed.push(file);
63
- }
111
+ for (const entry of fs.readdirSync(targetDir, { withFileTypes: true })) {
112
+ if (!entry.isDirectory() || !entry.name.startsWith('cf-') || sourceSkills.has(entry.name))
113
+ continue;
114
+ if (!fs.existsSync(path.join(targetDir, entry.name, 'SKILL.md')))
115
+ continue;
116
+ fs.rmSync(path.join(targetDir, entry.name), { recursive: true });
117
+ removed.push(entry.name);
64
118
  }
65
- // Remove cf/ directory if it exists and is now empty
66
- if (fs.existsSync(targetCfDir)) {
67
- const remaining = fs.readdirSync(targetCfDir);
68
- if (remaining.length === 0) {
119
+ return { installed: [...sourceSkills], removed };
120
+ }
121
+ /**
122
+ * Install a target's bundled command assets into targetDir (layout per descriptor).
123
+ * Creates directories as needed, overwrites existing files (idempotent), and
124
+ * removes stale managed entries no longer present in the source.
125
+ */
126
+ export function installCommands(target, targetDir) {
127
+ const descriptor = COMMAND_TARGETS[target];
128
+ const sourceDir = path.join(getSourceCommandsDir(), descriptor.sourceDir);
129
+ return descriptor.layout === 'flat-md'
130
+ ? installFlatMd(sourceDir, targetDir)
131
+ : installSkillDirs(sourceDir, targetDir);
132
+ }
133
+ /**
134
+ * Remove managed command assets from the target.
135
+ * "Managed" = entries present in the bundled source for this target.
136
+ * Preserves user-added entries. flat-md removes cf/ if left empty; skill-dirs
137
+ * never removes the parent directory (it is shared with other skills).
138
+ * Idempotent — no error if files or directories don't exist.
139
+ */
140
+ export function uninstallCommands(target, targetDir) {
141
+ const descriptor = COMMAND_TARGETS[target];
142
+ const sourceDir = path.join(getSourceCommandsDir(), descriptor.sourceDir);
143
+ const removed = [];
144
+ if (descriptor.layout === 'flat-md') {
145
+ const managedFiles = fs.readdirSync(sourceDir).filter((f) => f.endsWith('.md'));
146
+ const targetCfDir = path.join(targetDir, 'cf');
147
+ for (const file of managedFiles) {
148
+ const filePath = path.join(targetCfDir, file);
149
+ if (fs.existsSync(filePath)) {
150
+ fs.rmSync(filePath);
151
+ removed.push(file);
152
+ }
153
+ }
154
+ if (fs.existsSync(targetCfDir) && fs.readdirSync(targetCfDir).length === 0) {
69
155
  fs.rmdirSync(targetCfDir);
70
156
  }
71
157
  }
158
+ else {
159
+ for (const skill of bundledSkillNames(sourceDir)) {
160
+ const skillDir = path.join(targetDir, skill);
161
+ if (fs.existsSync(skillDir)) {
162
+ fs.rmSync(skillDir, { recursive: true });
163
+ removed.push(skill);
164
+ }
165
+ }
166
+ }
72
167
  return removed;
73
168
  }
74
- /** Default target directory for command installation. */
75
- function defaultTarget() {
76
- return path.join(os.homedir(), '.claude', 'commands');
77
- }
78
- /** Install commands to the target directory (defaults to ~/.claude/commands). Errors propagate. */
79
- export function installCommandsAction(targetDir) {
80
- const target = targetDir ?? defaultTarget();
81
- const { installed, removed } = installCommands(target);
82
- console.log(success(`Installed ${installed.length} commands to ${target}/cf/`));
83
- for (const file of installed) {
84
- console.log(` ${dim('/cf:' + file.replace('.md', ''))}`);
169
+ function reportInstall(target, dir, result) {
170
+ const descriptor = COMMAND_TARGETS[target];
171
+ const installedDir = descriptor.layout === 'flat-md' ? path.join(dir, 'cf') : dir;
172
+ console.log(success(`Installed ${result.installed.length} ${descriptor.noun} to ${installedDir} (${descriptor.label})`));
173
+ for (const entry of result.installed) {
174
+ console.log(` ${dim(descriptor.invocationHint(entry))}`);
85
175
  }
86
- if (removed.length > 0) {
87
- console.log(dim(`Removed ${removed.length} stale command(s): ${removed.map((f) => f.replace('.md', '')).join(', ')}`));
176
+ if (result.removed.length > 0) {
177
+ console.log(dim(`Removed ${result.removed.length} stale ${descriptor.noun}: ${result.removed
178
+ .map((e) => descriptor.invocationHint(e))
179
+ .join(', ')}`));
88
180
  }
89
181
  }
182
+ /** Install and report for an already-resolved command target. Errors propagate. */
183
+ export function installCommandsForTarget(target, opts = {}) {
184
+ const dir = resolveInstallDir(target, opts);
185
+ reportInstall(target, dir, installCommands(target, dir));
186
+ }
187
+ /** Install and report, resolving the target from user input. Errors propagate. */
188
+ export function installCommandsAction(ide = 'claude', opts = {}) {
189
+ installCommandsForTarget(resolveCommandTarget(ide), opts);
190
+ }
90
191
  export function registerInstallCommandsCommand(program) {
91
192
  program
92
193
  .command('install-commands')
93
- .description('Install Claude Code slash commands for Context Forge')
94
- .option('--target <dir>', 'Target directory', defaultTarget())
194
+ .description('Install Context Forge slash commands (Claude Code) or agent skills (Codex)')
195
+ .option('--ide <target>', 'IDE target: claude, agents (aliases: openai, codex)', 'claude')
196
+ .option('--global', 'Install to the machine-level directory instead of project-local')
197
+ .option('--target <dir>', 'Explicit target directory (overrides --ide/--global resolution)')
95
198
  .action((opts) => {
96
199
  try {
97
- const { installed, removed } = installCommands(opts.target);
98
- console.log(success(`Installed ${installed.length} commands to ${opts.target}/cf/`));
99
- for (const file of installed) {
100
- console.log(` ${dim('/cf:' + file.replace('.md', ''))}`);
101
- }
102
- if (removed.length > 0) {
103
- console.log(dim(`Removed ${removed.length} stale command(s): ${removed.map((f) => f.replace('.md', '')).join(', ')}`));
104
- }
200
+ installCommandsAction(opts.ide, { global: opts.global, targetDir: opts.target });
105
201
  }
106
202
  catch (err) {
107
203
  console.error(`Error: ${err.message}`);
@@ -112,18 +208,23 @@ export function registerInstallCommandsCommand(program) {
112
208
  export function registerUninstallCommandsCommand(program) {
113
209
  program
114
210
  .command('uninstall-commands')
115
- .description('Remove Claude Code slash commands for Context Forge')
116
- .option('--target <dir>', 'Target directory', defaultTarget())
211
+ .description('Remove Context Forge slash commands (Claude Code) or agent skills (Codex)')
212
+ .option('--ide <target>', 'IDE target: claude, agents (aliases: openai, codex)', 'claude')
213
+ .option('--global', 'Uninstall from the machine-level directory instead of project-local')
214
+ .option('--target <dir>', 'Explicit target directory (overrides --ide/--global resolution)')
117
215
  .action((opts) => {
118
216
  try {
119
- const removed = uninstallCommands(opts.target);
217
+ const target = resolveCommandTarget(opts.ide);
218
+ const descriptor = COMMAND_TARGETS[target];
219
+ const dir = resolveInstallDir(target, { global: opts.global, targetDir: opts.target });
220
+ const removed = uninstallCommands(target, dir);
120
221
  if (removed.length === 0) {
121
- console.log(dim('No commands found to remove.'));
222
+ console.log(dim(`No ${descriptor.noun} found to remove.`));
122
223
  }
123
224
  else {
124
- console.log(success(`Removed ${removed.length} commands from ${opts.target}/cf/`));
125
- for (const file of removed) {
126
- console.log(` ${dim('/cf:' + file.replace('.md', ''))}`);
225
+ console.log(success(`Removed ${removed.length} ${descriptor.noun} from ${dir}`));
226
+ for (const entry of removed) {
227
+ console.log(` ${dim(descriptor.invocationHint(entry))}`);
127
228
  }
128
229
  }
129
230
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commandInstaller.js","sourceRoot":"","sources":["../../src/commands/commandInstaller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commandInstaller.js","sourceRoot":"","sources":["../../src/commands/commandInstaller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shared IDE-target vocabulary. Both setup-ide (IDE file generation) and
3
+ * commandInstaller (command/skill delivery) resolve user input through this
4
+ * single alias table so a target string means the same thing everywhere.
5
+ * Lives in its own module to keep setup-ide ⇄ commandInstaller acyclic.
6
+ */
7
+ export type Target = 'claude' | 'copilot' | 'cursor' | 'agents';
8
+ /** Canonical target names — the single source for validation and help text. */
9
+ export declare const TARGET_NAMES: readonly Target[];
10
+ /** Aliases resolved to a canonical target before anything downstream sees the input. */
11
+ export declare const TARGET_ALIASES: Record<string, Target>;
12
+ /** Resolves a target string (case/whitespace-insensitive) to its canonical form, or null if unknown. */
13
+ export declare function normalizeTarget(input: string): Target | null;
14
+ /** Built from TARGET_NAMES/TARGET_ALIASES so the message can never drift from what normalizeTarget accepts. */
15
+ export declare function invalidTargetMessage(input: string): string;
16
+ //# sourceMappingURL=ideTargets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ideTargets.d.ts","sourceRoot":"","sources":["../../src/commands/ideTargets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhE,+EAA+E;AAC/E,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAA8C,CAAC;AAEzF,wFAAwF;AACxF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAyC,CAAC;AAE5F,wGAAwG;AACxG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5D;AAeD,+GAA+G;AAC/G,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Shared IDE-target vocabulary. Both setup-ide (IDE file generation) and
3
+ * commandInstaller (command/skill delivery) resolve user input through this
4
+ * single alias table so a target string means the same thing everywhere.
5
+ * Lives in its own module to keep setup-ide ⇄ commandInstaller acyclic.
6
+ */
7
+ /** Canonical target names — the single source for validation and help text. */
8
+ export const TARGET_NAMES = ['claude', 'copilot', 'cursor', 'agents'];
9
+ /** Aliases resolved to a canonical target before anything downstream sees the input. */
10
+ export const TARGET_ALIASES = { openai: 'agents', codex: 'agents' };
11
+ /** Resolves a target string (case/whitespace-insensitive) to its canonical form, or null if unknown. */
12
+ export function normalizeTarget(input) {
13
+ const normalized = input.trim().toLowerCase();
14
+ if (TARGET_NAMES.includes(normalized))
15
+ return normalized;
16
+ if (normalized in TARGET_ALIASES)
17
+ return TARGET_ALIASES[normalized];
18
+ return null;
19
+ }
20
+ /** Groups TARGET_ALIASES by canonical target, e.g. "openai, codex → agents". */
21
+ function describeAliases() {
22
+ const byTarget = new Map();
23
+ for (const [alias, target] of Object.entries(TARGET_ALIASES)) {
24
+ const group = byTarget.get(target) ?? [];
25
+ group.push(alias);
26
+ byTarget.set(target, group);
27
+ }
28
+ return Array.from(byTarget.entries())
29
+ .map(([target, aliases]) => `${aliases.join(', ')} → ${target}`)
30
+ .join(', ');
31
+ }
32
+ /** Built from TARGET_NAMES/TARGET_ALIASES so the message can never drift from what normalizeTarget accepts. */
33
+ export function invalidTargetMessage(input) {
34
+ return `Invalid target '${input}'. Valid targets: ${TARGET_NAMES.join(', ')} (aliases: ${describeAliases()})`;
35
+ }
36
+ //# sourceMappingURL=ideTargets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ideTargets.js","sourceRoot":"","sources":["../../src/commands/ideTargets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAEzF,wFAAwF;AACxF,MAAM,CAAC,MAAM,cAAc,GAA2B,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAE5F,wGAAwG;AACxG,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAK,YAAkC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAoB,CAAC;IAC1F,IAAI,UAAU,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC,UAAU,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,SAAS,eAAe;IACtB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,EAAE,CAAC;SAC/D,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,mBAAmB,KAAK,qBAAqB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,eAAe,EAAE,GAAG,CAAC;AAChH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4DpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgG1D"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4DpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0G1D"}
@@ -117,13 +117,23 @@ export function registerInitCommand(program) {
117
117
  console.log(warn(`Guides install failed: ${msg}`));
118
118
  }
119
119
  }
120
- // Step 3: Install commands
121
- try {
122
- installCommandsAction();
123
- console.log(success('Commands installed'));
124
- }
125
- catch (err) {
126
- console.log(warn(`Commands install failed: ${err.message}`));
120
+ // Step 3: Install commands/skills for the chosen IDE target, machine-level
121
+ // (preserves the pre-slice-924 behavior of a global Claude install; a
122
+ // project-local install is available via `cf install-commands` directly).
123
+ // --no-ide skips delivery entirely; targets without command delivery
124
+ // (copilot, cursor) and invalid targets skip silently here — Step 4
125
+ // reports invalid targets with the full message.
126
+ if (opts.ide !== false) {
127
+ const ideTarget = typeof opts.ide === 'string' ? opts.ide : 'claude';
128
+ const normalizedIde = normalizeTarget(ideTarget);
129
+ if (normalizedIde === 'claude' || normalizedIde === 'agents') {
130
+ try {
131
+ installCommandsAction(normalizedIde, { global: true });
132
+ }
133
+ catch (err) {
134
+ console.log(warn(`Command install failed: ${err.message}`));
135
+ }
136
+ }
127
137
  }
128
138
  // Step 4: IDE setup (--no-ide sets opts.ide to false via commander negation)
129
139
  if (opts.ide !== false) {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Command } from 'commander';
2
2
  import type { ProjectData } from '@context-forge/core';
3
- export type Target = 'claude' | 'copilot' | 'cursor' | 'agents';
3
+ import { type Target } from './ideTargets.js';
4
+ export { normalizeTarget, invalidTargetMessage, TARGET_ALIASES, type Target } from './ideTargets.js';
4
5
  export interface TargetDescriptor {
5
6
  /** Files probed for the managed marker; also the files backed up before overwrite. */
6
7
  markerFiles: string[];
@@ -15,12 +16,6 @@ export interface TargetDescriptor {
15
16
  * the compiler reject a target added to the `Target` union without an entry here.
16
17
  */
17
18
  export declare const TARGETS: Record<Target, TargetDescriptor>;
18
- /** Aliases resolved to a canonical target before anything downstream sees the input. */
19
- export declare const TARGET_ALIASES: Record<string, Target>;
20
- /** Resolves a target string (case/whitespace-insensitive) to its canonical form, or null if unknown. */
21
- export declare function normalizeTarget(input: string): Target | null;
22
- /** Built from TARGETS/TARGET_ALIASES so the message can never drift from what normalizeTarget accepts. */
23
- export declare function invalidTargetMessage(input: string): string;
24
19
  export declare const MANAGED_MARKER = "[//]: # (context-forge:managed)";
25
20
  /**
26
21
  * Returns true if any of the given (root-relative, `/`-separated) files exists
@@ -1 +1 @@
1
- {"version":3,"file":"setup-ide.d.ts","sourceRoot":"","sources":["../../src/commands/setup-ide.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oDAAoD;IACpD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAqBpD,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAyC,CAAC;AAE5F,wGAAwG;AACxG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5D;AAeD,0GAA0G;AAC1G,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAaD,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAYpF;AAED,mEAAmE;AACnE,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAwEf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAyC/E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsC9D"}
1
+ {"version":3,"file":"setup-ide.d.ts","sourceRoot":"","sources":["../../src/commands/setup-ide.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD,OAAO,EAAyC,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIrF,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAErG,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oDAAoD;IACpD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAqBpD,CAAC;AAaF,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAYpF;AAED,mEAAmE;AACnE,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAwEf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAyC/E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6C9D"}
@@ -6,6 +6,10 @@ import { FileProjectStore, GuideDetector, GUIDE_RELATIVE_PATH } from '@context-f
6
6
  import { resolveProjectId } from '../utils/project.js';
7
7
  import { withProjectOption, withYesOption } from '../options.js';
8
8
  import { handleError, UserError } from '../utils/errors.js';
9
+ import { normalizeTarget, invalidTargetMessage } from './ideTargets.js';
10
+ import { installCommandsForTarget } from './commandInstaller.js';
11
+ // Re-exported so existing importers (tests, init.ts) keep one import site.
12
+ export { normalizeTarget, invalidTargetMessage, TARGET_ALIASES } from './ideTargets.js';
9
13
  /**
10
14
  * One definition per target drives validation, the managed-marker check, backup,
11
15
  * and worktree propagation. The `Record<Target, TargetDescriptor>` annotation makes
@@ -33,33 +37,6 @@ export const TARGETS = {
33
37
  label: 'agents',
34
38
  },
35
39
  };
36
- /** Aliases resolved to a canonical target before anything downstream sees the input. */
37
- export const TARGET_ALIASES = { openai: 'agents', codex: 'agents' };
38
- /** Resolves a target string (case/whitespace-insensitive) to its canonical form, or null if unknown. */
39
- export function normalizeTarget(input) {
40
- const normalized = input.trim().toLowerCase();
41
- if (normalized in TARGETS)
42
- return normalized;
43
- if (normalized in TARGET_ALIASES)
44
- return TARGET_ALIASES[normalized];
45
- return null;
46
- }
47
- /** Groups TARGET_ALIASES by canonical target, e.g. "openai, codex → agents". */
48
- function describeAliases() {
49
- const byTarget = new Map();
50
- for (const [alias, target] of Object.entries(TARGET_ALIASES)) {
51
- const group = byTarget.get(target) ?? [];
52
- group.push(alias);
53
- byTarget.set(target, group);
54
- }
55
- return Array.from(byTarget.entries())
56
- .map(([target, aliases]) => `${aliases.join(', ')} → ${target}`)
57
- .join(', ');
58
- }
59
- /** Built from TARGETS/TARGET_ALIASES so the message can never drift from what normalizeTarget accepts. */
60
- export function invalidTargetMessage(input) {
61
- return `Invalid target '${input}'. Valid targets: ${Object.keys(TARGETS).join(', ')} (aliases: ${describeAliases()})`;
62
- }
63
40
  /** Prompt user for y/N confirmation via stdin. Returns true if confirmed. */
64
41
  function askConfirmation(prompt) {
65
42
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
@@ -229,6 +206,12 @@ export function registerSetupIdeCommand(program) {
229
206
  }
230
207
  await setupIdeAction(project.projectPath, normalizedTarget, { yes: opts.yes });
231
208
  propagateToWorktrees(project, normalizedTarget);
209
+ // Command/skill delivery: setup-ide is a machine-level operation, so it
210
+ // installs to the global directory (design D5). Targets without command
211
+ // delivery (copilot, cursor) skip this step silently.
212
+ if (normalizedTarget === 'claude' || normalizedTarget === 'agents') {
213
+ installCommandsForTarget(normalizedTarget, { global: true });
214
+ }
232
215
  }
233
216
  catch (err) {
234
217
  handleError(err);
@@ -1 +1 @@
1
- {"version":3,"file":"setup-ide.js","sourceRoot":"","sources":["../../src/commands/setup-ide.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-ide.js","sourceRoot":"","sources":["../../src/commands/setup-ide.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@context-forge/cli",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "CLI for Context Forge — terminal access to context assembly, project management, workflow navigation, and configuration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -32,7 +32,7 @@
32
32
  "dependencies": {
33
33
  "chalk": "^5.4.1",
34
34
  "commander": "^13.1.0",
35
- "@context-forge/core": "0.12.0"
35
+ "@context-forge/core": "0.13.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/node": "^25.3.0",