@love-moon/cli2sdk 0.2.4 → 0.2.6
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/dist/bin/aiden_test_cli.js +0 -0
- package/dist/bin/claude_test_cli.js +0 -0
- package/dist/bin/cli2sdk2cli.d.ts +2 -0
- package/dist/bin/cli2sdk2cli.js +280 -0
- package/dist/bin/cli2sdk2cli.js.map +1 -0
- package/dist/bin/copilot_test_cli.js +0 -0
- package/dist/bin/cursor_test_cli.js +0 -0
- package/dist/bin/kimi_test_cli.js +0 -0
- package/package.json +1 -1
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import process from "node:process";
|
|
3
|
+
import readline from "node:readline/promises";
|
|
4
|
+
import { cli2sdk } from "../index.js";
|
|
5
|
+
const parseArgs = (argv) => {
|
|
6
|
+
let command;
|
|
7
|
+
let commandArgs = [];
|
|
8
|
+
let stream = false;
|
|
9
|
+
let debug = false;
|
|
10
|
+
let persistent = true; // 默认启用持续会话
|
|
11
|
+
let i = 0;
|
|
12
|
+
while (i < argv.length) {
|
|
13
|
+
if (argv[i] === "--help" || argv[i] === "-h") {
|
|
14
|
+
usage();
|
|
15
|
+
process.exit(0);
|
|
16
|
+
}
|
|
17
|
+
else if (argv[i] === "--debug" || argv[i] === "-d") {
|
|
18
|
+
debug = true;
|
|
19
|
+
}
|
|
20
|
+
else if (argv[i] === "--command" && i + 1 < argv.length) {
|
|
21
|
+
// Parse the entire command line from --command
|
|
22
|
+
let fullCommandLine = argv[++i];
|
|
23
|
+
// Also include any additional arguments that are not options
|
|
24
|
+
while (i + 1 < argv.length && !argv[i + 1].startsWith("-")) {
|
|
25
|
+
fullCommandLine += " " + argv[++i];
|
|
26
|
+
}
|
|
27
|
+
// Parse command and arguments from the full command line
|
|
28
|
+
// This handles quoted strings, like --command "echo hello world"
|
|
29
|
+
const parsed = parseCommandLine(fullCommandLine);
|
|
30
|
+
command = parsed[0];
|
|
31
|
+
commandArgs = parsed.slice(1);
|
|
32
|
+
}
|
|
33
|
+
else if (argv[i] === "--stream") {
|
|
34
|
+
stream = true;
|
|
35
|
+
}
|
|
36
|
+
else if (argv[i].startsWith("-")) {
|
|
37
|
+
console.error(`Unknown option: ${argv[i]}`);
|
|
38
|
+
usage();
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
// If argument is not an option, treat as part of command
|
|
43
|
+
if (!command) {
|
|
44
|
+
console.error("Error: Command must be preceded by --command option");
|
|
45
|
+
usage();
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
commandArgs.push(argv[i]);
|
|
49
|
+
}
|
|
50
|
+
i++;
|
|
51
|
+
}
|
|
52
|
+
if (!command) {
|
|
53
|
+
console.error("Error: --command is required");
|
|
54
|
+
usage();
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
return { command, args: commandArgs, stream, debug, persistent };
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Parse a command line string into an array, handling quoted arguments
|
|
61
|
+
* This supports both single and double quotes
|
|
62
|
+
*/
|
|
63
|
+
function parseCommandLine(cmdLine) {
|
|
64
|
+
const args = [];
|
|
65
|
+
let currentArg = "";
|
|
66
|
+
let quoteChar = null;
|
|
67
|
+
for (let i = 0; i < cmdLine.length; i++) {
|
|
68
|
+
const char = cmdLine[i];
|
|
69
|
+
if (char === "'" || char === '"') {
|
|
70
|
+
if (quoteChar === char) {
|
|
71
|
+
// Close quote
|
|
72
|
+
quoteChar = null;
|
|
73
|
+
}
|
|
74
|
+
else if (quoteChar === null) {
|
|
75
|
+
// Open new quote
|
|
76
|
+
quoteChar = char;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// Inside a quote, add the character as-is
|
|
80
|
+
currentArg += char;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else if (char === " " && !quoteChar) {
|
|
84
|
+
if (currentArg.length > 0) {
|
|
85
|
+
args.push(currentArg);
|
|
86
|
+
currentArg = "";
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
currentArg += char;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (currentArg.length > 0) {
|
|
94
|
+
args.push(currentArg);
|
|
95
|
+
}
|
|
96
|
+
if (quoteChar) {
|
|
97
|
+
console.error("Error: Unclosed quote in command line");
|
|
98
|
+
usage();
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
// Special fix for commands like: bash -c "echo; sleep 5"
|
|
102
|
+
// This fixes cases where we have quoted strings with spaces after -c flag
|
|
103
|
+
const fixedArgs = [];
|
|
104
|
+
let i = 0;
|
|
105
|
+
while (i < args.length) {
|
|
106
|
+
let arg = args[i];
|
|
107
|
+
// If arg is "-c" or "/c" (Windows), the next argument should be treated as single string
|
|
108
|
+
if (arg === "-c" || arg === "/c") {
|
|
109
|
+
fixedArgs.push(arg);
|
|
110
|
+
if (i + 1 < args.length) {
|
|
111
|
+
// Collect all remaining args as a single string to preserve spaces
|
|
112
|
+
let cArg = args.slice(i + 1).join(" ");
|
|
113
|
+
// Remove any leading/trailing quotes if they still exist
|
|
114
|
+
if (cArg.startsWith('"') && cArg.endsWith('"')) {
|
|
115
|
+
cArg = cArg.slice(1, -1);
|
|
116
|
+
}
|
|
117
|
+
else if (cArg.startsWith("'") && cArg.endsWith("'")) {
|
|
118
|
+
cArg = cArg.slice(1, -1);
|
|
119
|
+
}
|
|
120
|
+
fixedArgs.push(cArg);
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// Remove any leading/trailing quotes from normal args
|
|
126
|
+
if (arg.startsWith('"') && arg.endsWith('"')) {
|
|
127
|
+
arg = arg.slice(1, -1);
|
|
128
|
+
}
|
|
129
|
+
else if (arg.startsWith("'") && arg.endsWith("'")) {
|
|
130
|
+
arg = arg.slice(1, -1);
|
|
131
|
+
}
|
|
132
|
+
fixedArgs.push(arg);
|
|
133
|
+
}
|
|
134
|
+
i++;
|
|
135
|
+
}
|
|
136
|
+
return fixedArgs;
|
|
137
|
+
}
|
|
138
|
+
const usage = () => {
|
|
139
|
+
console.log(`
|
|
140
|
+
Usage: cli2sdk2cli --command <full-command-line> [--stream] [--debug | -d]
|
|
141
|
+
|
|
142
|
+
Test tool for cli2sdk that loads a specified command and enables interactive conversation.
|
|
143
|
+
|
|
144
|
+
Options:
|
|
145
|
+
--command <full-command-line> Required: The complete command line to load
|
|
146
|
+
(e.g., 'echo Hello World', 'claude --output-format json')
|
|
147
|
+
--stream Optional: Enable streaming mode for responses
|
|
148
|
+
--debug, -d Optional: Show detailed debug information
|
|
149
|
+
(includes spawned command, sent messages, and CLI outputs)
|
|
150
|
+
--help Show this help message
|
|
151
|
+
|
|
152
|
+
Examples:
|
|
153
|
+
# Test with simple echo command
|
|
154
|
+
cli2sdk2cli --command "echo Hello from cli2sdk"
|
|
155
|
+
|
|
156
|
+
# Test with Claude CLI (if available) in streaming mode
|
|
157
|
+
cli2sdk2cli --command "claude --output-format json --stream" --stream
|
|
158
|
+
|
|
159
|
+
# Test with custom Python script with debug output
|
|
160
|
+
cli2sdk2cli --command "python3 /path/to/your/script.py --verbose" --debug
|
|
161
|
+
|
|
162
|
+
# Test with persistent session (keeps process running)
|
|
163
|
+
cli2sdk2cli --command "python3 -c 'import time; while True: i = input(); print(f\"You said: {i}\")'" --persistent
|
|
164
|
+
`);
|
|
165
|
+
};
|
|
166
|
+
const main = async () => {
|
|
167
|
+
const { command, args, stream, debug, persistent } = parseArgs(process.argv.slice(2));
|
|
168
|
+
console.log("=".repeat(80));
|
|
169
|
+
console.log(`cli2sdk2cli - Interactive Test Tool`);
|
|
170
|
+
console.log("=".repeat(80));
|
|
171
|
+
console.log(`Command: ${command}`);
|
|
172
|
+
if (args.length > 0) {
|
|
173
|
+
console.log(`Arguments: ${args.join(' ')}`);
|
|
174
|
+
}
|
|
175
|
+
console.log(`Streaming: ${stream}`);
|
|
176
|
+
console.log(`Debug: ${debug}`);
|
|
177
|
+
console.log(`Persistent Session: ${persistent}`);
|
|
178
|
+
console.log("=".repeat(80));
|
|
179
|
+
// Enhanced debug logging
|
|
180
|
+
const logDebug = (message, data) => {
|
|
181
|
+
if (debug) {
|
|
182
|
+
console.log(`\n[DEBUG] ${message}`);
|
|
183
|
+
if (data) {
|
|
184
|
+
if (typeof data === 'string') {
|
|
185
|
+
console.log(data);
|
|
186
|
+
}
|
|
187
|
+
else if (typeof data === 'object') {
|
|
188
|
+
console.log(JSON.stringify(data, null, 2));
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
console.log(data);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
// Initialize cli2sdk with the specified command
|
|
197
|
+
logDebug("Initializing SDK with configuration");
|
|
198
|
+
const sdk = cli2sdk({
|
|
199
|
+
provider: "generic",
|
|
200
|
+
persistent: persistent, // Apply persistent config
|
|
201
|
+
generic: {
|
|
202
|
+
command: command,
|
|
203
|
+
args: args,
|
|
204
|
+
inputFormat: "text", // Default to text format for simpler interaction
|
|
205
|
+
supportsStreaming: stream,
|
|
206
|
+
debug: debug,
|
|
207
|
+
persistent: persistent
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
const rl = readline.createInterface({
|
|
211
|
+
input: process.stdin,
|
|
212
|
+
output: process.stdout
|
|
213
|
+
});
|
|
214
|
+
console.log("\nEntering interactive mode.");
|
|
215
|
+
console.log("- Type your message and press Enter to send");
|
|
216
|
+
console.log("- Press Enter on empty line to exit\n");
|
|
217
|
+
const chat = sdk.session("cli2sdk2cli-demo");
|
|
218
|
+
// Handle exit signals to ensure persistent process is closed
|
|
219
|
+
process.on('SIGINT', () => {
|
|
220
|
+
console.log("\n\nReceived interrupt, closing persistent process...");
|
|
221
|
+
sdk.close?.(); // Call close method if available
|
|
222
|
+
rl.close();
|
|
223
|
+
process.exit(0);
|
|
224
|
+
});
|
|
225
|
+
try {
|
|
226
|
+
while (true) {
|
|
227
|
+
const question = (await rl.question("You> ")).trim();
|
|
228
|
+
if (!question) {
|
|
229
|
+
console.log("\nExiting interactive mode.");
|
|
230
|
+
console.log("Closing persistent process...");
|
|
231
|
+
sdk.close?.(); // Close persistent process
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
if (stream) {
|
|
235
|
+
process.stdout.write("Bot> ");
|
|
236
|
+
try {
|
|
237
|
+
let fullResponse = "";
|
|
238
|
+
for await (const chunk of sdk.stream(question, {
|
|
239
|
+
history: chat.getHistory(),
|
|
240
|
+
metadata: { debug: debug }
|
|
241
|
+
})) {
|
|
242
|
+
if (chunk.delta) {
|
|
243
|
+
process.stdout.write(chunk.delta);
|
|
244
|
+
fullResponse += chunk.delta;
|
|
245
|
+
}
|
|
246
|
+
else if (chunk.text) {
|
|
247
|
+
process.stdout.write(chunk.text);
|
|
248
|
+
fullResponse += chunk.text;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
process.stdout.write("\n");
|
|
252
|
+
chat.addExchange(question, fullResponse);
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
console.log(`\nError streaming response: ${error.message || String(error)}`);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
try {
|
|
260
|
+
const answer = await chat.ask(question, { metadata: { debug: debug } });
|
|
261
|
+
console.log(`Bot> ${answer.text}`);
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
console.log(`\nError getting response: ${error.message || String(error)}`);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
catch (error) {
|
|
270
|
+
console.log(`\nError: ${error.message || String(error)}`);
|
|
271
|
+
}
|
|
272
|
+
finally {
|
|
273
|
+
rl.close();
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
main().catch((error) => {
|
|
277
|
+
console.error("cli2sdk2cli failed:", error);
|
|
278
|
+
process.exitCode = 1;
|
|
279
|
+
});
|
|
280
|
+
//# sourceMappingURL=cli2sdk2cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli2sdk2cli.js","sourceRoot":"","sources":["../../src/bin/cli2sdk2cli.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|