# What changed in ag-ui-a2ui-toolkit

> 34 changes in ag-ui-a2ui-toolkit 0.0 from its official release notes, upgrade guides and advisories: 17 breaking, 4 deprecations, 8 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/pypi/ag-ui-a2ui-toolkit/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## ag-ui-a2ui-toolkit 0.0

### Breaking changes

- Python JSON Patch entries are typed operation models, so read fields as attributes instead of dictionary keys; use model_dump(by_alias=True) when dictionaries are needed. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- TypeScript validators move to this subpath; importing them requires zod, while the main @ag-ui/core entry contains types and constants only. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The .NET string-or-parts union is renamed from AGUIUserContent and now supports tool message and tool-call result content. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- Capability validation now requires maxIterations to be a non-negative integer within JavaScript's safe range. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- Capability validation now requires maxExecutionTime to be a non-negative integer within JavaScript's safe range. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- Optional protocol fields must be absent instead of null; TypeScript encoders and outgoing HTTP inputs omit them, and the client normalizes listed legacy nulls before validation. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The source type is renamed from InputContentSource and gains a third arm, FileSource, for provider-issued handles to already-uploaded bytes. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- Repeated occurrences of singular protobuf message fields are merged: later scalar values win, repeated list entries append, and omitted fields preserve earlier values. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The client fails runs when reasoning messages or spans are unmatched or remain open when RUN_FINISHED arrives. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The TypeScript type makes context non-optional and presents an absent wire value as an empty array. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The TypeScript type makes tools non-optional and presents an absent wire value as an empty array. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- Python JSON Patch entries are typed operation models, so read fields as attributes instead of dictionary keys; use model_dump(by_alias=True) when dictionaries are needed. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The public type is renamed from SubAgentInfo; SDKs differ on whether the old name remains as a temporary alias. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The multi-agent capability field and wire key are renamed from subAgents or sub_agents to subagents; the old wire key is treated as unknown. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- Tool-call result content can now be a string or ContentPart array, so code treating it as a string must narrow it first. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- Tool message content can now be a string or ContentPart array, so code treating it as a string must narrow it first. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The TypeScript client drops unknown event types and strips unknown properties from known events and RunAgentInput with warnings; malformed known values fail the run. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)

### Deprecations

- Use maxProtocolVersion in place of the deprecated AbstractAgent.maxVersion; overrides of the old name still work and warn once per process. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The TypeScript content type is renamed from InputContent; the old name remains a deprecated alias. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The content type is renamed from ImageInputContent; audio, video, and document types follow the same naming change, with old names retained as aliases. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The content type is renamed from TextInputContent; the old name remains a deprecated alias. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)

### New APIs and options

- Indicates whether flattening content to text would lose media. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- Every content part gains an optional id. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- Flattens text parts by concatenating them for callers that need text from content. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- Adds a source variant for a model-provider handle to bytes already uploaded to it; do not treat its value as a URL. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- .NET adds models, JSON handling, and protobuf mappers for subagent events. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- .NET adds models, JSON handling, and protobuf mappers for subagent events. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- .NET adds models, JSON handling, and protobuf mappers for subagent events. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- TextPart gains optional metadata, matching the media parts. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)

### Behavior and default changes

- .NET stream readers now skip unknown event types with a trace warning, though decoding a single unknown event still throws this exception. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- .NET explicitly registers int in the source-generated serializer context for ahead-of-time compilation. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- A 1.0 producer must declare its own protocol version on RUN_STARTED; middleware and proxies must preserve the producer's declaration. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- The TypeScript client declares protocolVersion: "1.0" on every RunAgentInput; pinning maxProtocolVersion below the package version omits the field. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
- zod becomes an optional peer dependency of @ag-ui/core and is needed only when using its validators. (0.0.0) — [upgrade guide](https://docs.ag-ui.com/migrating-to-1-0)
