@fyow/copilot-everything 1.0.0 → 1.0.2

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,206 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Package Manager Setup Script
4
+ *
5
+ * Interactive script to configure preferred package manager.
6
+ * Can be run directly or via the /setup-pm command.
7
+ *
8
+ * Usage:
9
+ * node scripts/setup-package-manager.js [pm-name]
10
+ * node scripts/setup-package-manager.js --detect
11
+ * node scripts/setup-package-manager.js --global pnpm
12
+ * node scripts/setup-package-manager.js --project bun
13
+ */
14
+
15
+ const {
16
+ PACKAGE_MANAGERS,
17
+ getPackageManager,
18
+ setPreferredPackageManager,
19
+ setProjectPackageManager,
20
+ getAvailablePackageManagers,
21
+ detectFromLockFile,
22
+ detectFromPackageJson,
23
+ getSelectionPrompt
24
+ } = require('./lib/package-manager');
25
+ const { log } = require('./lib/utils');
26
+
27
+ function showHelp() {
28
+ console.log(`
29
+ Package Manager Setup for Claude Code
30
+
31
+ Usage:
32
+ node scripts/setup-package-manager.js [options] [package-manager]
33
+
34
+ Options:
35
+ --detect Detect and show current package manager
36
+ --global <pm> Set global preference (saves to ~/.claude/package-manager.json)
37
+ --project <pm> Set project preference (saves to .claude/package-manager.json)
38
+ --list List available package managers
39
+ --help Show this help message
40
+
41
+ Package Managers:
42
+ npm Node Package Manager (default with Node.js)
43
+ pnpm Fast, disk space efficient package manager
44
+ yarn Classic Yarn package manager
45
+ bun All-in-one JavaScript runtime & toolkit
46
+
47
+ Examples:
48
+ # Detect current package manager
49
+ node scripts/setup-package-manager.js --detect
50
+
51
+ # Set pnpm as global preference
52
+ node scripts/setup-package-manager.js --global pnpm
53
+
54
+ # Set bun for current project
55
+ node scripts/setup-package-manager.js --project bun
56
+
57
+ # List available package managers
58
+ node scripts/setup-package-manager.js --list
59
+ `);
60
+ }
61
+
62
+ function detectAndShow() {
63
+ const pm = getPackageManager();
64
+ const available = getAvailablePackageManagers();
65
+ const fromLock = detectFromLockFile();
66
+ const fromPkg = detectFromPackageJson();
67
+
68
+ console.log('\n=== Package Manager Detection ===\n');
69
+
70
+ console.log('Current selection:');
71
+ console.log(` Package Manager: ${pm.name}`);
72
+ console.log(` Source: ${pm.source}`);
73
+ console.log('');
74
+
75
+ console.log('Detection results:');
76
+ console.log(` From package.json: ${fromPkg || 'not specified'}`);
77
+ console.log(` From lock file: ${fromLock || 'not found'}`);
78
+ console.log(` Environment var: ${process.env.CLAUDE_PACKAGE_MANAGER || 'not set'}`);
79
+ console.log('');
80
+
81
+ console.log('Available package managers:');
82
+ for (const pmName of Object.keys(PACKAGE_MANAGERS)) {
83
+ const installed = available.includes(pmName);
84
+ const indicator = installed ? '✓' : '✗';
85
+ const current = pmName === pm.name ? ' (current)' : '';
86
+ console.log(` ${indicator} ${pmName}${current}`);
87
+ }
88
+
89
+ console.log('');
90
+ console.log('Commands:');
91
+ console.log(` Install: ${pm.config.installCmd}`);
92
+ console.log(` Run script: ${pm.config.runCmd} <script>`);
93
+ console.log(` Execute binary: ${pm.config.execCmd} <binary>`);
94
+ console.log('');
95
+ }
96
+
97
+ function listAvailable() {
98
+ const available = getAvailablePackageManagers();
99
+ const pm = getPackageManager();
100
+
101
+ console.log('\nAvailable Package Managers:\n');
102
+
103
+ for (const pmName of Object.keys(PACKAGE_MANAGERS)) {
104
+ const config = PACKAGE_MANAGERS[pmName];
105
+ const installed = available.includes(pmName);
106
+ const current = pmName === pm.name ? ' (current)' : '';
107
+
108
+ console.log(`${pmName}${current}`);
109
+ console.log(` Installed: ${installed ? 'Yes' : 'No'}`);
110
+ console.log(` Lock file: ${config.lockFile}`);
111
+ console.log(` Install: ${config.installCmd}`);
112
+ console.log(` Run: ${config.runCmd}`);
113
+ console.log('');
114
+ }
115
+ }
116
+
117
+ function setGlobal(pmName) {
118
+ if (!PACKAGE_MANAGERS[pmName]) {
119
+ console.error(`Error: Unknown package manager "${pmName}"`);
120
+ console.error(`Available: ${Object.keys(PACKAGE_MANAGERS).join(', ')}`);
121
+ process.exit(1);
122
+ }
123
+
124
+ const available = getAvailablePackageManagers();
125
+ if (!available.includes(pmName)) {
126
+ console.warn(`Warning: ${pmName} is not installed on your system`);
127
+ }
128
+
129
+ try {
130
+ setPreferredPackageManager(pmName);
131
+ console.log(`\n✓ Global preference set to: ${pmName}`);
132
+ console.log(' Saved to: ~/.claude/package-manager.json');
133
+ console.log('');
134
+ } catch (err) {
135
+ console.error(`Error: ${err.message}`);
136
+ process.exit(1);
137
+ }
138
+ }
139
+
140
+ function setProject(pmName) {
141
+ if (!PACKAGE_MANAGERS[pmName]) {
142
+ console.error(`Error: Unknown package manager "${pmName}"`);
143
+ console.error(`Available: ${Object.keys(PACKAGE_MANAGERS).join(', ')}`);
144
+ process.exit(1);
145
+ }
146
+
147
+ try {
148
+ setProjectPackageManager(pmName);
149
+ console.log(`\n✓ Project preference set to: ${pmName}`);
150
+ console.log(' Saved to: .claude/package-manager.json');
151
+ console.log('');
152
+ } catch (err) {
153
+ console.error(`Error: ${err.message}`);
154
+ process.exit(1);
155
+ }
156
+ }
157
+
158
+ // Main
159
+ const args = process.argv.slice(2);
160
+
161
+ if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
162
+ showHelp();
163
+ process.exit(0);
164
+ }
165
+
166
+ if (args.includes('--detect')) {
167
+ detectAndShow();
168
+ process.exit(0);
169
+ }
170
+
171
+ if (args.includes('--list')) {
172
+ listAvailable();
173
+ process.exit(0);
174
+ }
175
+
176
+ const globalIdx = args.indexOf('--global');
177
+ if (globalIdx !== -1) {
178
+ const pmName = args[globalIdx + 1];
179
+ if (!pmName) {
180
+ console.error('Error: --global requires a package manager name');
181
+ process.exit(1);
182
+ }
183
+ setGlobal(pmName);
184
+ process.exit(0);
185
+ }
186
+
187
+ const projectIdx = args.indexOf('--project');
188
+ if (projectIdx !== -1) {
189
+ const pmName = args[projectIdx + 1];
190
+ if (!pmName) {
191
+ console.error('Error: --project requires a package manager name');
192
+ process.exit(1);
193
+ }
194
+ setProject(pmName);
195
+ process.exit(0);
196
+ }
197
+
198
+ // If just a package manager name is provided, set it globally
199
+ const pmName = args[0];
200
+ if (PACKAGE_MANAGERS[pmName]) {
201
+ setGlobal(pmName);
202
+ } else {
203
+ console.error(`Error: Unknown option or package manager "${pmName}"`);
204
+ showHelp();
205
+ process.exit(1);
206
+ }
@@ -169,6 +169,17 @@ function init(flags = {}) {
169
169
  totalSkipped += copilotResult.skipped;
170
170
  totalErrors.push(...copilotResult.errors);
171
171
 
172
+ // Scripts (hook implementations)
173
+ if (!skipHooks) {
174
+ const scriptsSrc = path.join(PACKAGE_ROOT, 'scripts');
175
+ const scriptsDest = path.join(targetDir, 'scripts');
176
+ const scriptsResult = copyDir(scriptsSrc, scriptsDest, options);
177
+ console.log(` ✅ Scripts: ${scriptsResult.copied} copied, ${scriptsResult.skipped} skipped`);
178
+ totalCopied += scriptsResult.copied;
179
+ totalSkipped += scriptsResult.skipped;
180
+ totalErrors.push(...scriptsResult.errors);
181
+ }
182
+
172
183
  // AGENTS.md at root
173
184
  const agentsMdSrc = path.join(PACKAGE_ROOT, 'AGENTS.md');
174
185
  const agentsMdDest = path.join(targetDir, 'AGENTS.md');