aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-11-30 17:14:21 +0800
committerGitHub <noreply@github.com>2024-11-30 17:14:21 +0800
commitd2a537c3743963bfb6add44731dd3f3f6c785a2e (patch)
treee499f1217135741622995ba253ad34ea9164f358
parentc4ba6ff379bdce768f6053671309e2e2f4a6fc79 (diff)
downloadllm-functions-docker-d2a537c3743963bfb6add44731dd3f3f6c785a2e.tar.gz
refactor: several improvements (#132)
- js export expression - check args regarding run-agent/run-tool
-rw-r--r--Argcfile.sh8
-rw-r--r--agents/demo/tools.js2
-rwxr-xr-xscripts/create-tool.sh2
-rwxr-xr-xscripts/run-agent.js7
-rwxr-xr-xscripts/run-agent.py22
-rwxr-xr-xscripts/run-agent.sh3
-rwxr-xr-xscripts/run-tool.js7
-rwxr-xr-xscripts/run-tool.py18
-rwxr-xr-xscripts/run-tool.sh3
-rw-r--r--tools/demo_js.js2
-rw-r--r--tools/execute_js_code.js2
11 files changed, 52 insertions, 24 deletions
diff --git a/Argcfile.sh b/Argcfile.sh
index 386a725..4c0747d 100644
--- a/Argcfile.sh
+++ b/Argcfile.sh
@@ -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() {
diff --git a/agents/demo/tools.js b/agents/demo/tools.js
index a3b141b..ee65097 100644
--- a/agents/demo/tools.js
+++ b/agents/demo/tools.js
@@ -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();
}
diff --git a/scripts/create-tool.sh b/scripts/create-tool.sh
index c218e60..c335934 100755
--- a/scripts/create-tool.sh
+++ b/scripts/create-tool.sh
@@ -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
diff --git a/scripts/run-agent.js b/scripts/run-agent.js
index c59ff6e..361d904 100755
--- a/scripts/run-agent.js
+++ b/scripts/run-agent.js
@@ -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];
}
diff --git a/scripts/run-agent.py b/scripts/run-agent.py
index 780267d..6b16b14 100755
--- a/scripts/run-agent.py
+++ b/scripts/run-agent.py
@@ -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
diff --git a/scripts/run-agent.sh b/scripts/run-agent.sh
index dc11e58..ff9849f 100755
--- a/scripts/run-agent.sh
+++ b/scripts/run-agent.sh
@@ -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() {
diff --git a/scripts/run-tool.js b/scripts/run-tool.js
index 4a806f3..3a1c86e 100755
--- a/scripts/run-tool.js
+++ b/scripts/run-tool.js
@@ -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];
}
diff --git a/scripts/run-tool.py b/scripts/run-tool.py
index e6c0c8f..59f9154 100755
--- a/scripts/run-tool.py
+++ b/scripts/run-tool.py
@@ -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
diff --git a/scripts/run-tool.sh b/scripts/run-tool.sh
index a87c762..c764626 100755
--- a/scripts/run-tool.sh
+++ b/scripts/run-tool.sh
@@ -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() {
diff --git a/tools/demo_js.js b/tools/demo_js.js
index 5693d0e..d922f99 100644
--- a/tools/demo_js.js
+++ b/tools/demo_js.js
@@ -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}
diff --git a/tools/execute_js_code.js b/tools/execute_js_code.js
index 0b7557b..852b33c 100644
--- a/tools/execute_js_code.js
+++ b/tools/execute_js_code.js
@@ -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) => {