aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-11-29 18:16:36 +0800
committerGitHub <noreply@github.com>2024-11-29 18:16:36 +0800
commit139bd5a3f6738b1d478ffcca497ba09262f443b2 (patch)
tree0b86bd8b40fc10f359f5e5cf482b028a41740c99
parentecf7233401ebe273fa292b8208651395d99ddff9 (diff)
downloadllm-functions-docker-139bd5a3f6738b1d478ffcca497ba09262f443b2.tar.gz
refactor: git ignore all tools/agents startsWith `_` (#130)
-rw-r--r--.gitignore3
-rw-r--r--Argcfile.sh3
-rwxr-xr-xscripts/build-declarations.sh11
-rwxr-xr-xscripts/create-tool.sh15
4 files changed, 21 insertions, 11 deletions
diff --git a/.gitignore b/.gitignore
index b9a3d65..3be38f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,8 @@
functions.json
/bin
/cache
-/tools/test.*
+/agents/_*
+/tools/_*
/tools/web_search.*
/tools/code_interpreter.*
/.env
diff --git a/Argcfile.sh b/Argcfile.sh
index c21936d..bf4e616 100644
--- a/Argcfile.sh
+++ b/Argcfile.sh
@@ -500,8 +500,9 @@ install() {
}
# @cmd Create a boilplate tool script
+# @alias tool:create
# @arg args~
-create() {
+create@tool() {
./scripts/create-tool.sh "$@"
}
diff --git a/scripts/build-declarations.sh b/scripts/build-declarations.sh
index af23590..44b68f4 100755
--- a/scripts/build-declarations.sh
+++ b/scripts/build-declarations.sh
@@ -17,7 +17,14 @@ main() {
}
build_declarations() {
- jq -r '
+ jq --arg is_tool "$is_tool" -r '
+ def filter_declaration:
+ (if $is_tool == "true" then
+ .
+ else
+ select(.name | startswith("_") | not)
+ end) | select(.description != "");
+
def parse_description(flag_option):
if flag_option.describe == "" then
{}
@@ -59,7 +66,7 @@ build_declarations() {
parameters: parse_parameter([.flag_options[] | select(.id != "help" and .id != "version")])
};
[
- .[] | parse_declaration | select(.name | startswith("_") | not) | select(.description != "")
+ .[] | parse_declaration | filter_declaration
]'
}
diff --git a/scripts/create-tool.sh b/scripts/create-tool.sh
index 37cea7a..c218e60 100755
--- a/scripts/create-tool.sh
+++ b/scripts/create-tool.sh
@@ -4,9 +4,9 @@ set -e
# @describe Create a boilplate tool script
#
# Examples:
-# argc create test.sh foo bar! baz+ qux*
-# ./scripts/create-tool.sh test.py foo bar! baz+ qux*
+# ./scripts/create-tool.sh _test.py foo bar! baz+ qux*
#
+# @option --description <text> The tool description
# @flag --force Override the exist tool file
# @arg name! The script file name.
# @arg params* The script parameters
@@ -17,6 +17,7 @@ main() {
_die "$output already exists"
fi
ext="${argc_name##*.}"
+ description="${argc_description:-"The description for the tool"}"
support_exts=('.sh' '.js' '.py')
if [[ "$ext" == "$argc_name" ]]; then
_die "error: no extension name, pelease add one of ${support_exts[*]}"
@@ -31,12 +32,12 @@ main() {
}
create_sh() {
- cat <<-'EOF' | sed 's/__DESCRIBE_TAG__/# @describe/g' > "$output"
+ cat <<-'EOF' > "$output"
#!/usr/bin/env bash
set -e
-__DESCRIBE_TAG__
EOF
+ echo "# @describe $description" >> "$output"
for param in "${argc_params[@]}"; do
echo "# @option --$(echo $param | sed 's/-/_/g')" >> "$output"
done
@@ -70,7 +71,7 @@ create_js() {
done
cat <<EOF > "$output"
/**
- *
+ * ${description}
* @typedef {Object} Args${properties}
* @param {Args} args
*/
@@ -132,8 +133,8 @@ create_py() {
fi
cat <<EOF > "$output"
${imports}
-def main(${required_arguments}${optional_arguments}):
- """
+def run(${required_arguments}${optional_arguments}):
+ """${description}
Args:${required_properties}${optional_properties}
"""
pass