Commit edefef9
Fix ToolResultBlockParam to support both string and array content formats
The API docs state that tool_result content can be either a string
(e.g. "content": "15 degrees") or an array of content blocks. The SDK
previously only supported the array format, causing deserialization
errors when content was a plain string.
Changes:
- Add ContentString field to ToolResultBlockParam and BetaToolResultBlockParam
for explicit string content serialization
- Update MarshalJSON to output content as a string when ContentString is set
- Update UnmarshalJSON to handle string content by normalizing it into a
Content array with a single TextBlock
- Update NewToolResultBlock to use string format (matches API docs examples)
- Add NewToolResultBlockFromArray for explicit array content construction
- Add NewBetaToolResultStringBlockParam for explicit string content
- Add comprehensive tests for both formats
Fixes #182
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 2bec06f commit edefef9
3 files changed
Lines changed: 366 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| |||
7943 | 7944 | | |
7944 | 7945 | | |
7945 | 7946 | | |
| 7947 | + | |
| 7948 | + | |
| 7949 | + | |
| 7950 | + | |
| 7951 | + | |
| 7952 | + | |
7946 | 7953 | | |
7947 | 7954 | | |
7948 | 7955 | | |
7949 | 7956 | | |
7950 | 7957 | | |
7951 | 7958 | | |
| 7959 | + | |
| 7960 | + | |
| 7961 | + | |
| 7962 | + | |
| 7963 | + | |
| 7964 | + | |
| 7965 | + | |
| 7966 | + | |
| 7967 | + | |
| 7968 | + | |
| 7969 | + | |
| 7970 | + | |
| 7971 | + | |
| 7972 | + | |
| 7973 | + | |
| 7974 | + | |
7952 | 7975 | | |
7953 | 7976 | | |
7954 | 7977 | | |
7955 | 7978 | | |
| 7979 | + | |
| 7980 | + | |
| 7981 | + | |
| 7982 | + | |
| 7983 | + | |
| 7984 | + | |
| 7985 | + | |
| 7986 | + | |
| 7987 | + | |
| 7988 | + | |
| 7989 | + | |
| 7990 | + | |
| 7991 | + | |
| 7992 | + | |
| 7993 | + | |
| 7994 | + | |
| 7995 | + | |
| 7996 | + | |
| 7997 | + | |
| 7998 | + | |
| 7999 | + | |
| 8000 | + | |
| 8001 | + | |
7956 | 8002 | | |
7957 | 8003 | | |
7958 | 8004 | | |
| |||
7966 | 8012 | | |
7967 | 8013 | | |
7968 | 8014 | | |
| 8015 | + | |
| 8016 | + | |
| 8017 | + | |
| 8018 | + | |
| 8019 | + | |
| 8020 | + | |
| 8021 | + | |
| 8022 | + | |
| 8023 | + | |
| 8024 | + | |
7969 | 8025 | | |
7970 | 8026 | | |
7971 | 8027 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1830 | 1830 | | |
1831 | 1831 | | |
1832 | 1832 | | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
| 1838 | + | |
| 1839 | + | |
| 1840 | + | |
| 1841 | + | |
| 1842 | + | |
| 1843 | + | |
1833 | 1844 | | |
1834 | 1845 | | |
1835 | | - | |
1836 | | - | |
1837 | | - | |
1838 | | - | |
| 1846 | + | |
| 1847 | + | |
1839 | 1848 | | |
1840 | 1849 | | |
1841 | 1850 | | |
| |||
6725 | 6734 | | |
6726 | 6735 | | |
6727 | 6736 | | |
| 6737 | + | |
| 6738 | + | |
| 6739 | + | |
| 6740 | + | |
| 6741 | + | |
| 6742 | + | |
6728 | 6743 | | |
6729 | 6744 | | |
6730 | 6745 | | |
6731 | 6746 | | |
6732 | 6747 | | |
6733 | 6748 | | |
| 6749 | + | |
| 6750 | + | |
| 6751 | + | |
| 6752 | + | |
| 6753 | + | |
| 6754 | + | |
| 6755 | + | |
| 6756 | + | |
| 6757 | + | |
| 6758 | + | |
| 6759 | + | |
| 6760 | + | |
| 6761 | + | |
| 6762 | + | |
| 6763 | + | |
| 6764 | + | |
| 6765 | + | |
| 6766 | + | |
6734 | 6767 | | |
6735 | 6768 | | |
6736 | 6769 | | |
6737 | 6770 | | |
| 6771 | + | |
| 6772 | + | |
| 6773 | + | |
| 6774 | + | |
| 6775 | + | |
| 6776 | + | |
| 6777 | + | |
| 6778 | + | |
| 6779 | + | |
| 6780 | + | |
| 6781 | + | |
| 6782 | + | |
| 6783 | + | |
| 6784 | + | |
| 6785 | + | |
| 6786 | + | |
| 6787 | + | |
| 6788 | + | |
| 6789 | + | |
| 6790 | + | |
| 6791 | + | |
| 6792 | + | |
| 6793 | + | |
| 6794 | + | |
| 6795 | + | |
6738 | 6796 | | |
6739 | 6797 | | |
6740 | 6798 | | |
| |||
0 commit comments