Add `approvals.message` config that requires human confirmation before
executing outbound messaging tools. Follows the existing exec approval
pattern with in-memory state management and Promise-based waiting.
New components:
- MessageApprovalManager: tracks pending approvals with timeout handling
- Gateway RPC handlers: message.approval.request and message.approval.resolve
- MessageApprovalForwarder: delivers approval requests to chat channels
- Approval interception in runMessageAction with gatewayClient/skipApproval params
Extended /approve command to handle message approvals (IDs starting with "msg-").
Config schema added under approvals.message with options for:
- enabled, mode (session/targets/both), actions, channels
- agentFilter, sessionFilter, targets, timeout
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>