| feat(tools): enrich read_file multimodal support
Add numbered text ranges, PDF/image/notebook reads, unchanged-read stubs, and multimodal tool_result handling so rich file reads reach providers without being downgraded to text.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 15 天前 |
| feat: add model runtime foundation
Co-authored-by: Cursor <cursoragent@cursor.com>
| 26 天前 |
| fix(model): deep-clone nested content in cloneMessages
cloneMessages used spread to shallow-copy content blocks, leaving
CanonicalToolResultBlock.content and CanonicalToolCallBlock.input
as shared references between original and clone. Extract a shared
clone utility that deep-copies these nested structures and replace
three duplicate private implementations.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 8 天前 |
| feat(image): add truncated image validation and multimodal error recovery
- readFile: validate image integrity via EOI marker / sharp decode, attempt re-encode on corruption
- model errors: detect 'failed to apply processor' pattern, mark recoverableViaImageStrip
- context recovery: new strip_images_and_retry decision path
- agent loop: handle strip_images_and_retry by replacing image blocks with text placeholders
- fallback chain: exclude image-strip-recoverable errors from model fallback
Co-authored-by: Cursor <cursoragent@cursor.com>
| 12 天前 |
| feat(tools): enrich read_file multimodal support
Add numbered text ranges, PDF/image/notebook reads, unchanged-read stubs, and multimodal tool_result handling so rich file reads reach providers without being downgraded to text.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 15 天前 |
| feat: improve attachment and tool result handling
Co-authored-by: Cursor <cursoragent@cursor.com>
| 15 天前 |