aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Argcfile.sh45
-rwxr-xr-xscripts/create-tool.sh2
-rw-r--r--tools/demo_tool.js10
-rw-r--r--tools/demo_tool.py16
-rwxr-xr-xtools/demo_tool.sh3
5 files changed, 56 insertions, 20 deletions
diff --git a/Argcfile.sh b/Argcfile.sh
index 367eda0..2edf267 100644
--- a/Argcfile.sh
+++ b/Argcfile.sh
@@ -11,10 +11,10 @@ LANG_CMDS=( \
"py:python" \
)
-# @cmd Call the function
+# @cmd Run the tool
# @arg cmd![`_choice_cmd`] The function command
# @arg json The json data
-call() {
+run-tool() {
if _is_win; then
ext=".cmd"
fi
@@ -128,16 +128,18 @@ list-tools() {
# @cmd Test the project
test() {
- mkdir -p tmp/tests
- names_file=tmp/tests/functions.txt
- declarations_file=tmp/tests/functions.json
- argc list-tools > "$names_file"
- argc build --names-file "$names_file" --declarations-file "$declarations_file"
- argc test-tools
+ test-tools
}
# @cmd Test call functions
test-tools() {
+ tmp_dir="cache/tmp"
+ mkdir -p "$tmp_dir"
+ names_file="$tmp_dir/functions.txt"
+ declarations_file="$tmp_dir/functions.json"
+ argc list-tools > "$names_file"
+ argc build --names-file "$names_file" --declarations-file "$declarations_file"
+
if _is_win; then
ext=".cmd"
fi
@@ -162,6 +164,33 @@ test-tools() {
done
}
+# @cmd Test all demo tools
+test-demo-tools() {
+ for item in "${LANG_CMDS[@]}"; do
+ lang="${item%:*}"
+ echo "---- Test demo_tool.$lang ---"
+ argc build-bin "demo_tool.$lang"
+ argc run-tool demo_tool '{
+ "boolean": true,
+ "string": "Hello",
+ "string_enum": "foo",
+ "integer": 123,
+ "number": 3.14,
+ "array": [
+ "a",
+ "b",
+ "c"
+ ],
+ "string_optional": "OptionalValue",
+ "array_optional": [
+ "x",
+ "y"
+ ]
+}'
+ echo
+ done
+}
+
# @cmd Install this repo to aichat functions_dir
install() {
functions_dir="$(aichat --info | grep functions_dir | awk '{print $2}')"
diff --git a/scripts/create-tool.sh b/scripts/create-tool.sh
index 14e0ac3..bb0322c 100755
--- a/scripts/create-tool.sh
+++ b/scripts/create-tool.sh
@@ -44,7 +44,7 @@ EOF
cat <<-'EOF' >> "$output"
main() {
- ( set -o posix ; set ) | grep ^argc_ # inspect all argc variables
+ ( set -o posix ; set ) | grep ^argc_
}
eval "$(argc --argc-eval "$0" "$@")"
diff --git a/tools/demo_tool.js b/tools/demo_tool.js
index 4fd6f04..c8b7237 100644
--- a/tools/demo_tool.js
+++ b/tools/demo_tool.js
@@ -12,5 +12,13 @@
* @param {Args} args
*/
exports.run = function run(args) {
- console.log(JSON.stringify(args, null, 2));
+ for (const [key, value] of Object.entries(args)) {
+ console.log(`${key}: ${JSON.stringify(value)}`);
+ }
+
+ for (const [key, value] of Object.entries(process.env)) {
+ if (key.startsWith("LLM_")) {
+ console.log(`${key}: ${value}`);
+ }
+ }
}
diff --git a/tools/demo_tool.py b/tools/demo_tool.py
index 5eb4c09..d53cd0b 100644
--- a/tools/demo_tool.py
+++ b/tools/demo_tool.py
@@ -1,6 +1,6 @@
+import os
from typing import List, Literal, Optional
-
def run(
boolean: bool,
string: str,
@@ -22,11 +22,9 @@ def run(
string_optional: Define a optional string property
array_optional: Define a optional string array property
"""
- print(f"boolean: {boolean}")
- print(f"string: {string}")
- print(f"string_enum: {string_enum}")
- print(f"integer: {integer}")
- print(f"number: {number}")
- print(f"array: {array}")
- print(f"string_optional: {string_optional}")
- print(f"array_optional: {array_optional}")
+ for key, value in locals().items():
+ print(f"{key}: {value}")
+
+ for key, value in os.environ.items():
+ if key.startswith("LLM_"):
+ print(f"{key}: {value}") \ No newline at end of file
diff --git a/tools/demo_tool.sh b/tools/demo_tool.sh
index 0d24c75..da35e8f 100755
--- a/tools/demo_tool.sh
+++ b/tools/demo_tool.sh
@@ -9,7 +9,8 @@
# @option --array-optional* Define a optional string array property
main() {
- ( set -o posix ; set ) | grep ^argc_ # inspect all argc variables
+ ( set -o posix ; set ) | grep ^argc_
+ printenv | grep '^LLM_'
}
eval "$(argc --argc-eval "$0" "$@")" \ No newline at end of file