refactor: several improvements (#132)

- js export expression
- check args regarding run-agent/run-tool
This commit is contained in:
sigoden
2024-11-30 17:14:21 +08:00
committed by GitHub
parent c4ba6ff379
commit d2a537c374
11 changed files with 52 additions and 24 deletions
+4 -4
View File
@@ -30,14 +30,14 @@ run@tool() {
cmd="$(_lang_to_cmd "$lang")"
run_tool_script="$PWD/scripts/run-tool.$lang"
[[ -n "$argc_cwd" ]] && cd "$argc_cwd"
"$cmd" "$run_tool_script" "$argc_tool" "$argc_json"
exec "$cmd" "$run_tool_script" "$argc_tool" "$argc_json"
}
# @cmd Run the agent
# @alias agent:run
# @option -C --cwd <dir> Change the current working directory
# @arg agent![`_choice_agent`] The agent name
# @arg action![`_choice_agent_action`] The agent action
# @arg action![?`_choice_agent_action`] The agent action
# @arg json The json data
run@agent() {
if [[ -z "$argc_json" ]]; then
@@ -54,7 +54,7 @@ run@agent() {
cmd="$(_lang_to_cmd "$lang")"
run_agent_script="$PWD/scripts/run-agent.$lang"
[[ -n "$argc_cwd" ]] && cd "$argc_cwd"
"$cmd" "$run_agent_script" "$argc_agent" "$argc_action" "$argc_json"
exec "$cmd" "$run_agent_script" "$argc_agent" "$argc_action" "$argc_json"
}
# @cmd Build the project
@@ -668,7 +668,7 @@ _choice_agent_action() {
else
expr="s/:.*//"
fi
argc generate-declarations@agent "$1" --oneline | sed "$expr"
argc generate-declarations@agent "$1" --oneline | sed "$expr"
}
_die() {
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* Get the system info
*/
exports.get_ipinfo = async function getIpinfo() {
exports.get_ipinfo = async function () {
const res = await fetch("https://httpbin.org/ip")
return res.json();
}
+1 -1
View File
@@ -75,7 +75,7 @@ create_js() {
* @typedef {Object} Args${properties}
* @param {Args} args
*/
exports.run = function run(args) {
exports.run = function (args) {
console.log(args);
}
EOF
+6 -1
View File
@@ -31,10 +31,15 @@ function parseArgv(thisFileName) {
agentData = process.argv[3];
}
if (agentName.endsWith(".js")) {
if (agentName && agentName.endsWith(".js")) {
agentName = agentName.slice(0, -3);
}
if (!agentData || !agentFunc || !agentName) {
console.log(`Usage: ./run-agent.js <agent-name> <agent-func> <agent-data>`);
process.exit(1);
}
return [agentName, agentFunc, agentData];
}
+14 -8
View File
@@ -32,20 +32,26 @@ def parse_argv(this_file_name):
agent_name = argv[0]
agent_func = ""
agent_data = None
agent_data = ""
if agent_name.endswith(this_file_name):
agent_name = sys.argv[1]
agent_func = sys.argv[2]
agent_data = sys.argv[3]
if len(sys.argv) > 3:
agent_name = sys.argv[1]
agent_func = sys.argv[2]
agent_data = sys.argv[3]
else:
agent_name = os.path.basename(agent_name)
agent_func = sys.argv[1]
agent_data = sys.argv[2]
if len(sys.argv) > 2:
agent_name = os.path.basename(agent_name)
agent_func = sys.argv[1]
agent_data = sys.argv[2]
if agent_name.endswith(".py"):
if agent_name and agent_name.endswith(".py"):
agent_name = agent_name[:-3]
if (not agent_data) or (not agent_func) or (not agent_name):
print("Usage: ./run-agent.py <agent-name> <agent-func> <agent-data>", file=sys.stderr)
sys.exit(1)
return agent_name, agent_func, agent_data
+3
View File
@@ -23,6 +23,9 @@ parse_argv() {
if [[ "$agent_name" == *.sh ]]; then
agent_name="${agent_name:0:$((${#agent_name}-3))}"
fi
if [[ -z "$agent_data" ]] || [[ -z "$agent_func" ]] || [[ -z "$agent_name" ]]; then
die "usage: ./run-agent.sh <agent-name> <agent-func> <agent-data>"
fi
}
setup_env() {
+6 -1
View File
@@ -28,10 +28,15 @@ function parseArgv(thisFileName) {
toolData = process.argv[2];
}
if (toolName.endsWith(".js")) {
if (toolName && toolName.endsWith(".js")) {
toolName = toolName.slice(0, -3);
}
if (!toolData || !toolName) {
console.log(`Usage: ./run-tools.js <tool-name> <tool-data>`);
process.exit(1);
}
return [toolName, toolData];
}
+12 -6
View File
@@ -31,18 +31,24 @@ def parse_argv(this_file_name):
argv = sys.argv[:] + [None] * max(0, 3 - len(sys.argv))
tool_name = argv[0]
tool_data = None
tool_data = ""
if tool_name.endswith(this_file_name):
tool_name = argv[1]
tool_data = argv[2]
if len(sys.argv) > 2:
tool_name = argv[1]
tool_data = argv[2]
else:
tool_name = os.path.basename(tool_name)
tool_data = sys.argv[1]
if len(sys.argv) > 1:
tool_name = os.path.basename(tool_name)
tool_data = sys.argv[1]
if tool_name.endswith(".py"):
if tool_name and tool_name.endswith(".py"):
tool_name = tool_name[:-3]
if (not tool_data) or (not tool_name):
print("Usage: ./run-tool.py <tool-name> <tool-data>", file=sys.stderr)
sys.exit(1)
return tool_name, tool_data
+3
View File
@@ -21,6 +21,9 @@ parse_argv() {
if [[ "$tool_name" == *.sh ]]; then
tool_name="${tool_name:0:$((${#tool_name}-3))}"
fi
if [[ -z "$tool_data" ]] || [[ -z "$tool_name" ]]; then
die "usage: ./run-tool.sh <tool-name> <tool-data>"
fi
}
setup_env() {
+1 -1
View File
@@ -11,7 +11,7 @@
* @property {string[]} [array_optional] - Define a optional string array property
* @param {Args} args
*/
exports.run = function run(args) {
exports.run = function (args) {
let output = `string: ${args.string}
string_enum: ${args.string_enum}
string_optional: ${args.string_optional}
+1 -1
View File
@@ -4,7 +4,7 @@
* @property {string} code - Javascript code to execute, such as `console.log("hello world")`
* @param {Args} args
*/
exports.run = function run({ code }) {
exports.run = function ({ code }) {
let output = "";
const oldStdoutWrite = process.stdout.write.bind(process.stdout);
process.stdout.write = (chunk, _encoding, callback) => {