@kaitranntt/ccs 2.4.2 → 2.4.3
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.
- package/VERSION +1 -1
- package/bin/ccs.js +47 -5
- package/lib/ccs +1 -1
- package/lib/ccs.ps1 +1 -1
- package/package.json +1 -1
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.4.
|
|
1
|
+
2.4.3
|
package/bin/ccs.js
CHANGED
|
@@ -19,10 +19,22 @@ function getSpawnOptions(claudePath) {
|
|
|
19
19
|
|
|
20
20
|
return {
|
|
21
21
|
stdio: 'inherit',
|
|
22
|
-
shell: needsShell
|
|
22
|
+
shell: needsShell,
|
|
23
|
+
windowsHide: true // Hide the console window on Windows
|
|
23
24
|
};
|
|
24
25
|
}
|
|
25
26
|
|
|
27
|
+
// Helper: Escape arguments for shell execution to prevent security vulnerabilities
|
|
28
|
+
function escapeShellArg(arg) {
|
|
29
|
+
if (process.platform !== 'win32') {
|
|
30
|
+
// Unix-like systems: escape single quotes and wrap in single quotes
|
|
31
|
+
return "'" + arg.replace(/'/g, "'\"'\"'") + "'";
|
|
32
|
+
} else {
|
|
33
|
+
// Windows: escape double quotes and wrap in double quotes
|
|
34
|
+
return '"' + arg.replace(/"/g, '""') + '"';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
26
38
|
// Special command handlers
|
|
27
39
|
function handleVersionCommand() {
|
|
28
40
|
console.log(`CCS (Claude Code Switch) version ${CCS_VERSION}`);
|
|
@@ -48,7 +60,17 @@ function handleHelpCommand(remainingArgs) {
|
|
|
48
60
|
|
|
49
61
|
// Execute claude --help
|
|
50
62
|
const spawnOpts = getSpawnOptions(claudeCli);
|
|
51
|
-
|
|
63
|
+
let claudeArgs, child;
|
|
64
|
+
|
|
65
|
+
if (spawnOpts.shell) {
|
|
66
|
+
// When shell is required, escape arguments properly
|
|
67
|
+
claudeArgs = [claudeCli, '--help', ...remainingArgs].map(escapeShellArg).join(' ');
|
|
68
|
+
child = spawn(claudeArgs, spawnOpts);
|
|
69
|
+
} else {
|
|
70
|
+
// When no shell needed, use arguments array directly
|
|
71
|
+
claudeArgs = ['--help', ...remainingArgs];
|
|
72
|
+
child = spawn(claudeCli, claudeArgs, spawnOpts);
|
|
73
|
+
}
|
|
52
74
|
|
|
53
75
|
child.on('exit', (code, signal) => {
|
|
54
76
|
if (signal) {
|
|
@@ -138,7 +160,17 @@ function main() {
|
|
|
138
160
|
|
|
139
161
|
// Execute claude with args
|
|
140
162
|
const spawnOpts = getSpawnOptions(claudeCli);
|
|
141
|
-
|
|
163
|
+
let claudeArgs, child;
|
|
164
|
+
|
|
165
|
+
if (spawnOpts.shell) {
|
|
166
|
+
// When shell is required, escape arguments properly
|
|
167
|
+
claudeArgs = [claudeCli, ...remainingArgs].map(escapeShellArg).join(' ');
|
|
168
|
+
child = spawn(claudeArgs, spawnOpts);
|
|
169
|
+
} else {
|
|
170
|
+
// When no shell needed, use arguments array directly
|
|
171
|
+
claudeArgs = remainingArgs;
|
|
172
|
+
child = spawn(claudeCli, claudeArgs, spawnOpts);
|
|
173
|
+
}
|
|
142
174
|
|
|
143
175
|
child.on('exit', (code, signal) => {
|
|
144
176
|
if (signal) {
|
|
@@ -169,9 +201,19 @@ function main() {
|
|
|
169
201
|
}
|
|
170
202
|
|
|
171
203
|
// Execute claude with --settings
|
|
172
|
-
const
|
|
204
|
+
const claudeArgsList = ['--settings', settingsPath, ...remainingArgs];
|
|
173
205
|
const spawnOpts = getSpawnOptions(claudeCli);
|
|
174
|
-
|
|
206
|
+
let claudeArgs, child;
|
|
207
|
+
|
|
208
|
+
if (spawnOpts.shell) {
|
|
209
|
+
// When shell is required, escape arguments properly
|
|
210
|
+
claudeArgs = [claudeCli, ...claudeArgsList].map(escapeShellArg).join(' ');
|
|
211
|
+
child = spawn(claudeArgs, spawnOpts);
|
|
212
|
+
} else {
|
|
213
|
+
// When no shell needed, use arguments array directly
|
|
214
|
+
claudeArgs = claudeArgsList;
|
|
215
|
+
child = spawn(claudeCli, claudeArgs, spawnOpts);
|
|
216
|
+
}
|
|
175
217
|
|
|
176
218
|
child.on('exit', (code, signal) => {
|
|
177
219
|
if (signal) {
|
package/lib/ccs
CHANGED
package/lib/ccs.ps1
CHANGED
|
@@ -72,7 +72,7 @@ Restart your terminal after installation.
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
# Version (updated by scripts/bump-version.sh)
|
|
75
|
-
$CcsVersion = "2.4.
|
|
75
|
+
$CcsVersion = "2.4.3"
|
|
76
76
|
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
77
77
|
|
|
78
78
|
# Installation function for commands and skills
|