moicle 1.0.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.
Files changed (78) hide show
  1. package/README.md +201 -0
  2. package/assets/agents/developers/flutter-mobile-dev.md +69 -0
  3. package/assets/agents/developers/go-backend-dev.md +57 -0
  4. package/assets/agents/developers/laravel-backend-dev.md +123 -0
  5. package/assets/agents/developers/react-frontend-dev.md +69 -0
  6. package/assets/agents/developers/remix-fullstack-dev.md +69 -0
  7. package/assets/agents/utilities/api-designer.md +76 -0
  8. package/assets/agents/utilities/clean-architect.md +83 -0
  9. package/assets/agents/utilities/code-reviewer.md +76 -0
  10. package/assets/agents/utilities/db-designer.md +68 -0
  11. package/assets/agents/utilities/devops.md +71 -0
  12. package/assets/agents/utilities/docs-writer.md +75 -0
  13. package/assets/agents/utilities/perf-optimizer.md +87 -0
  14. package/assets/agents/utilities/refactor.md +173 -0
  15. package/assets/agents/utilities/security-audit.md +203 -0
  16. package/assets/agents/utilities/test-writer.md +139 -0
  17. package/assets/architecture/clean-architecture.md +143 -0
  18. package/assets/architecture/flutter-mobile.md +304 -0
  19. package/assets/architecture/go-backend.md +217 -0
  20. package/assets/architecture/laravel-backend.md +303 -0
  21. package/assets/architecture/monorepo.md +162 -0
  22. package/assets/architecture/react-frontend.md +268 -0
  23. package/assets/architecture/remix-fullstack.md +272 -0
  24. package/assets/commands/bootstrap.md +98 -0
  25. package/assets/commands/brainstorm.md +440 -0
  26. package/assets/skills/feature-workflow/SKILL.md +298 -0
  27. package/assets/skills/hotfix-workflow/SKILL.md +368 -0
  28. package/assets/templates/flutter/CLAUDE.md +454 -0
  29. package/assets/templates/go-gin/CLAUDE.md +244 -0
  30. package/assets/templates/monorepo/CLAUDE.md +362 -0
  31. package/assets/templates/react-vite/CLAUDE.md +304 -0
  32. package/assets/templates/remix/CLAUDE.md +304 -0
  33. package/bin/cli.js +76 -0
  34. package/dist/commands/disable.d.ts +3 -0
  35. package/dist/commands/disable.d.ts.map +1 -0
  36. package/dist/commands/disable.js +188 -0
  37. package/dist/commands/disable.js.map +1 -0
  38. package/dist/commands/enable.d.ts +3 -0
  39. package/dist/commands/enable.d.ts.map +1 -0
  40. package/dist/commands/enable.js +191 -0
  41. package/dist/commands/enable.js.map +1 -0
  42. package/dist/commands/install.d.ts +3 -0
  43. package/dist/commands/install.d.ts.map +1 -0
  44. package/dist/commands/install.js +290 -0
  45. package/dist/commands/install.js.map +1 -0
  46. package/dist/commands/list.d.ts +3 -0
  47. package/dist/commands/list.d.ts.map +1 -0
  48. package/dist/commands/list.js +75 -0
  49. package/dist/commands/list.js.map +1 -0
  50. package/dist/commands/postinstall.d.ts +2 -0
  51. package/dist/commands/postinstall.d.ts.map +1 -0
  52. package/dist/commands/postinstall.js +25 -0
  53. package/dist/commands/postinstall.js.map +1 -0
  54. package/dist/commands/status.d.ts +3 -0
  55. package/dist/commands/status.d.ts.map +1 -0
  56. package/dist/commands/status.js +118 -0
  57. package/dist/commands/status.js.map +1 -0
  58. package/dist/commands/uninstall.d.ts +3 -0
  59. package/dist/commands/uninstall.d.ts.map +1 -0
  60. package/dist/commands/uninstall.js +178 -0
  61. package/dist/commands/uninstall.js.map +1 -0
  62. package/dist/index.d.ts +11 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +11 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/types.d.ts +47 -0
  67. package/dist/types.d.ts.map +1 -0
  68. package/dist/types.js +2 -0
  69. package/dist/types.js.map +1 -0
  70. package/dist/utils/config.d.ts +13 -0
  71. package/dist/utils/config.d.ts.map +1 -0
  72. package/dist/utils/config.js +95 -0
  73. package/dist/utils/config.js.map +1 -0
  74. package/dist/utils/symlink.d.ts +24 -0
  75. package/dist/utils/symlink.d.ts.map +1 -0
  76. package/dist/utils/symlink.js +313 -0
  77. package/dist/utils/symlink.js.map +1 -0
  78. package/package.json +55 -0
@@ -0,0 +1,191 @@
1
+ import chalk from 'chalk';
2
+ import inquirer from 'inquirer';
3
+ import fs from 'fs';
4
+ import path from 'path';
5
+ import { enableItem, getDisabledItems } from '../utils/config.js';
6
+ import { getAgentsDir, getCommandsDir, getSkillsDir, listItems, } from '../utils/symlink.js';
7
+ const printHeader = () => {
8
+ console.log('');
9
+ console.log(chalk.cyan('════════════════════════════════════════'));
10
+ console.log(chalk.cyan(' MoiCle - Enable'));
11
+ console.log(chalk.cyan('════════════════════════════════════════'));
12
+ console.log('');
13
+ };
14
+ const renameToEnabled = (filePath) => {
15
+ if (filePath.endsWith('.disabled')) {
16
+ const newPath = filePath.replace('.disabled', '');
17
+ try {
18
+ fs.renameSync(filePath, newPath);
19
+ return true;
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
25
+ return true;
26
+ };
27
+ const enableItemByName = (type, name, scope = 'global') => {
28
+ let dir;
29
+ switch (type) {
30
+ case 'agents':
31
+ dir = getAgentsDir(scope);
32
+ break;
33
+ case 'commands':
34
+ dir = getCommandsDir(scope);
35
+ break;
36
+ case 'skills':
37
+ dir = getSkillsDir(scope);
38
+ break;
39
+ default:
40
+ return false;
41
+ }
42
+ const cleanName = name.replace('@', '').replace('.md', '').replace('.disabled', '');
43
+ const disabledPath = path.join(dir, `${cleanName}.md.disabled`);
44
+ const skillDisabledPath = path.join(dir, cleanName + '.disabled');
45
+ const skillEnabledPath = path.join(dir, cleanName);
46
+ if (fs.existsSync(disabledPath)) {
47
+ renameToEnabled(disabledPath);
48
+ }
49
+ else if (fs.existsSync(skillDisabledPath)) {
50
+ try {
51
+ fs.renameSync(skillDisabledPath, skillEnabledPath);
52
+ }
53
+ catch {
54
+ // ignore
55
+ }
56
+ }
57
+ enableItem(type, cleanName);
58
+ return true;
59
+ };
60
+ const getDisabledItemsByType = (type, scope) => {
61
+ const items = [];
62
+ const disabledConfig = getDisabledItems(type);
63
+ let dir;
64
+ let prefix = '';
65
+ switch (type) {
66
+ case 'agents':
67
+ dir = getAgentsDir(scope);
68
+ prefix = '@';
69
+ break;
70
+ case 'commands':
71
+ dir = getCommandsDir(scope);
72
+ prefix = '/';
73
+ break;
74
+ case 'skills':
75
+ dir = getSkillsDir(scope);
76
+ break;
77
+ default:
78
+ return items;
79
+ }
80
+ const files = listItems(dir);
81
+ for (const file of files) {
82
+ const cleanName = file.name.replace('.md', '').replace('.disabled', '');
83
+ const isFileDisabled = file.name.endsWith('.disabled');
84
+ const isConfigDisabled = disabledConfig.includes(cleanName);
85
+ if (isFileDisabled || isConfigDisabled) {
86
+ items.push({
87
+ type,
88
+ name: cleanName,
89
+ display: `${prefix}${cleanName}`,
90
+ disabled: true,
91
+ });
92
+ }
93
+ }
94
+ return items;
95
+ };
96
+ const getAllDisabledItems = (scope) => {
97
+ const itemsByType = new Map();
98
+ itemsByType.set('agents', getDisabledItemsByType('agents', scope));
99
+ if (scope === 'global') {
100
+ itemsByType.set('commands', getDisabledItemsByType('commands', scope));
101
+ }
102
+ itemsByType.set('skills', getDisabledItemsByType('skills', scope));
103
+ return itemsByType;
104
+ };
105
+ const formatTypeLabel = (type) => {
106
+ return type.charAt(0).toUpperCase() + type.slice(1);
107
+ };
108
+ export const enableCommand = async (itemName, options) => {
109
+ printHeader();
110
+ const scope = options.project ? 'project' : 'global';
111
+ if (options.all) {
112
+ const itemsByType = getAllDisabledItems(scope);
113
+ let totalEnabled = 0;
114
+ for (const [type, items] of itemsByType) {
115
+ for (const item of items) {
116
+ enableItemByName(type, item.name, scope);
117
+ console.log(chalk.green(` ✓ Enabled ${item.display}`));
118
+ totalEnabled++;
119
+ }
120
+ }
121
+ if (totalEnabled === 0) {
122
+ console.log(chalk.yellow(' No disabled items found.'));
123
+ }
124
+ else {
125
+ console.log('');
126
+ console.log(chalk.green(`✓ Enabled ${totalEnabled} items`));
127
+ }
128
+ return;
129
+ }
130
+ if (itemName) {
131
+ const cleanName = itemName.replace('@', '').replace('/', '');
132
+ let type = 'agents';
133
+ if (itemName.startsWith('/')) {
134
+ type = 'commands';
135
+ }
136
+ else if (!itemName.startsWith('@')) {
137
+ const skillsDir = getSkillsDir(scope);
138
+ if (fs.existsSync(path.join(skillsDir, cleanName)) ||
139
+ fs.existsSync(path.join(skillsDir, cleanName + '.disabled'))) {
140
+ type = 'skills';
141
+ }
142
+ }
143
+ enableItemByName(type, cleanName, scope);
144
+ console.log(chalk.green(` ✓ Enabled ${itemName}`));
145
+ return;
146
+ }
147
+ const itemsByType = getAllDisabledItems(scope);
148
+ const allItems = [];
149
+ for (const items of itemsByType.values()) {
150
+ allItems.push(...items);
151
+ }
152
+ if (allItems.length === 0) {
153
+ console.log(chalk.yellow(' No disabled items to enable.'));
154
+ return;
155
+ }
156
+ const choices = [];
157
+ for (const [type, items] of itemsByType) {
158
+ if (items.length > 0) {
159
+ choices.push(new inquirer.Separator(chalk.yellow(`── ${formatTypeLabel(type)} ──`)));
160
+ for (const item of items) {
161
+ choices.push({
162
+ name: ` ${item.display}`,
163
+ value: item,
164
+ });
165
+ }
166
+ }
167
+ }
168
+ console.log(chalk.gray(' Use SPACE to select, ENTER to confirm'));
169
+ console.log('');
170
+ const { selected } = await inquirer.prompt([
171
+ {
172
+ type: 'checkbox',
173
+ name: 'selected',
174
+ message: 'Select items to enable:',
175
+ choices,
176
+ pageSize: 20,
177
+ },
178
+ ]);
179
+ if (selected.length === 0) {
180
+ console.log(chalk.yellow(' No items selected.'));
181
+ return;
182
+ }
183
+ console.log('');
184
+ for (const item of selected) {
185
+ enableItemByName(item.type, item.name, scope);
186
+ console.log(chalk.green(` ✓ Enabled ${item.display}`));
187
+ }
188
+ console.log('');
189
+ console.log(chalk.green(`✓ Enabled ${selected.length} items`));
190
+ };
191
+ //# sourceMappingURL=enable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enable.js","sourceRoot":"","sources":["../../src/commands/enable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CommandOptions } from '../types.js';
2
+ export declare const installCommand: (options: CommandOptions) => Promise<void>;
3
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAmC,MAAM,aAAa,CAAC;AA6QnF,eAAO,MAAM,cAAc,GAAU,SAAS,cAAc,KAAG,OAAO,CAAC,IAAI,CAqF1E,CAAC"}
@@ -0,0 +1,290 @@
1
+ import chalk from 'chalk';
2
+ import inquirer from 'inquirer';
3
+ import path from 'path';
4
+ import fs from 'fs';
5
+ import { ASSETS_DIR, EDITOR_CONFIGS, ensureDir, createSymlink, copyFile, copyDir, getAgentsDir, getCommandsDir, getSkillsDir, getArchitectureDir, getClaudeDir, getEditorDir, getEditorConfig, getFiles, getDirs, mergeAgentsToFile, } from '../utils/symlink.js';
6
+ import { addTarget } from '../utils/config.js';
7
+ const printHeader = () => {
8
+ console.log('');
9
+ console.log(chalk.cyan('════════════════════════════════════════'));
10
+ console.log(chalk.cyan(' MoiCle Installer'));
11
+ console.log(chalk.cyan('════════════════════════════════════════'));
12
+ console.log('');
13
+ };
14
+ const printSummary = (results) => {
15
+ const created = results.filter((r) => r.status === 'created').length;
16
+ const updated = results.filter((r) => r.status === 'updated').length;
17
+ const exists = results.filter((r) => r.status === 'exists').length;
18
+ const skipped = results.filter((r) => r.status === 'skipped').length;
19
+ const errors = results.filter((r) => r.status === 'error').length;
20
+ if (created > 0)
21
+ console.log(chalk.green(` Created: ${created}`));
22
+ if (updated > 0)
23
+ console.log(chalk.yellow(` Updated: ${updated}`));
24
+ if (exists > 0)
25
+ console.log(chalk.gray(` Already exists: ${exists}`));
26
+ if (skipped > 0)
27
+ console.log(chalk.gray(` Skipped: ${skipped}`));
28
+ if (errors > 0)
29
+ console.log(chalk.red(` Errors: ${errors}`));
30
+ };
31
+ const installAgents = async (targetDir, useSymlink = true) => {
32
+ const results = [];
33
+ ensureDir(targetDir);
34
+ const developersDir = path.join(ASSETS_DIR, 'agents', 'developers');
35
+ if (fs.existsSync(developersDir)) {
36
+ const files = getFiles(developersDir);
37
+ for (const file of files) {
38
+ const target = path.join(targetDir, path.basename(file));
39
+ const result = useSymlink ? createSymlink(file, target) : copyFile(file, target);
40
+ results.push(result);
41
+ }
42
+ }
43
+ const utilitiesDir = path.join(ASSETS_DIR, 'agents', 'utilities');
44
+ if (fs.existsSync(utilitiesDir)) {
45
+ const files = getFiles(utilitiesDir);
46
+ for (const file of files) {
47
+ const target = path.join(targetDir, path.basename(file));
48
+ const result = useSymlink ? createSymlink(file, target) : copyFile(file, target);
49
+ results.push(result);
50
+ }
51
+ }
52
+ console.log(chalk.green(` ✓ Agents installed to ${chalk.cyan(targetDir)}`));
53
+ printSummary(results);
54
+ return results;
55
+ };
56
+ const installCommands = async (targetDir, useSymlink = true) => {
57
+ const results = [];
58
+ ensureDir(targetDir);
59
+ const commandsDir = path.join(ASSETS_DIR, 'commands');
60
+ if (fs.existsSync(commandsDir)) {
61
+ const files = getFiles(commandsDir);
62
+ for (const file of files) {
63
+ const target = path.join(targetDir, path.basename(file));
64
+ const result = useSymlink ? createSymlink(file, target) : copyFile(file, target);
65
+ results.push(result);
66
+ }
67
+ }
68
+ console.log(chalk.green(` ✓ Commands installed to ${chalk.cyan(targetDir)}`));
69
+ printSummary(results);
70
+ return results;
71
+ };
72
+ const installSkills = async (targetDir, useSymlink = true) => {
73
+ const results = [];
74
+ ensureDir(targetDir);
75
+ const skillsDir = path.join(ASSETS_DIR, 'skills');
76
+ if (fs.existsSync(skillsDir)) {
77
+ const dirs = getDirs(skillsDir);
78
+ for (const dir of dirs) {
79
+ const target = path.join(targetDir, path.basename(dir));
80
+ if (useSymlink) {
81
+ const result = createSymlink(dir, target);
82
+ results.push(result);
83
+ }
84
+ else {
85
+ const result = copyDir(dir, target);
86
+ results.push(result);
87
+ }
88
+ }
89
+ }
90
+ console.log(chalk.green(` ✓ Skills installed to ${chalk.cyan(targetDir)}`));
91
+ printSummary(results);
92
+ return results;
93
+ };
94
+ const installArchitecture = async (targetDir, useSymlink = true) => {
95
+ const results = [];
96
+ ensureDir(targetDir);
97
+ const archDir = path.join(ASSETS_DIR, 'architecture');
98
+ if (fs.existsSync(archDir)) {
99
+ const files = getFiles(archDir);
100
+ for (const file of files) {
101
+ const target = path.join(targetDir, path.basename(file));
102
+ const result = useSymlink ? createSymlink(file, target) : copyFile(file, target);
103
+ results.push(result);
104
+ }
105
+ }
106
+ console.log(chalk.green(` ✓ Architecture installed to ${chalk.cyan(targetDir)}`));
107
+ printSummary(results);
108
+ return results;
109
+ };
110
+ const installScope = async (scope, useSymlink) => {
111
+ const isGlobal = scope === 'global';
112
+ const label = isGlobal ? 'Global' : 'Project';
113
+ const targetPath = isGlobal ? '~/.claude/' : `${process.cwd()}/.claude/`;
114
+ console.log('');
115
+ console.log(chalk.cyan(`>>> ${label} Installation`));
116
+ console.log(chalk.gray(` Target: ${targetPath}`));
117
+ console.log('');
118
+ const claudeDir = getClaudeDir(scope);
119
+ ensureDir(claudeDir);
120
+ await installAgents(getAgentsDir(scope), useSymlink);
121
+ if (isGlobal) {
122
+ await installCommands(getCommandsDir(scope), useSymlink);
123
+ }
124
+ await installSkills(getSkillsDir(scope), useSymlink);
125
+ await installArchitecture(getArchitectureDir(scope), useSymlink);
126
+ if (!isGlobal) {
127
+ console.log(chalk.gray(' Note: Commands are installed globally only'));
128
+ }
129
+ console.log('');
130
+ console.log(chalk.green(`✓ ${label} installation complete!`));
131
+ };
132
+ // Temporarily hidden for open-source release - only Claude Code support
133
+ // const showTargetMenu = async (): Promise<EditorTarget[]> => {
134
+ // const { targets } = await inquirer.prompt([
135
+ // {
136
+ // type: 'checkbox',
137
+ // name: 'targets',
138
+ // message: 'Select target editor(s):',
139
+ // choices: [
140
+ // { name: 'Claude Code (~/.claude/)', value: 'claude', checked: true },
141
+ // { name: 'Cursor (~/.cursor/)', value: 'cursor' },
142
+ // { name: 'Windsurf (~/.codeium/windsurf/)', value: 'windsurf' },
143
+ // { name: 'Antigravity (~/.gemini/)', value: 'antigravity' },
144
+ // ],
145
+ // validate: (answer: string[]) => {
146
+ // if (answer.length < 1) {
147
+ // return 'Please select at least one editor.';
148
+ // }
149
+ // return true;
150
+ // },
151
+ // },
152
+ // ]);
153
+ //
154
+ // return targets;
155
+ // };
156
+ const showInteractiveMenu = async () => {
157
+ const { installType } = await inquirer.prompt([
158
+ {
159
+ type: 'list',
160
+ name: 'installType',
161
+ message: 'Where would you like to install?',
162
+ choices: [
163
+ { name: 'Global (~/.claude/) - Available for all projects', value: 'global' },
164
+ { name: 'Project (./.claude/) - This project only', value: 'project' },
165
+ { name: 'Both - Global and current project', value: 'all' },
166
+ ],
167
+ },
168
+ ]);
169
+ return installType;
170
+ };
171
+ const installArchitectureForEditor = (targetDir) => {
172
+ const results = [];
173
+ const archDir = path.join(ASSETS_DIR, 'architecture');
174
+ const targetArchDir = path.join(targetDir, 'architecture');
175
+ ensureDir(targetArchDir);
176
+ if (fs.existsSync(archDir)) {
177
+ const files = getFiles(archDir);
178
+ for (const file of files) {
179
+ const target = path.join(targetArchDir, path.basename(file));
180
+ const result = copyFile(file, target);
181
+ results.push(result);
182
+ }
183
+ }
184
+ return results;
185
+ };
186
+ const installForOtherEditor = async (target, scope) => {
187
+ const config = getEditorConfig(target);
188
+ const results = [];
189
+ console.log('');
190
+ console.log(chalk.cyan(`>>> ${config.name} Installation`));
191
+ console.log(chalk.gray(` Target: ${getEditorDir(target, scope)}`));
192
+ console.log('');
193
+ const targetDir = getEditorDir(target, scope);
194
+ ensureDir(targetDir);
195
+ const archResults = installArchitectureForEditor(targetDir);
196
+ results.push(...archResults);
197
+ console.log(chalk.green(` ✓ Architecture installed to ${chalk.cyan(targetDir + '/architecture')}`));
198
+ if (config.rulesFile) {
199
+ const rulesFilePath = path.join(targetDir, config.rulesFile);
200
+ const result = mergeAgentsToFile(rulesFilePath, target);
201
+ results.push(result);
202
+ console.log(chalk.green(` ✓ Agents merged to ${chalk.cyan(config.rulesFile)}`));
203
+ }
204
+ printSummary(results);
205
+ console.log('');
206
+ console.log(chalk.green(`✓ ${config.name} installation complete!`));
207
+ return results;
208
+ };
209
+ export const installCommand = async (options) => {
210
+ printHeader();
211
+ if (!fs.existsSync(ASSETS_DIR)) {
212
+ console.log(chalk.red('Error: Assets directory not found.'));
213
+ console.log(chalk.gray(`Expected: ${ASSETS_DIR}`));
214
+ process.exit(1);
215
+ }
216
+ let targets = [];
217
+ const useSymlink = options.symlink !== false;
218
+ if (options.target) {
219
+ targets = [options.target];
220
+ }
221
+ else {
222
+ // Temporarily hardcoded to Claude Code only for open-source release
223
+ targets = ['claude'];
224
+ // targets = await showTargetMenu();
225
+ }
226
+ for (const target of targets) {
227
+ addTarget(target);
228
+ if (target === 'claude') {
229
+ let installType;
230
+ if (options.global) {
231
+ installType = 'global';
232
+ }
233
+ else if (options.project) {
234
+ installType = 'project';
235
+ }
236
+ else if (options.all) {
237
+ installType = 'all';
238
+ }
239
+ else {
240
+ installType = await showInteractiveMenu();
241
+ }
242
+ switch (installType) {
243
+ case 'global':
244
+ await installScope('global', useSymlink);
245
+ break;
246
+ case 'project':
247
+ await installScope('project', false);
248
+ break;
249
+ case 'all':
250
+ await installScope('global', useSymlink);
251
+ await installScope('project', false);
252
+ break;
253
+ }
254
+ }
255
+ else {
256
+ await installForOtherEditor(target, 'global');
257
+ }
258
+ }
259
+ console.log('');
260
+ console.log(chalk.cyan('════════════════════════════════════════'));
261
+ console.log(chalk.cyan(' Usage'));
262
+ console.log(chalk.cyan('════════════════════════════════════════'));
263
+ console.log('');
264
+ if (targets.includes('claude')) {
265
+ console.log(chalk.bold(' Claude Code:'));
266
+ console.log(' Agents:');
267
+ console.log(chalk.gray(' @clean-architect Clean Architecture expert'));
268
+ console.log(chalk.gray(' @code-reviewer Code review expert'));
269
+ console.log(chalk.gray(' @test-writer Test writing expert'));
270
+ console.log('');
271
+ console.log(' Commands:');
272
+ console.log(chalk.gray(' /bootstrap Create new project'));
273
+ console.log(chalk.gray(' /brainstorm Brainstorm ideas'));
274
+ console.log('');
275
+ console.log(' Skills (auto-triggered):');
276
+ console.log(chalk.gray(' feature-workflow Feature development'));
277
+ console.log(chalk.gray(' hotfix-workflow Bug fix with rollback'));
278
+ console.log('');
279
+ }
280
+ const otherTargets = targets.filter((t) => t !== 'claude');
281
+ if (otherTargets.length > 0) {
282
+ console.log(chalk.bold(' Other Editors:'));
283
+ for (const target of otherTargets) {
284
+ const config = EDITOR_CONFIGS[target];
285
+ console.log(chalk.gray(` ${config.name}: Agents merged into ${config.rulesFile}`));
286
+ }
287
+ console.log('');
288
+ }
289
+ };
290
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CommandOptions } from '../types.js';
2
+ export declare const listCommand: (options: CommandOptions) => Promise<void>;
3
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AA2EnE,eAAO,MAAM,WAAW,GAAU,SAAS,cAAc,KAAG,OAAO,CAAC,IAAI,CAmBvE,CAAC"}
@@ -0,0 +1,75 @@
1
+ import chalk from 'chalk';
2
+ import fs from 'fs';
3
+ import { isDisabled } from '../utils/config.js';
4
+ import { listItems, getAgentsDir, getCommandsDir, getSkillsDir, getClaudeDir, } from '../utils/symlink.js';
5
+ const printHeader = () => {
6
+ console.log('');
7
+ console.log(chalk.cyan('════════════════════════════════════════'));
8
+ console.log(chalk.cyan(' MoiCle - Installed Items'));
9
+ console.log(chalk.cyan('════════════════════════════════════════'));
10
+ console.log('');
11
+ };
12
+ const printItems = (items, label, type) => {
13
+ if (items.length === 0) {
14
+ console.log(chalk.gray(` No ${label} installed`));
15
+ return;
16
+ }
17
+ for (const item of items) {
18
+ const icon = item.isSymlink ? chalk.blue('→') : chalk.green('●');
19
+ const cleanName = item.name.replace('.md', '').replace('.disabled', '');
20
+ const isFileDisabled = item.name.endsWith('.disabled');
21
+ const isConfigDisabled = isDisabled(type, cleanName);
22
+ const itemDisabled = isFileDisabled || isConfigDisabled;
23
+ const statusIcon = itemDisabled ? chalk.red('✗') : chalk.green('✓');
24
+ const nameDisplay = itemDisabled ? chalk.gray(cleanName) : chalk.white(cleanName);
25
+ if (item.isSymlink) {
26
+ console.log(` ${statusIcon} ${icon} ${nameDisplay} ${chalk.gray(`(${item.target})`)}`);
27
+ }
28
+ else {
29
+ console.log(` ${statusIcon} ${icon} ${nameDisplay}`);
30
+ }
31
+ }
32
+ };
33
+ const listScope = (scope) => {
34
+ const claudeDir = getClaudeDir(scope);
35
+ const label = scope === 'global' ? 'Global (~/.claude/)' : `Project (${process.cwd()}/.claude/)`;
36
+ console.log(chalk.cyan(`>>> ${label}`));
37
+ console.log('');
38
+ if (!fs.existsSync(claudeDir)) {
39
+ console.log(chalk.gray(' Not installed'));
40
+ console.log('');
41
+ return;
42
+ }
43
+ console.log(chalk.yellow(' Agents:'));
44
+ printItems(listItems(getAgentsDir(scope)), 'agents', 'agents');
45
+ console.log('');
46
+ if (scope === 'global') {
47
+ console.log(chalk.yellow(' Commands:'));
48
+ printItems(listItems(getCommandsDir(scope)), 'commands', 'commands');
49
+ console.log('');
50
+ }
51
+ console.log(chalk.yellow(' Skills:'));
52
+ printItems(listItems(getSkillsDir(scope)), 'skills', 'skills');
53
+ console.log('');
54
+ };
55
+ export const listCommand = async (options) => {
56
+ printHeader();
57
+ if (options.global) {
58
+ listScope('global');
59
+ }
60
+ else if (options.project) {
61
+ listScope('project');
62
+ }
63
+ else {
64
+ listScope('global');
65
+ listScope('project');
66
+ }
67
+ console.log(chalk.gray('────────────────────────────────────────'));
68
+ console.log(chalk.gray('Legend:'));
69
+ console.log(chalk.green(' ✓') + chalk.gray(' Enabled'));
70
+ console.log(chalk.red(' ✗') + chalk.gray(' Disabled'));
71
+ console.log(chalk.blue(' →') + chalk.gray(' Symlink'));
72
+ console.log(chalk.green(' ●') + chalk.gray(' Copied file'));
73
+ console.log('');
74
+ };
75
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const postinstallCommand: () => Promise<void>;
2
+ //# sourceMappingURL=postinstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postinstall.d.ts","sourceRoot":"","sources":["../../src/commands/postinstall.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,IAAI,CAsBvD,CAAC"}
@@ -0,0 +1,25 @@
1
+ import chalk from 'chalk';
2
+ export const postinstallCommand = async () => {
3
+ console.log('');
4
+ console.log(chalk.cyan('════════════════════════════════════════'));
5
+ console.log(chalk.cyan(' MoiCle installed!'));
6
+ console.log(chalk.cyan('════════════════════════════════════════'));
7
+ console.log('');
8
+ console.log('Run the following command to set up:');
9
+ console.log('');
10
+ console.log(chalk.green(' moicle install'));
11
+ console.log('');
12
+ console.log('Or with options:');
13
+ console.log(chalk.gray(' moicle install --global # Install to ~/.claude/'));
14
+ console.log(chalk.gray(' moicle install --project # Install to ./.claude/'));
15
+ console.log(chalk.gray(' moicle install --all # Install to both'));
16
+ console.log('');
17
+ console.log('Other commands:');
18
+ console.log(chalk.gray(' moicle list # List installed items'));
19
+ console.log(chalk.gray(' moicle status # Show enabled/disabled status'));
20
+ console.log(chalk.gray(' moicle enable # Enable items'));
21
+ console.log(chalk.gray(' moicle disable # Disable items'));
22
+ console.log(chalk.gray(' moicle uninstall # Remove installations'));
23
+ console.log('');
24
+ };
25
+ //# sourceMappingURL=postinstall.js.map