diff options
| author | sigoden <sigoden@gmail.com> | 2024-11-30 17:14:21 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-30 17:14:21 +0800 |
| commit | d2a537c3743963bfb6add44731dd3f3f6c785a2e (patch) | |
| tree | e499f1217135741622995ba253ad34ea9164f358 | |
| parent | c4ba6ff379bdce768f6053671309e2e2f4a6fc79 (diff) | |
| download | llm-functions-docker-d2a537c3743963bfb6add44731dd3f3f6c785a2e.tar.gz | |
refactor: several improvements (#132)
- js export expression
- check args regarding run-agent/run-tool
| -rw-r--r-- | Argcfile.sh | 8 | ||||
| -rw-r--r-- | agents/demo/tools.js | 2 | ||||
| -rwxr-xr-x | scripts/create-tool.sh | 2 | ||||
| -rwxr-xr-x | scripts/run-agent.js | 7 | ||||
| -rwxr-xr-x | scripts/run-agent.py | 22 | ||||
| -rwxr-xr-x | scripts/run-agent.sh | 3 | ||||
| -rwxr-xr-x | scripts/run-tool.js | 7 | ||||
| -rwxr-xr-x | scripts/run-tool.py | 18 | ||||
| -rwxr-xr-x | scripts/run-tool.sh | 3 | ||||
| -rw-r--r-- | tools/demo_js.js | 2 | ||||
| -rw-r--r-- | tools/execute_js_code.js | 2 |
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) => { |
