-- 016_agent_actions.sql — queue + audit trail for Little Blue's infra actions. -- Risky actions land here as 'pending' for owner approval; every executed action -- (safe or approved-risky) is recorded with its result. Deliberately separate from -- pending_changes (entity CRUD) to isolate command execution. CREATE TABLE agent_actions ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), action_id text NOT NULL, -- whitelist id from config/actions.json params jsonb NOT NULL DEFAULT '{}'::jsonb, agent_id uuid REFERENCES agents(id), tier text NOT NULL CHECK (tier IN ('safe','risky')), status text NOT NULL DEFAULT 'pending' CHECK (status IN ('pending','executed','failed','rejected')), result jsonb, requested_by jsonb, resolved_by jsonb, created_at timestamptz NOT NULL DEFAULT now(), resolved_at timestamptz ); CREATE INDEX idx_agent_actions_pending ON agent_actions(status) WHERE status='pending';