Upgrading anthropic 0.26 to 0.27
Breaking0.26.1 → 0.27.0Breaking3New2Fixed1Other9
BreakingUpgrade verdict
3 breaking changes.
In plain terms
- The way streamed message events are delivered has changed shape, so code that reads the stream may need updating.
- Streamed tool events now come through the new event iterator, so code consuming them may need updating.
- Stream event type names have been renamed with a Raw prefix, so code referring to the old names must be updated.
Must act 3 items need code or config changes
What you must change
Breaking3
Refactors messages streaming to an event iterator structure.
Refactors tools streaming to an event iterator structure.
Adds a Raw prefix to API stream event type names.
API changes
Generated by DepDelta from published Python source. Not mixed with prose notes.
- added:
export ContentBlockStopEvent - added:
export InputJsonEvent - added:
export MessageStopEvent - added:
export MessageStreamEvent - added:
export TextEvent
- removed:
export AsyncToolsBetaMessageStream - removed:
export AsyncToolsBetaMessageStreamManager - removed:
export AsyncToolsBetaMessageStreamT - removed:
export ToolsBetaMessageStream - removed:
export ToolsBetaMessageStreamManager - removed:
export ToolsBetaMessageStreamT
- removed:
export AsyncBeta - removed:
export AsyncBetaWithRawResponse - removed:
export AsyncBetaWithStreamingResponse - removed:
export Beta - removed:
export BetaWithRawResponse - removed:
export BetaWithStreamingResponse
- removed:
export AsyncBeta - removed:
export AsyncBetaWithRawResponse - removed:
export AsyncBetaWithStreamingResponse - removed:
export AsyncTools - removed:
export AsyncToolsWithRawResponse - removed:
export AsyncToolsWithStreamingResponse - removed:
export Beta - removed:
export BetaWithRawResponse - removed:
export BetaWithStreamingResponse - removed:
export Tools - removed:
export ToolsWithRawResponse - removed:
export ToolsWithStreamingResponse
- removed:
class AsyncBeta(AsyncAPIResource) - removed:
class Beta(SyncAPIResource) - removed:
property AsyncBeta.tools -> AsyncTools - removed:
property AsyncBeta.with_raw_response -> AsyncBetaWithRawResponse - removed:
property AsyncBeta.with_streaming_response -> AsyncBetaWithStreamingResponse - removed:
property Beta.tools -> Tools - removed:
property Beta.with_raw_response -> BetaWithRawResponse - removed:
property Beta.with_streaming_response -> BetaWithStreamingResponse
- removed:
export AsyncMessages - removed:
export AsyncMessagesWithRawResponse - removed:
export AsyncMessagesWithStreamingResponse - removed:
export AsyncTools - removed:
export AsyncToolsWithRawResponse - removed:
export AsyncToolsWithStreamingResponse - removed:
export Messages - removed:
export MessagesWithRawResponse - removed:
export MessagesWithStreamingResponse - removed:
export Tools - removed:
export ToolsWithRawResponse - removed:
export ToolsWithStreamingResponse
- removed:
async method AsyncMessages.create(*, max_tokens: int, messages: Iterable[ToolsBetaMessageParam], model: str, metadata: message_create_params.Metadata | NotGiven=…, stop_sequences: List[str] | NotGiven=…, stream: Literal[False] | NotGiven=…, system: str | NotGiven=…, temperature: float | NotGiven=…, tool_choice: message_create_params.ToolChoice | NotGiven=…, tools: Iterable[ToolParam] | NotGiven=…… - removed:
class AsyncMessages(AsyncAPIResource) - removed:
class Messages(SyncAPIResource) - removed:
method AsyncMessages.stream(*, max_tokens: int, messages: Iterable[ToolsBetaMessageParam], model: str, metadata: message_create_params.Metadata | NotGiven=…, stop_sequences: List[str] | NotGiven=…, system: str | NotGiven=…, temperature: float | NotGiven=…, tool_choice: message_create_params.ToolChoice | NotGiven=…, tools: Iterable[ToolParam] | NotGiven=…, top_k: int | NotGiven=…, top_p: float | N… - removed:
method Messages.create(*, max_tokens: int, messages: Iterable[ToolsBetaMessageParam], model: str, metadata: message_create_params.Metadata | NotGiven=…, stop_sequences: List[str] | NotGiven=…, stream: Literal[False] | NotGiven=…, system: str | NotGiven=…, temperature: float | NotGiven=…, tool_choice: message_create_params.ToolChoice | NotGiven=…, tools: Iterable[ToolParam] | NotGiven=…, top_k: in… - removed:
method Messages.stream(*, max_tokens: int, messages: Iterable[ToolsBetaMessageParam], model: str, metadata: message_create_params.Metadata | NotGiven=…, stop_sequences: List[str] | NotGiven=…, system: str | NotGiven=…, temperature: float | NotGiven=…, tool_choice: message_create_params.ToolChoice | NotGiven=…, tools: Iterable[ToolParam] | NotGiven=…, top_k: int | NotGiven=…, top_p: float | NotGiv… - removed:
property AsyncMessages.with_raw_response -> AsyncMessagesWithRawResponse - removed:
property AsyncMessages.with_streaming_response -> AsyncMessagesWithStreamingResponse - removed:
property Messages.with_raw_response -> MessagesWithRawResponse - removed:
property Messages.with_streaming_response -> MessagesWithStreamingResponse
- removed:
class AsyncTools(AsyncAPIResource) - removed:
class Tools(SyncAPIResource) - removed:
property AsyncTools.messages -> AsyncMessages - removed:
property AsyncTools.with_raw_response -> AsyncToolsWithRawResponse - removed:
property AsyncTools.with_streaming_response -> AsyncToolsWithStreamingResponse - removed:
property Tools.messages -> Messages - removed:
property Tools.with_raw_response -> ToolsWithRawResponse - removed:
property Tools.with_streaming_response -> ToolsWithStreamingResponse
- added:
export InputJsonDelta - added:
export RawContentBlockDeltaEvent - added:
export RawContentBlockStartEvent - added:
export RawContentBlockStopEvent - added:
export RawMessageDeltaEvent - added:
export RawMessageStartEvent - added:
export RawMessageStopEvent - added:
export RawMessageStreamEvent - added:
export ToolParam - added:
export ToolResultBlockParam - added:
export ToolUseBlock - added:
export ToolUseBlockParam
- removed:
export InputJsonDelta - removed:
export MessageCreateParams - removed:
export ToolParam - removed:
export ToolResultBlockParam - removed:
export ToolUseBlock - removed:
export ToolUseBlockParam - removed:
export ToolsBetaContentBlock - removed:
export ToolsBetaContentBlockDeltaEvent - removed:
export ToolsBetaContentBlockStartEvent - removed:
export ToolsBetaMessage - removed:
export ToolsBetaMessageParam - removed:
export ToolsBetaMessageStreamEvent
- removed:
class InputJsonDelta(BaseModel) - removed:
field InputJsonDelta.partial_json: str - removed:
field InputJsonDelta.type: Literal['input_json_delta']
- removed:
class MessageCreateParamsBase(TypedDict) - removed:
class MessageCreateParamsNonStreaming(MessageCreateParamsBase) - removed:
class MessageCreateParamsStreaming(MessageCreateParamsBase) - removed:
class Metadata(TypedDict) - removed:
class ToolChoiceToolChoiceAny(TypedDict) - removed:
class ToolChoiceToolChoiceAuto(TypedDict) - removed:
class ToolChoiceToolChoiceTool(TypedDict) - removed:
field MessageCreateParamsBase.max_tokens: Required[int] - removed:
field MessageCreateParamsBase.messages: Required[Iterable[ToolsBetaMessageParam]] - removed:
field MessageCreateParamsBase.metadata: Metadata - removed:
field MessageCreateParamsBase.model: Required[str] - removed:
field MessageCreateParamsBase.stop_sequences: List[str] - removed:
field MessageCreateParamsBase.system: str - removed:
field MessageCreateParamsBase.temperature: float - removed:
field MessageCreateParamsBase.tool_choice: ToolChoice - removed:
field MessageCreateParamsBase.tools: Iterable[ToolParam] - removed:
field MessageCreateParamsBase.top_k: int - removed:
field MessageCreateParamsBase.top_p: float - removed:
field MessageCreateParamsNonStreaming.stream: Literal[False] - removed:
field MessageCreateParamsStreaming.stream: Required[Literal[True]] - removed:
field Metadata.user_id: Optional[str] - removed:
field ToolChoiceToolChoiceAny.type: Required[Literal['any']] - removed:
field ToolChoiceToolChoiceAuto.type: Required[Literal['auto']] - removed:
field ToolChoiceToolChoiceTool.name: Required[str] - removed:
field ToolChoiceToolChoiceTool.type: Required[Literal['tool']] - removed:
variable ToolChoice
- removed:
class ToolParam(TypedDict) - removed:
field ToolParam.description: str - removed:
field ToolParam.input_schema: Required[InputSchema] - removed:
field ToolParam.name: Required[str] - removed:
variable InputSchema
- removed:
class ToolResultBlockParam(TypedDict) - removed:
field ToolResultBlockParam.content: Iterable[Content] - removed:
field ToolResultBlockParam.is_error: bool - removed:
field ToolResultBlockParam.tool_use_id: Required[str] - removed:
field ToolResultBlockParam.type: Required[Literal['tool_result']] - removed:
variable Content
- removed:
class ToolUseBlock(BaseModel) - removed:
field ToolUseBlock.id: str - removed:
field ToolUseBlock.input: object - removed:
field ToolUseBlock.name: str - removed:
field ToolUseBlock.type: Literal['tool_use']
- removed:
class ToolUseBlockParam(TypedDict) - removed:
field ToolUseBlockParam.id: Required[str] - removed:
field ToolUseBlockParam.input: Required[object] - removed:
field ToolUseBlockParam.name: Required[str] - removed:
field ToolUseBlockParam.type: Required[Literal['tool_use']]
- removed:
variable ToolsBetaContentBlock
- removed:
class ToolsBetaContentBlockDeltaEvent(BaseModel) - removed:
field ToolsBetaContentBlockDeltaEvent.delta: Delta - removed:
field ToolsBetaContentBlockDeltaEvent.index: int - removed:
field ToolsBetaContentBlockDeltaEvent.type: Literal['content_block_delta'] - removed:
variable Delta
- removed:
class ToolsBetaContentBlockStartEvent(BaseModel) - removed:
field ToolsBetaContentBlockStartEvent.content_block: ContentBlock - removed:
field ToolsBetaContentBlockStartEvent.index: int - removed:
field ToolsBetaContentBlockStartEvent.type: Literal['content_block_start'] - removed:
variable ContentBlock
- removed:
class ToolsBetaMessage(BaseModel) - removed:
field ToolsBetaMessage.content: List[ToolsBetaContentBlock] - removed:
field ToolsBetaMessage.id: str - removed:
field ToolsBetaMessage.model: str - removed:
field ToolsBetaMessage.role: Literal['assistant'] - removed:
field ToolsBetaMessage.stop_reason: Optional[Literal['end_turn', 'max_tokens', 'stop_sequence', 'tool_use']] - removed:
field ToolsBetaMessage.stop_sequence: Optional[str] - removed:
field ToolsBetaMessage.type: Literal['message'] - removed:
field ToolsBetaMessage.usage: Usage
- removed:
class ToolsBetaMessageParam(TypedDict) - removed:
field ToolsBetaMessageParam.content: Required[Union[str, Iterable[Union[TextBlockParam, ImageBlockParam, ToolUseBlockParam, ToolResultBlockParam, ToolsBetaContentBlock]]]] - removed:
field ToolsBetaMessageParam.role: Required[Literal['user', 'assistant']]
- removed:
variable ToolsBetaMessageStreamEvent
- removed:
class ContentBlockDeltaEvent(BaseModel) - removed:
field ContentBlockDeltaEvent.delta: TextDelta - removed:
field ContentBlockDeltaEvent.index: int - removed:
field ContentBlockDeltaEvent.type: Literal['content_block_delta'] - added:
variable ContentBlockDeltaEvent
- removed:
class ContentBlockStartEvent(BaseModel) - removed:
field ContentBlockStartEvent.content_block: TextBlock - removed:
field ContentBlockStartEvent.index: int - removed:
field ContentBlockStartEvent.type: Literal['content_block_start'] - added:
variable ContentBlockStartEvent
- removed:
class ContentBlockStopEvent(BaseModel) - removed:
field ContentBlockStopEvent.index: int - removed:
field ContentBlockStopEvent.type: Literal['content_block_stop'] - added:
variable ContentBlockStopEvent
- added:
class InputJsonDelta(BaseModel) - added:
field InputJsonDelta.partial_json: str - added:
field InputJsonDelta.type: Literal['input_json_delta']
- changed:
field Message.content: List[TextBlock] → field Message.content: List[ContentBlock] - changed:
field Message.stop_reason: Optional[Literal['end_turn', 'max_tokens', 'stop_sequence']] → field Message.stop_reason: Optional[Literal['end_turn', 'max_tokens', 'stop_sequence', 'tool_use']]
- added:
class ToolChoiceToolChoiceAny(TypedDict) - added:
class ToolChoiceToolChoiceAuto(TypedDict) - added:
class ToolChoiceToolChoiceTool(TypedDict) - added:
field MessageCreateParamsBase.tool_choice: ToolChoice - added:
field MessageCreateParamsBase.tools: Iterable[ToolParam] - added:
field ToolChoiceToolChoiceAny.type: Required[Literal['any']] - added:
field ToolChoiceToolChoiceAuto.type: Required[Literal['auto']] - added:
field ToolChoiceToolChoiceTool.name: Required[str] - added:
field ToolChoiceToolChoiceTool.type: Required[Literal['tool']] - added:
variable ToolChoice
- removed:
class Delta(BaseModel) - removed:
class MessageDeltaEvent(BaseModel) - removed:
field Delta.stop_reason: Optional[Literal['end_turn', 'max_tokens', 'stop_sequence']] - removed:
field Delta.stop_sequence: Optional[str] - removed:
field MessageDeltaEvent.delta: Delta - removed:
field MessageDeltaEvent.type: Literal['message_delta'] - removed:
field MessageDeltaEvent.usage: MessageDeltaUsage - added:
variable MessageDeltaEvent
- changed:
field MessageParam.content: Required[Union[str, Iterable[Union[TextBlockParam, ImageBlockParam, ContentBlock]]]] → field MessageParam.content: Required[Union[str, Iterable[Union[TextBlockParam, ImageBlockParam, ToolUseBlockParam, ToolResultBlockParam, ContentBlock]]]]
- removed:
class MessageStartEvent(BaseModel) - removed:
field MessageStartEvent.message: Message - removed:
field MessageStartEvent.type: Literal['message_start'] - added:
variable MessageStartEvent
- removed:
class MessageStopEvent(BaseModel) - removed:
field MessageStopEvent.type: Literal['message_stop'] - added:
variable MessageStopEvent
- added:
class RawContentBlockDeltaEvent(BaseModel) - added:
field RawContentBlockDeltaEvent.delta: Delta - added:
field RawContentBlockDeltaEvent.index: int - added:
field RawContentBlockDeltaEvent.type: Literal['content_block_delta'] - added:
variable Delta
- added:
class RawContentBlockStartEvent(BaseModel) - added:
field RawContentBlockStartEvent.content_block: ContentBlock - added:
field RawContentBlockStartEvent.index: int - added:
field RawContentBlockStartEvent.type: Literal['content_block_start'] - added:
variable ContentBlock
- added:
class RawContentBlockStopEvent(BaseModel) - added:
field RawContentBlockStopEvent.index: int - added:
field RawContentBlockStopEvent.type: Literal['content_block_stop']
- added:
class Delta(BaseModel) - added:
class RawMessageDeltaEvent(BaseModel) - added:
field Delta.stop_reason: Optional[Literal['end_turn', 'max_tokens', 'stop_sequence', 'tool_use']] - added:
field Delta.stop_sequence: Optional[str] - added:
field RawMessageDeltaEvent.delta: Delta - added:
field RawMessageDeltaEvent.type: Literal['message_delta'] - added:
field RawMessageDeltaEvent.usage: MessageDeltaUsage
- added:
class RawMessageStartEvent(BaseModel) - added:
field RawMessageStartEvent.message: Message - added:
field RawMessageStartEvent.type: Literal['message_start']
- added:
class RawMessageStopEvent(BaseModel) - added:
field RawMessageStopEvent.type: Literal['message_stop']
- added:
variable RawMessageStreamEvent
- added:
class ToolParam(TypedDict) - added:
field ToolParam.description: str - added:
field ToolParam.input_schema: Required[InputSchema] - added:
field ToolParam.name: Required[str] - added:
variable InputSchema
- added:
class ToolResultBlockParam(TypedDict) - added:
field ToolResultBlockParam.content: Iterable[Content] - added:
field ToolResultBlockParam.is_error: bool - added:
field ToolResultBlockParam.tool_use_id: Required[str] - added:
field ToolResultBlockParam.type: Required[Literal['tool_result']] - added:
variable Content
- added:
class ToolUseBlock(BaseModel) - added:
field ToolUseBlock.id: str - added:
field ToolUseBlock.input: object - added:
field ToolUseBlock.name: str - added:
field ToolUseBlock.type: Literal['tool_use']
- added:
class ToolUseBlockParam(TypedDict) - added:
field ToolUseBlockParam.id: Required[str] - added:
field ToolUseBlockParam.input: Required[object] - added:
field ToolUseBlockParam.name: Required[str] - added:
field ToolUseBlockParam.type: Required[Literal['tool_use']]