diff --git a/skills/kugetsu/scripts/kugetsu b/skills/kugetsu/scripts/kugetsu index 7fbed5b..74dfa52 100755 --- a/skills/kugetsu/scripts/kugetsu +++ b/skills/kugetsu/scripts/kugetsu @@ -9,7 +9,9 @@ INDEX_FILE="$KUGETSU_DIR/index.json" NOTIFICATIONS_FILE="$KUGETSU_DIR/notifications.json" LOGS_DIR="$KUGETSU_DIR/logs" ENV_DIR="${ENV_DIR:-$KUGETSU_DIR/env}" +VERBOSITY_DIR="$KUGETSU_DIR/verbosity" MAX_CONCURRENT_AGENTS="${MAX_CONCURRENT_AGENTS:-3}" +KUGETSU_VERBOSITY="${KUGETSU_VERBOSITY:-default}" # Load user config overrides (~/.kugetsu/config) if [ -f "$KUGETSU_DIR/config" ]; then @@ -545,8 +547,62 @@ cmd_status() { echo "ok" } +get_verbosity_context() { + local verbosity="${KUGETSU_VERBOSITY:-default}" + local verbosity_file="$VERBOSITY_DIR/${verbosity}.md" + + if [ -f "$verbosity_file" ]; then + cat "$verbosity_file" + else + echo "## Verbosity: $verbosity" + fi +} + +init_verbosity_templates() { + mkdir -p "$VERBOSITY_DIR" + + if [ ! -f "$VERBOSITY_DIR/verbose.md" ]; then + cat > "$VERBOSITY_DIR/verbose.md" << 'EOF' +## Verbosity: Verbose + +You are operating in HIGH verbosity mode. Include ALL available context: +- Full command outputs and their results +- Detailed reasoning and thinking process +- All file changes with diffs when relevant +- Complete log excerpts +- Comprehensive status updates +- Ask clarifying questions when uncertain +EOF + fi + + if [ ! -f "$VERBOSITY_DIR/default.md" ]; then + cat > "$VERBOSITY_DIR/default.md" << 'EOF' +## Verbosity: Default + +You are operating in NORMAL verbosity mode. Provide balanced output: +- Standard command outputs and key results +- Moderate reasoning detail +- Important file changes summarized +- Regular status updates +EOF + fi + + if [ ! -f "$VERBOSITY_DIR/quiet.md" ]; then + cat > "$VERBOSITY_DIR/quiet.md" << 'EOF' +## Verbosity: Quiet + +You are operating in QUIET verbosity mode. Keep output minimal: +- Only essential information +- Brief status updates (1-2 sentences) +- Final decisions only +- Yes/No answers when appropriate +EOF + fi +} + cmd_delegate() { local message="${1:-}" + local verbosity="${KUGETSU_VERBOSITY:-default}" if [ -z "$message" ]; then echo "Error: message is required" >&2 @@ -566,7 +622,14 @@ cmd_delegate() { local temp_dir="${KUGETSU_TEMP_DIR:-$HOME/.local/share/opencode/tool-output}" mkdir -p "$ENV_DIR" - local env_sh="set -a; export KUGETSU_TEMP_DIR='$temp_dir'; " + init_verbosity_templates + + local verbosity_context=$(get_verbosity_context) + local full_message="${verbosity_context} + +${message}" + + local env_sh="set -a; export KUGETSU_TEMP_DIR='$temp_dir'; export KUGETSU_VERBOSITY='$verbosity'; " if [ -f "$ENV_DIR/pm-agent.env" ]; then env_sh="${env_sh}source '$ENV_DIR/pm-agent.env'; " elif [ -f "$ENV_DIR/default.env" ]; then @@ -574,9 +637,10 @@ cmd_delegate() { fi env_sh="${env_sh}set +a; " - nohup sh -c "${env_sh}opencode run '$message' --continue --session '$pm_session' >> '$log_file' 2>&1" > /dev/null 2>&1 & + nohup sh -c "${env_sh}opencode run '$full_message' --continue --session '$pm_session' >> '$log_file' 2>&1" > /dev/null 2>&1 & disown echo "Delegated to PM agent (logged to $(basename "$log_file"))" + echo "Verbosity: $verbosity" } cmd_logs() { @@ -990,6 +1054,9 @@ cmd_init() { # Max concurrent dev agents (default: 3) # MAX_CONCURRENT_AGENTS=5 +# Verbosity level for PM agent output (default, verbose, or quiet) +# KUGETSU_VERBOSITY=default + # Git server configurations # Format: GIT_SERVERS["hostname"]="https://hostname" # Add servers with: kugetsu server add