Skip to content

Commit bef0e81

Browse files
committed
优化 命令参数解析('字符串支持)
1 parent 8f6253f commit bef0e81

2 files changed

Lines changed: 10 additions & 9 deletions

File tree

soloncode-cli/src/main/java/org/noear/solon/codecli/command/WebCommandDispatcher.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
import org.noear.solon.ai.harness.command.Command;
2121
import org.noear.solon.ai.harness.command.CommandRegistry;
2222
import org.noear.solon.ai.harness.command.CommandResult;
23+
import org.noear.solon.ai.harness.command.CommandUtil;
2324
import reactor.core.publisher.Flux;
2425

25-
import java.util.Arrays;
2626
import java.util.Collections;
2727
import java.util.List;
2828

@@ -57,10 +57,10 @@ public CommandResult dispatch(String input, AgentSession session, HarnessEngine
5757
}
5858

5959
// 解析命令名和参数
60-
String[] parts = input.trim().substring(1).split("\\s+");
61-
String cmdName = parts[0].toLowerCase();
62-
List<String> args = parts.length > 1
63-
? Arrays.asList(Arrays.copyOfRange(parts, 1, parts.length))
60+
List<String> parts = CommandUtil.parseArguments(input.trim().substring(1));
61+
String cmdName = parts.get(0).toLowerCase();
62+
List<String> args = parts.size() > 1
63+
? parts.subList(1, parts.size())
6464
: Collections.emptyList();
6565

6666
// 查找命令

soloncode-cli/src/main/java/org/noear/solon/codecli/portal/CliShell.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.noear.solon.ai.harness.HarnessFlags;
4141
import org.noear.solon.ai.harness.agent.TaskSkill;
4242
import org.noear.solon.ai.harness.command.Command;
43+
import org.noear.solon.ai.harness.command.CommandUtil;
4344
import org.noear.solon.ai.skills.cli.TodoSkill;
4445
import org.noear.solon.ai.skills.memory.MemorySkill;
4546
import org.noear.solon.codecli.command.CliCommandContext;
@@ -228,10 +229,10 @@ private boolean isCommand(AgentSession session, String input) throws Exception {
228229
}
229230

230231
// 解析命令名和参数
231-
String[] parts = input.trim().substring(1).split("\\s+");
232-
String cmdName = parts[0].toLowerCase();
233-
List<String> args = parts.length > 1
234-
? Arrays.asList(Arrays.copyOfRange(parts, 1, parts.length))
232+
List<String> parts = CommandUtil.parseArguments(input.trim().substring(1));
233+
String cmdName = parts.get(0).toLowerCase();
234+
List<String> args = parts.size() > 1
235+
? parts.subList(1, parts.size())
235236
: Collections.emptyList();
236237

237238
// 查找命令

0 commit comments

Comments
 (0)