This commit addresses an issue where file IDs (or tool call IDs) originating from Gemini sessions were causing validation errors when switching to OpenAI models. OpenAI's API is stricter with ID formats (alphanumeric only) compared to Gemini.
Changes:
- Enable 'sanitizeToolCallIds' for OpenAI in src/agents/transcript-policy.ts.
- Decouple tool call ID sanitization from the full sanitization mode check in src/agents/pi-embedded-helpers/images.ts to allow ID sanitization in 'images-only' mode.
Fixes#3702https://github.com/moltbot/moltbot/issues/3702
- Add ToolCallIdMode type ('standard' | 'strict') for provider compatibility
- Standard mode (default): allows [a-zA-Z0-9_-] for readable session logs
- Strict mode: only [a-zA-Z0-9] for Mistral via OpenRouter
- Update sanitizeSessionMessagesImages to accept toolCallIdMode option
- Export ToolCallIdMode from pi-embedded-helpers barrel
Addresses review feedback on PR #1372 about readability.