@quanvo99/ai-rules 0.1.5 → 0.1.7

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 (36) hide show
  1. package/dist/cli/commands/init.d.ts.map +1 -1
  2. package/dist/cli/commands/init.js +194 -77
  3. package/dist/cli/commands/init.js.map +1 -1
  4. package/dist/cli/commands/pull.d.ts +10 -0
  5. package/dist/cli/commands/pull.d.ts.map +1 -0
  6. package/dist/cli/commands/pull.js +85 -0
  7. package/dist/cli/commands/pull.js.map +1 -0
  8. package/dist/cli/index.js +37 -1
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/lib/api-client.d.ts +72 -0
  11. package/dist/cli/lib/api-client.d.ts.map +1 -0
  12. package/dist/cli/lib/{github.js → api-client.js} +37 -1
  13. package/dist/cli/lib/api-client.js.map +1 -0
  14. package/dist/cli/lib/config.d.ts +14 -0
  15. package/dist/cli/lib/config.d.ts.map +1 -1
  16. package/dist/cli/lib/config.js +36 -0
  17. package/dist/cli/lib/config.js.map +1 -1
  18. package/dist/cli/lib/files.d.ts.map +1 -1
  19. package/dist/cli/lib/files.js +8 -0
  20. package/dist/cli/lib/files.js.map +1 -1
  21. package/dist/cli/lib/prompts.d.ts +18 -0
  22. package/dist/cli/lib/prompts.d.ts.map +1 -1
  23. package/dist/cli/lib/prompts.js +76 -0
  24. package/dist/cli/lib/prompts.js.map +1 -1
  25. package/dist/cli/lib/types.d.ts +18 -1
  26. package/dist/cli/lib/types.d.ts.map +1 -1
  27. package/dist/cli/lib/types.js +1 -0
  28. package/dist/cli/lib/types.js.map +1 -1
  29. package/dist/server/types.d.ts +37 -0
  30. package/dist/server/types.d.ts.map +1 -1
  31. package/dist/server/types.js +3 -1
  32. package/dist/server/types.js.map +1 -1
  33. package/package.json +1 -1
  34. package/dist/cli/lib/github.d.ts +0 -30
  35. package/dist/cli/lib/github.d.ts.map +0 -1
  36. package/dist/cli/lib/github.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,cAAc,CAAC;AAEjE;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8M1E"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAmB,WAAW,EAAqB,MAAM,cAAc,CAAC;AAwGpF;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiP1E"}
@@ -6,10 +6,92 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.initCommand = initCommand;
7
7
  const node_path_1 = require("node:path");
8
8
  const chalk_1 = __importDefault(require("chalk"));
9
+ const api_client_1 = require("../lib/api-client");
9
10
  const config_1 = require("../lib/config");
10
11
  const files_1 = require("../lib/files");
11
- const github_1 = require("../lib/github");
12
12
  const prompts_1 = require("../lib/prompts");
13
+ /**
14
+ * Installs selected skills for the given agent
15
+ */
16
+ async function installSkills(skills, agent, overwriteStrategy, config) {
17
+ let installedSkillsCount = 0;
18
+ for (const skill of skills) {
19
+ try {
20
+ // Apply skill naming convention for this agent
21
+ const targetPath = (0, files_1.applySkillNamingConvention)(agent, skill.name);
22
+ // Check for conflicts
23
+ const conflict = await (0, files_1.detectConflict)((0, node_path_1.join)(process.cwd(), targetPath));
24
+ if (conflict.hasConflict) {
25
+ if (overwriteStrategy === "skip") {
26
+ console.log(chalk_1.default.yellow(`⏭️ Skipped (file exists): ${targetPath}`));
27
+ continue;
28
+ }
29
+ if (overwriteStrategy === "force") {
30
+ console.log(chalk_1.default.yellow(`⚠️ Overwriting: ${targetPath}`));
31
+ }
32
+ else {
33
+ const shouldOverwrite = await (0, prompts_1.promptConflictResolution)(targetPath);
34
+ if (!shouldOverwrite) {
35
+ console.log(chalk_1.default.yellow(`⏭️ Skipped: ${targetPath}`));
36
+ continue;
37
+ }
38
+ }
39
+ }
40
+ // Write skill file
41
+ await (0, files_1.writeRuleFile)(skill.content, (0, node_path_1.join)(process.cwd(), targetPath));
42
+ console.log(chalk_1.default.green(`✓ Installed skill: ${skill.name}`));
43
+ installedSkillsCount++;
44
+ // Add skill to config
45
+ const updatedConfig = (0, config_1.addSkill)(config, skill.name);
46
+ Object.assign(config, updatedConfig);
47
+ }
48
+ catch (error) {
49
+ console.error(chalk_1.default.red(`❌ Error installing skill ${skill.name}: ${error}`));
50
+ }
51
+ }
52
+ console.log(chalk_1.default.green(`\n🎉 Successfully installed ${installedSkillsCount} skills`));
53
+ }
54
+ /**
55
+ * Installs selected workflows for the given agent
56
+ */
57
+ async function installWorkflows(workflows, _agent, overwriteStrategy, config) {
58
+ let installedWorkflowsCount = 0;
59
+ for (const workflow of workflows) {
60
+ try {
61
+ // Workflows go to .agent/workflows/<name>.md
62
+ const targetPath = `.agent/workflows/${workflow.name}.md`;
63
+ // Check for conflicts
64
+ const conflict = await (0, files_1.detectConflict)((0, node_path_1.join)(process.cwd(), targetPath));
65
+ if (conflict.hasConflict) {
66
+ if (overwriteStrategy === "skip") {
67
+ console.log(chalk_1.default.yellow(`⏭️ Skipped (file exists): ${targetPath}`));
68
+ continue;
69
+ }
70
+ if (overwriteStrategy === "force") {
71
+ console.log(chalk_1.default.yellow(`⚠️ Overwriting: ${targetPath}`));
72
+ }
73
+ else {
74
+ const shouldOverwrite = await (0, prompts_1.promptConflictResolution)(targetPath);
75
+ if (!shouldOverwrite) {
76
+ console.log(chalk_1.default.yellow(`⏭️ Skipped: ${targetPath}`));
77
+ continue;
78
+ }
79
+ }
80
+ }
81
+ // Write workflow file
82
+ await (0, files_1.writeRuleFile)(workflow.content, (0, node_path_1.join)(process.cwd(), targetPath));
83
+ console.log(chalk_1.default.green(`✓ Installed workflow: ${workflow.name}`));
84
+ installedWorkflowsCount++;
85
+ // Add workflow to config
86
+ const updatedConfig = (0, config_1.addWorkflow)(config, workflow.name);
87
+ Object.assign(config, updatedConfig);
88
+ }
89
+ catch (error) {
90
+ console.error(chalk_1.default.red(`❌ Error installing workflow ${workflow.name}: ${error}`));
91
+ }
92
+ }
93
+ console.log(chalk_1.default.green(`\n🎉 Successfully installed ${installedWorkflowsCount} workflows`));
94
+ }
13
95
  /**
14
96
  * Initialize AI rules for the current project
15
97
  * @param options - CLI options for non-interactive mode
@@ -18,9 +100,9 @@ async function initCommand(options = {}) {
18
100
  try {
19
101
  console.log(chalk_1.default.blue("🚀 Initializing AI Rules...\n"));
20
102
  // Fetch available agents
21
- const agents = await (0, github_1.fetchAvailableAgents)();
103
+ const agents = await (0, api_client_1.fetchAvailableAgents)();
22
104
  if (agents.length === 0) {
23
- console.log(chalk_1.default.red("❌ No AI agents found. Make sure the API server is running."));
105
+ console.error(chalk_1.default.red("❌ No AI agents found. Make sure the API server is running."));
24
106
  process.exit(1);
25
107
  }
26
108
  // Agent selection: use provided option or prompt
@@ -28,7 +110,7 @@ async function initCommand(options = {}) {
28
110
  if (options.agent) {
29
111
  // Validate provided agent
30
112
  if (!agents.includes(options.agent)) {
31
- console.log(chalk_1.default.red(`❌ Invalid agent: ${options.agent}`));
113
+ console.error(chalk_1.default.red(`❌ Invalid agent: ${options.agent}`));
32
114
  console.log(chalk_1.default.yellow(`Available agents: ${agents.join(", ")}`));
33
115
  process.exit(1);
34
116
  }
@@ -39,40 +121,47 @@ async function initCommand(options = {}) {
39
121
  selectedAgent = await (0, prompts_1.promptAgentSelection)(agents);
40
122
  console.log(chalk_1.default.green(`✓ Selected agent: ${selectedAgent}\n`));
41
123
  }
42
- // Fetch manifests for selected agent
43
- const manifests = await (0, github_1.fetchManifests)(selectedAgent);
44
- if (manifests.length === 0) {
45
- console.log(chalk_1.default.red("❌ No rule categories found for this agent"));
46
- return;
47
- }
48
- // Category selection: use provided options or prompt
49
- let selectedCategories;
50
- if (options.categories && options.categories.length > 0) {
51
- // Check if "all" is specified
52
- if (options.categories.includes("all")) {
53
- selectedCategories = manifests.map((m) => m.id);
54
- console.log(chalk_1.default.green(`✓ Selected all categories: ${selectedCategories.join(", ")}\n`));
55
- }
56
- else {
57
- // Validate provided categories
58
- const validCategories = manifests.map((m) => m.id);
59
- const invalidCategories = options.categories.filter((cat) => !validCategories.includes(cat));
60
- if (invalidCategories.length > 0) {
61
- console.log(chalk_1.default.red(`❌ Invalid categories: ${invalidCategories.join(", ")}`));
62
- console.log(chalk_1.default.yellow(`Available categories: ${validCategories.join(", ")}`));
63
- process.exit(1);
64
- }
65
- selectedCategories = options.categories;
66
- console.log(chalk_1.default.green(`✓ Selected categories: ${selectedCategories.join(", ")}\n`));
67
- }
124
+ // Category selection: skip if --no-categories, else use provided options or prompt
125
+ let selectedCategories = [];
126
+ let manifests = [];
127
+ if (options.noCategories) {
128
+ console.log(chalk_1.default.yellow("⏭️ Skipping categories (--no-categories)\n"));
68
129
  }
69
130
  else {
70
- selectedCategories = await (0, prompts_1.promptCategorySelection)(manifests);
71
- if (selectedCategories.length === 0) {
72
- console.log(chalk_1.default.yellow("⚠️ No categories selected. Nothing to install."));
131
+ // Fetch manifests for selected agent
132
+ manifests = await (0, api_client_1.fetchManifests)(selectedAgent);
133
+ if (manifests.length === 0) {
134
+ console.error(chalk_1.default.red("❌ No rule categories found for this agent"));
73
135
  return;
74
136
  }
75
- console.log(chalk_1.default.green(`✓ Selected categories: ${selectedCategories.join(", ")}\n`));
137
+ if (options.categories && options.categories.length > 0) {
138
+ // Check if "all" is specified
139
+ if (options.categories.includes("all")) {
140
+ selectedCategories = manifests.map((m) => m.id);
141
+ console.log(chalk_1.default.green(`✓ Selected all categories: ${selectedCategories.join(", ")}\n`));
142
+ }
143
+ else {
144
+ // Validate provided categories
145
+ const validCategories = manifests.map((m) => m.id);
146
+ const invalidCategories = options.categories.filter((cat) => !validCategories.includes(cat));
147
+ if (invalidCategories.length > 0) {
148
+ console.error(chalk_1.default.red(`❌ Invalid categories: ${invalidCategories.join(", ")}`));
149
+ console.log(chalk_1.default.yellow(`Available categories: ${validCategories.join(", ")}`));
150
+ process.exit(1);
151
+ }
152
+ selectedCategories = options.categories;
153
+ console.log(chalk_1.default.green(`✓ Selected categories: ${selectedCategories.join(", ")}\n`));
154
+ }
155
+ }
156
+ else {
157
+ selectedCategories = await (0, prompts_1.promptCategorySelection)(manifests);
158
+ if (selectedCategories.length === 0) {
159
+ console.log(chalk_1.default.yellow("⚠️ No categories selected.\n"));
160
+ }
161
+ if (selectedCategories.length > 0) {
162
+ console.log(chalk_1.default.green(`✓ Selected categories: ${selectedCategories.join(", ")}\n`));
163
+ }
164
+ }
76
165
  }
77
166
  // Load existing config or create default
78
167
  let config;
@@ -88,6 +177,8 @@ async function initCommand(options = {}) {
88
177
  categories: [],
89
178
  };
90
179
  }
180
+ // Always update agent to match the selected agent
181
+ config = { ...config, agent: selectedAgent };
91
182
  // Determine overwrite strategy
92
183
  const overwriteStrategy = options.overwriteStrategy || "prompt";
93
184
  // Process each selected category
@@ -95,7 +186,7 @@ async function initCommand(options = {}) {
95
186
  for (const categoryId of selectedCategories) {
96
187
  const manifest = manifests.find((m) => m.id === categoryId);
97
188
  if (!manifest) {
98
- console.log(chalk_1.default.red(`❌ Manifest not found for category: ${categoryId}`));
189
+ console.error(chalk_1.default.red(`❌ Manifest not found for category: ${categoryId}`));
99
190
  continue;
100
191
  }
101
192
  console.log(chalk_1.default.blue(`📦 Installing ${manifest.id}...`));
@@ -103,9 +194,9 @@ async function initCommand(options = {}) {
103
194
  for (const file of manifest.files) {
104
195
  try {
105
196
  // Fetch file content
106
- const content = await (0, github_1.fetchRuleFile)(selectedAgent, manifest.category, file.path);
197
+ const content = await (0, api_client_1.fetchRuleFile)(selectedAgent, manifest.category, file.path);
107
198
  if (!content) {
108
- console.log(chalk_1.default.red(`❌ Failed to fetch file: ${file.path}`));
199
+ console.error(chalk_1.default.red(`❌ Failed to fetch file: ${file.path}`));
109
200
  continue;
110
201
  }
111
202
  // Extract filename from path (last segment)
@@ -137,7 +228,7 @@ async function initCommand(options = {}) {
137
228
  console.log(chalk_1.default.green(`✓ Installed: ${targetPath}`));
138
229
  }
139
230
  catch (error) {
140
- console.log(chalk_1.default.red(`❌ Error processing ${file.path}: ${error}`));
231
+ console.error(chalk_1.default.red(`❌ Error processing ${file.path}: ${error}`));
141
232
  }
142
233
  }
143
234
  // Add category to config
@@ -145,49 +236,75 @@ async function initCommand(options = {}) {
145
236
  Object.assign(config, updatedConfig);
146
237
  installedRules.push(manifest.id);
147
238
  }
148
- // For Claude Code, also install skills
149
- if (selectedAgent === "claude-code") {
150
- console.log(chalk_1.default.blue("\n🎯 Installing Claude Code skills..."));
151
- const skills = await (0, github_1.fetchSkills)(selectedAgent);
239
+ // Install skills: skip if --no-skills, else use CLI flag or interactive prompt
240
+ if (options.noSkills) {
241
+ console.log(chalk_1.default.yellow("\n⏭️ Skipping skills (--no-skills)"));
242
+ }
243
+ else if (options.skills && options.skills.length > 0) {
244
+ // CLI flag provided: install named skills
245
+ console.log(chalk_1.default.blue("\n🎯 Checking for available skills..."));
246
+ const skills = await (0, api_client_1.fetchSkills)(selectedAgent);
247
+ // Filter to only selected skills
248
+ const selectedSkills = skills.filter((skill) => options.skills?.includes(skill.name));
249
+ // Check for non-existent skills and warn
250
+ const availableSkillNames = skills.map((s) => s.name);
251
+ const requestedSkillNames = options.skills;
252
+ const notFoundSkills = requestedSkillNames.filter((name) => !availableSkillNames.includes(name));
253
+ if (notFoundSkills.length > 0) {
254
+ console.error(chalk_1.default.red(`\n❌ Error: The following skills were not found and will be skipped: ${notFoundSkills.join(", ")}`));
255
+ }
256
+ if (selectedSkills.length > 0) {
257
+ await installSkills(selectedSkills, selectedAgent, overwriteStrategy, config);
258
+ }
259
+ else {
260
+ console.log(chalk_1.default.yellow("No matching skills found"));
261
+ }
262
+ }
263
+ else if (process.stdin.isTTY) {
264
+ // Interactive mode: fetch and prompt (only when TTY is available)
265
+ const skills = await (0, api_client_1.fetchSkills)(selectedAgent);
152
266
  if (skills.length > 0) {
153
- let installedSkillsCount = 0;
154
- for (const skill of skills) {
155
- try {
156
- // Apply skill naming convention
157
- const targetPath = (0, files_1.applySkillNamingConvention)(selectedAgent, skill.name);
158
- // Check for conflicts
159
- const conflict = await (0, files_1.detectConflict)((0, node_path_1.join)(process.cwd(), targetPath));
160
- if (conflict.hasConflict) {
161
- // Handle conflict based on strategy
162
- if (overwriteStrategy === "skip") {
163
- console.log(chalk_1.default.yellow(`⏭️ Skipped (file exists): ${targetPath}`));
164
- continue;
165
- }
166
- if (overwriteStrategy === "force") {
167
- console.log(chalk_1.default.yellow(`⚠️ Overwriting: ${targetPath}`));
168
- }
169
- else {
170
- // prompt strategy
171
- const shouldOverwrite = await (0, prompts_1.promptConflictResolution)(targetPath);
172
- if (!shouldOverwrite) {
173
- console.log(chalk_1.default.yellow(`⏭️ Skipped: ${targetPath}`));
174
- continue;
175
- }
176
- }
177
- }
178
- // Write skill file
179
- await (0, files_1.writeRuleFile)(skill.content, (0, node_path_1.join)(process.cwd(), targetPath));
180
- console.log(chalk_1.default.green(`✓ Installed skill: ${skill.name}`));
181
- installedSkillsCount++;
182
- }
183
- catch (error) {
184
- console.log(chalk_1.default.red(`❌ Error installing skill ${skill.name}: ${error}`));
185
- }
267
+ console.log(chalk_1.default.blue("\n🎯 Skills available for this agent:"));
268
+ const selectedSkillNames = await (0, prompts_1.promptSkillSelection)(skills);
269
+ if (selectedSkillNames.length > 0) {
270
+ const selectedSkills = skills.filter((s) => selectedSkillNames.includes(s.name));
271
+ await installSkills(selectedSkills, selectedAgent, overwriteStrategy, config);
272
+ }
273
+ else {
274
+ console.log(chalk_1.default.yellow("No skills selected."));
186
275
  }
187
- console.log(chalk_1.default.green(`\n🎉 Successfully installed ${installedSkillsCount} skills`));
276
+ }
277
+ }
278
+ // Install workflows: skip if --no-workflows, else use CLI flag or interactive prompt
279
+ if (options.noWorkflows) {
280
+ console.log(chalk_1.default.yellow("\n⏭️ Skipping workflows (--no-workflows)"));
281
+ }
282
+ else if (options.workflows && options.workflows.length > 0) {
283
+ // CLI flag provided: install named workflows
284
+ console.log(chalk_1.default.blue("\n🎯 Installing workflows..."));
285
+ const allWorkflows = await (0, api_client_1.fetchWorkflows)(selectedAgent);
286
+ // Filter to only selected workflows
287
+ const selectedWorkflows = allWorkflows.filter((w) => options.workflows?.includes(w.name));
288
+ if (selectedWorkflows.length > 0) {
289
+ await installWorkflows(selectedWorkflows, selectedAgent, overwriteStrategy, config);
188
290
  }
189
291
  else {
190
- console.log(chalk_1.default.yellow("No skills found for Claude Code"));
292
+ console.log(chalk_1.default.yellow("No matching workflows found"));
293
+ }
294
+ }
295
+ else if (process.stdin.isTTY) {
296
+ // Interactive mode: fetch and prompt (only when TTY is available)
297
+ const allWorkflows = await (0, api_client_1.fetchWorkflows)(selectedAgent);
298
+ if (allWorkflows.length > 0) {
299
+ console.log(chalk_1.default.blue("\n⚡ Workflows available for this agent:"));
300
+ const selectedWorkflowNames = await (0, prompts_1.promptWorkflowSelection)(allWorkflows);
301
+ if (selectedWorkflowNames.length > 0) {
302
+ const selectedWorkflows = allWorkflows.filter((w) => selectedWorkflowNames.includes(w.name));
303
+ await installWorkflows(selectedWorkflows, selectedAgent, overwriteStrategy, config);
304
+ }
305
+ else {
306
+ console.log(chalk_1.default.yellow("No workflows selected."));
307
+ }
191
308
  }
192
309
  }
193
310
  // Save updated config
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { OverwriteStrategy } from "../lib/types";
2
+ interface PullOptions {
3
+ overwriteStrategy?: OverwriteStrategy;
4
+ }
5
+ /**
6
+ * Pull and re-install all rules, skills, and workflows from .ai-rules.json config
7
+ */
8
+ export declare function pullCommand(_options?: PullOptions): Promise<void>;
9
+ export {};
10
+ //# sourceMappingURL=pull.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/pull.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAW,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE/D,UAAU,WAAW;IACpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoF3E"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.pullCommand = pullCommand;
7
+ const node_path_1 = require("node:path");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const api_client_1 = require("../lib/api-client");
10
+ const config_1 = require("../lib/config");
11
+ const files_1 = require("../lib/files");
12
+ /**
13
+ * Pull and re-install all rules, skills, and workflows from .ai-rules.json config
14
+ */
15
+ async function pullCommand(_options = {}) {
16
+ console.log(chalk_1.default.blue("🔄 Pulling latest AI rules...\n"));
17
+ const config = await (0, config_1.loadConfig)(process.cwd());
18
+ const { agent, categories, skills, workflows } = config;
19
+ const hasCategories = categories && categories.length > 0;
20
+ const hasSkills = skills && skills.length > 0;
21
+ const hasWorkflows = workflows && workflows.length > 0;
22
+ if (!hasCategories && !hasSkills && !hasWorkflows) {
23
+ console.log(chalk_1.default.yellow("⚠️ Nothing configured to pull."));
24
+ return;
25
+ }
26
+ let totalInstalled = 0;
27
+ // Re-install rules from categories
28
+ if (hasCategories) {
29
+ console.log(chalk_1.default.blue(`📦 Pulling ${categories.length} rule categories...`));
30
+ const manifests = await (0, api_client_1.fetchManifests)(agent);
31
+ for (const categoryId of categories) {
32
+ const manifest = manifests.find((m) => m.id === categoryId);
33
+ if (!manifest) {
34
+ console.error(chalk_1.default.red(` ❌ Category not found: ${categoryId}`));
35
+ continue;
36
+ }
37
+ for (const file of manifest.files) {
38
+ const content = await (0, api_client_1.fetchRuleFile)(agent, manifest.category, file.path);
39
+ if (!content) {
40
+ console.error(chalk_1.default.red(` ❌ Failed to fetch: ${file.path}`));
41
+ continue;
42
+ }
43
+ const filename = file.path.split("/").pop() || file.path;
44
+ const targetPath = (0, files_1.applyNamingConvention)(agent, filename);
45
+ await (0, files_1.writeRuleFile)(content, (0, node_path_1.join)(process.cwd(), targetPath));
46
+ console.log(chalk_1.default.green(` ✓ ${targetPath}`));
47
+ totalInstalled++;
48
+ }
49
+ }
50
+ }
51
+ // Re-install skills
52
+ if (hasSkills) {
53
+ console.log(chalk_1.default.blue(`\n🎯 Pulling ${skills.length} skills...`));
54
+ const allSkills = await (0, api_client_1.fetchSkills)(agent);
55
+ for (const skillName of skills) {
56
+ const skill = allSkills.find((s) => s.name === skillName);
57
+ if (!skill) {
58
+ console.error(chalk_1.default.red(` ❌ Skill not found: ${skillName}`));
59
+ continue;
60
+ }
61
+ const targetPath = (0, files_1.applySkillNamingConvention)(agent, skill.name);
62
+ await (0, files_1.writeRuleFile)(skill.content, (0, node_path_1.join)(process.cwd(), targetPath));
63
+ console.log(chalk_1.default.green(` ✓ ${targetPath}`));
64
+ totalInstalled++;
65
+ }
66
+ }
67
+ // Re-install workflows
68
+ if (hasWorkflows) {
69
+ console.log(chalk_1.default.blue(`\n📋 Pulling ${workflows.length} workflows...`));
70
+ const allWorkflows = await (0, api_client_1.fetchWorkflows)(agent);
71
+ for (const workflowName of workflows) {
72
+ const workflow = allWorkflows.find((w) => w.name === workflowName);
73
+ if (!workflow) {
74
+ console.error(chalk_1.default.red(` ❌ Workflow not found: ${workflowName}`));
75
+ continue;
76
+ }
77
+ const targetPath = `.agent/workflows/${workflow.name}.md`;
78
+ await (0, files_1.writeRuleFile)(workflow.content, (0, node_path_1.join)(process.cwd(), targetPath));
79
+ console.log(chalk_1.default.green(` ✓ ${targetPath}`));
80
+ totalInstalled++;
81
+ }
82
+ }
83
+ console.log(chalk_1.default.green(`\n🎉 Successfully pulled ${totalInstalled} items`));
84
+ }
85
+ //# sourceMappingURL=pull.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../../src/cli/commands/pull.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
8
  const commander_1 = require("commander");
9
9
  const init_1 = require("./commands/init");
10
+ const pull_1 = require("./commands/pull");
10
11
  const program = new commander_1.Command();
11
12
  program
12
13
  .name("ai-rules")
@@ -17,13 +18,35 @@ program
17
18
  .description("Initialize AI rules for the current project")
18
19
  .option("--agent <name>", "Specify the AI agent (cursor, windsurf, etc.)")
19
20
  .option("--categories <list>", "Comma-separated list of category IDs to install")
21
+ .option("--no-categories", "Skip category installation entirely")
22
+ .option("--workflows <list>", "Comma-separated list of workflow IDs to install")
23
+ .option("--no-workflows", "Skip workflow installation entirely")
24
+ .option("--skills <list>", "Comma-separated list of skill IDs to install")
25
+ .option("--no-skills", "Skip skill installation entirely")
20
26
  .option("--overwrite-strategy <strategy>", "Conflict resolution strategy: prompt (ask), force (overwrite), or skip (keep existing)", "prompt")
21
27
  .action(async (options) => {
22
28
  try {
23
29
  // Parse categories from comma-separated string
24
30
  const parsedOptions = {
25
31
  agent: options.agent,
26
- categories: options.categories ? options.categories.split(",").map((c) => c.trim()) : undefined,
32
+ categories: options.categories
33
+ ? typeof options.categories === "string"
34
+ ? options.categories.split(",").map((c) => c.trim())
35
+ : undefined
36
+ : undefined,
37
+ workflows: options.workflows
38
+ ? typeof options.workflows === "string"
39
+ ? options.workflows.split(",").map((w) => w.trim())
40
+ : undefined
41
+ : undefined,
42
+ skills: options.skills
43
+ ? typeof options.skills === "string"
44
+ ? options.skills.split(",").map((s) => s.trim())
45
+ : undefined
46
+ : undefined,
47
+ noCategories: options.categories === false,
48
+ noSkills: options.skills === false,
49
+ noWorkflows: options.workflows === false,
27
50
  overwriteStrategy: options.overwriteStrategy,
28
51
  };
29
52
  // Validate overwrite strategy
@@ -39,6 +62,19 @@ program
39
62
  process.exit(1);
40
63
  }
41
64
  });
65
+ program
66
+ .command("pull")
67
+ .description("Pull latest versions of all configured rules, skills, and workflows")
68
+ .option("--overwrite-strategy <strategy>", "Conflict resolution strategy: force (overwrite), skip (keep existing), or prompt (ask)", "force")
69
+ .action(async (options) => {
70
+ try {
71
+ await (0, pull_1.pullCommand)(options);
72
+ }
73
+ catch (error) {
74
+ console.error(chalk_1.default.red(`❌ Error: ${error}`));
75
+ process.exit(1);
76
+ }
77
+ });
42
78
  program
43
79
  .command("help")
44
80
  .description("Show help information")
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}