2025-10-11 12:29:03 -03:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
2025-10-13 17:43:03 -03:00
|
|
|
PROJECT_ROOT="$SCRIPT_DIR"
|
2025-10-11 12:29:03 -03:00
|
|
|
OUTPUT_FILE="$SCRIPT_DIR/prompt.out"
|
2025-10-14 13:51:27 -03:00
|
|
|
|
|
|
|
|
rm -f "$OUTPUT_FILE"
|
2025-10-11 12:29:03 -03:00
|
|
|
echo "Consolidated LLM Context" > "$OUTPUT_FILE"
|
|
|
|
|
|
|
|
|
|
prompts=(
|
2025-10-13 17:43:03 -03:00
|
|
|
"./prompts/dev/shared.md"
|
|
|
|
|
"./Cargo.toml"
|
|
|
|
|
"./prompts/dev/generation.md"
|
2025-10-11 12:29:03 -03:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
for file in "${prompts[@]}"; do
|
2025-10-14 13:51:27 -03:00
|
|
|
if [ -f "$file" ]; then
|
|
|
|
|
cat "$file" >> "$OUTPUT_FILE"
|
|
|
|
|
echo "" >> "$OUTPUT_FILE"
|
|
|
|
|
fi
|
2025-10-11 12:29:03 -03:00
|
|
|
done
|
|
|
|
|
|
|
|
|
|
dirs=(
|
|
|
|
|
#"auth"
|
2025-10-11 20:41:52 -03:00
|
|
|
#"automation"
|
|
|
|
|
#"basic"
|
2025-10-16 11:43:02 -03:00
|
|
|
#"bot"
|
2025-10-15 01:14:37 -03:00
|
|
|
#"channels"
|
2025-10-14 13:51:27 -03:00
|
|
|
#"config"
|
2025-10-13 17:43:03 -03:00
|
|
|
#"context"
|
2025-10-11 12:29:03 -03:00
|
|
|
#"email"
|
2025-10-11 20:41:52 -03:00
|
|
|
#"file"
|
2025-10-13 17:43:03 -03:00
|
|
|
#"llm"
|
2025-10-11 12:29:03 -03:00
|
|
|
#"llm_legacy"
|
|
|
|
|
#"org"
|
2025-10-13 00:31:08 -03:00
|
|
|
"session"
|
2025-10-12 11:44:35 -03:00
|
|
|
"shared"
|
2025-10-11 12:29:03 -03:00
|
|
|
#"tests"
|
2025-10-12 20:12:49 -03:00
|
|
|
#"tools"
|
2025-10-11 12:29:03 -03:00
|
|
|
#"web_automation"
|
2025-10-13 17:43:03 -03:00
|
|
|
#"whatsapp"
|
2025-10-11 12:29:03 -03:00
|
|
|
)
|
2025-10-14 13:51:27 -03:00
|
|
|
|
|
|
|
|
filter_rust_file() {
|
|
|
|
|
sed -E '/^\s*\/\//d' "$1" | \
|
|
|
|
|
sed -E '/info!\s*\(/d' | \
|
|
|
|
|
sed -E '/debug!\s*\(/d' | \
|
|
|
|
|
sed -E '/trace!\s*\(/d'
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-11 12:29:03 -03:00
|
|
|
for dir in "${dirs[@]}"; do
|
2025-10-14 13:51:27 -03:00
|
|
|
find "$PROJECT_ROOT/src/$dir" -name "*.rs" | while read -r file; do
|
|
|
|
|
echo "$file" >> "$OUTPUT_FILE"
|
|
|
|
|
filter_rust_file "$file" >> "$OUTPUT_FILE"
|
2025-10-11 12:29:03 -03:00
|
|
|
echo "" >> "$OUTPUT_FILE"
|
|
|
|
|
done
|
|
|
|
|
done
|
|
|
|
|
|
2025-10-14 13:51:27 -03:00
|
|
|
# Additional specific files
|
|
|
|
|
files=(
|
|
|
|
|
"$PROJECT_ROOT/src/main.rs"
|
|
|
|
|
"$PROJECT_ROOT/src/basic/keywords/hear_talk.rs"
|
2025-10-16 11:43:02 -03:00
|
|
|
"$PROJECT_ROOT/templates/annoucements.gbai/annoucements.gbdialog/update-summary.bas"
|
2025-10-14 13:51:27 -03:00
|
|
|
)
|
2025-10-13 09:36:06 -03:00
|
|
|
|
2025-10-14 13:51:27 -03:00
|
|
|
for file in "${files[@]}"; do
|
|
|
|
|
if [[ "$file" == *.rs ]]; then
|
|
|
|
|
echo "$file" >> "$OUTPUT_FILE"
|
|
|
|
|
filter_rust_file "$file" >> "$OUTPUT_FILE"
|
|
|
|
|
else
|
|
|
|
|
echo "$file" >> "$OUTPUT_FILE"
|
|
|
|
|
cat "$file" >> "$OUTPUT_FILE"
|
|
|
|
|
fi
|
|
|
|
|
done
|
2025-10-12 11:44:35 -03:00
|
|
|
|
2025-10-14 13:51:27 -03:00
|
|
|
# Remove all blank lines and reduce whitespace greater than 1 space
|
|
|
|
|
sed -i 's/[[:space:]]*$//' "$OUTPUT_FILE"
|
|
|
|
|
sed -i '/^$/d' "$OUTPUT_FILE"
|
|
|
|
|
sed -i 's/ \+/ /g' "$OUTPUT_FILE"
|
|
|
|
|
|
|
|
|
|
# Calculate and display token count (approximation: words * 1.3)
|
|
|
|
|
WORD_COUNT=$(wc -w < "$OUTPUT_FILE")
|
|
|
|
|
TOKEN_COUNT=$(echo "$WORD_COUNT * 1.3 / 1" | bc)
|
|
|
|
|
FILE_SIZE=$(wc -c < "$OUTPUT_FILE")
|
2025-10-11 12:29:03 -03:00
|
|
|
|
|
|
|
|
echo "" >> "$OUTPUT_FILE"
|
|
|
|
|
|
2025-10-14 13:51:27 -03:00
|
|
|
echo "Approximate token count: $TOKEN_COUNT"
|
|
|
|
|
echo "Context size: $FILE_SIZE bytes"
|
|
|
|
|
|
|
|
|
|
cat "$OUTPUT_FILE" | xclip -selection clipboard
|
|
|
|
|
echo "Content copied to clipboard (xclip)"
|