refactor(ux): consolidate BMAD skills, update design system, and clean up Prisma generated client

This commit is contained in:
Sepehr Ramezani
2026-04-19 19:21:27 +02:00
parent 5296c4da2c
commit 25529a24b8
2476 changed files with 127934 additions and 101962 deletions

101
.ralph/drivers/codex.sh Executable file
View File

@@ -0,0 +1,101 @@
#!/bin/bash
# OpenAI Codex driver for Ralph
# Provides platform-specific CLI invocation logic for Codex
driver_name() {
echo "codex"
}
driver_display_name() {
echo "OpenAI Codex"
}
driver_cli_binary() {
echo "codex"
}
driver_min_version() {
echo "0.1.0"
}
driver_check_available() {
command -v "$(driver_cli_binary)" &>/dev/null
}
# Codex tool names differ from Claude Code
driver_valid_tools() {
VALID_TOOL_PATTERNS=(
"shell"
"read_file"
"write_file"
"edit_file"
"list_directory"
"search_files"
)
}
driver_supports_tool_allowlist() {
return 1
}
driver_permission_denial_help() {
echo " - $DRIVER_DISPLAY_NAME uses its native sandbox and approval model."
echo " - ALLOWED_TOOLS in $RALPHRC_FILE is ignored for this driver."
echo " - Ralph already runs Codex with --sandbox workspace-write."
echo " - Review Codex approval settings, then restart the loop."
}
# Build Codex CLI command
# Codex uses: codex exec [resume <id>] --json "prompt"
driver_build_command() {
local prompt_file=$1
local loop_context=$2
local session_id=$3
CLAUDE_CMD_ARGS=("$(driver_cli_binary)" "exec")
if [[ ! -f "$prompt_file" ]]; then
echo "ERROR: Prompt file not found: $prompt_file" >&2
return 1
fi
# JSON output
CLAUDE_CMD_ARGS+=("--json")
# Sandbox mode - workspace write access
CLAUDE_CMD_ARGS+=("--sandbox" "workspace-write")
# Session resume — gated on CLAUDE_USE_CONTINUE to respect --no-continue flag
if [[ "$CLAUDE_USE_CONTINUE" == "true" && -n "$session_id" ]]; then
CLAUDE_CMD_ARGS+=("resume" "$session_id")
fi
# Build prompt with context
local prompt_content
prompt_content=$(cat "$prompt_file")
if [[ -n "$loop_context" ]]; then
prompt_content="$loop_context
$prompt_content"
fi
CLAUDE_CMD_ARGS+=("$prompt_content")
}
driver_supports_sessions() {
return 0 # true - Codex supports session resume
}
# Codex JSONL output is already suitable for live display.
driver_supports_live_output() {
return 0 # true
}
driver_prepare_live_command() {
LIVE_CMD_ARGS=("${CLAUDE_CMD_ARGS[@]}")
}
# Codex outputs JSONL events
driver_stream_filter() {
echo 'select(.type == "item.completed" and .item.type == "agent_message") | (.item.text // ([.item.content[]? | select(.type == "output_text") | .text] | join("\n")) // empty)'
}