Add the `cron` crate (v0.15.0) to Cargo.toml and Cargo.lock to enable scheduling capabilities. Introduce a new `broadcast_theme_change` helper in `src/automation/mod.rs` that parses CSV theme data and pushes JSON theme update events to all active response channels. Clean up unused imports in the automation module and add `ConfigManager` import for future configuration handling. Update `add-req.sh` to adjust the list of processed directories (comment out `auth`, enable `basic`, `config`, `context`, and `drive_monitor`). These changes lay groundwork for scheduled tasks and dynamic theme updates across the application.
101 lines
2.2 KiB
Bash
Executable file
101 lines
2.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$SCRIPT_DIR"
|
|
OUTPUT_FILE="/tmp/prompt.out"
|
|
|
|
echo "Consolidated LLM Context" > "$OUTPUT_FILE"
|
|
|
|
prompts=(
|
|
"./prompts/dev/platform/shared.md"
|
|
"./prompts/dev/platform/cli.md"
|
|
"./prompts/dev/platform/ide.md"
|
|
"./Cargo.toml"
|
|
)
|
|
|
|
for file in "${prompts[@]}"; do
|
|
if [ -f "$file" ]; then
|
|
cat "$file" >> "$OUTPUT_FILE"
|
|
echo "" >> "$OUTPUT_FILE"
|
|
fi
|
|
done
|
|
|
|
dirs=(
|
|
# "auth"
|
|
# "automation"
|
|
"basic"
|
|
# "bootstrap"
|
|
"bot"
|
|
# "channels"
|
|
"config"
|
|
"context"
|
|
"drive_monitor"
|
|
# "email"
|
|
# "file"
|
|
# "kb"
|
|
# "llm"
|
|
# "llm_models"
|
|
# "org"
|
|
# "package"
|
|
# "package_manager"
|
|
# "riot_compiler"
|
|
"session"
|
|
"shared"
|
|
# "tests"
|
|
# "tools"
|
|
# "ui"
|
|
# "web_server"
|
|
# "web_automation"
|
|
# "whatsapp"
|
|
)
|
|
|
|
filter_rust_file() {
|
|
sed -E '/^\s*\/\//d' "$1" | \
|
|
sed -E '/info!\s*\(/d' | \
|
|
sed -E '/debug!\s*\(/d' | \
|
|
sed -E '/trace!\s*\(/d'
|
|
}
|
|
|
|
for dir in "${dirs[@]}"; do
|
|
find "$PROJECT_ROOT/src/$dir" -name "*.rs" | while read -r file; do
|
|
echo "$file" >> "$OUTPUT_FILE"
|
|
filter_rust_file "$file" >> "$OUTPUT_FILE"
|
|
echo "" >> "$OUTPUT_FILE"
|
|
done
|
|
done
|
|
|
|
# Additional specific files
|
|
files=(
|
|
"$PROJECT_ROOT/src/main.rs"
|
|
#"$PROJECT_ROOT/src/basic/keywords/mod.rs"
|
|
|
|
)
|
|
|
|
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
|
|
|
|
# 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")
|
|
|
|
echo "" >> "$OUTPUT_FILE"
|
|
|
|
echo "Approximate token count: $TOKEN_COUNT"
|
|
echo "Context size: $FILE_SIZE bytes"
|
|
|
|
cat "$OUTPUT_FILE" | xclip -selection clipboard
|
|
echo "Content copied to clipboard (xclip)"
|
|
rm -f "$OUTPUT_FILE"
|