-
Notifications
You must be signed in to change notification settings - Fork 1
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see whatβs changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: adcontextprotocol/adcp-client-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.8.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: adcontextprotocol/adcp-client-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.9.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 3 commits
- 50 files changed
- 3 contributors
Commits on Nov 20, 2025
-
feat: add missing AdCP protocol methods to CLI and client (#71)
* feat: add list_tools command to CLI dispatch table Adds support for the list_tools protocol introspection command in the CLI. Previously, list_tools was available as a client method but was not exposed through the CLI tool dispatch system. Changes: - Add list_tools to TOOL_DISPATCH table in __main__.py - Handle list_tools specially since it takes no parameters and returns list[str] - Fix TaskResult success field to be False when status is FAILED - Add comprehensive tests for list_tools dispatch and invalid tool names Fixes issue where CLI did not expose the list_tools introspection method that is available on the ADCPClient class. π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: add missing AdCP protocol methods to client and CLI Adds four missing AdCP protocol methods that had schemas but were not implemented in the Python client: - preview_creative (existed in client, now added to CLI) - create_media_buy (new to both client and CLI) - update_media_buy (new to both client and CLI) - build_creative (new to both client and CLI) Changes: - Add missing request/response type imports to client.py - Implement create_media_buy, update_media_buy, build_creative in ADCPClient - Add abstract methods to base protocol adapter - Implement methods in MCP and A2A adapters - Add all four tools to CLI TOOL_DISPATCH table with lazy type initialization All 14 AdCP protocol tools are now fully supported in both the client API and CLI interface. π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: trigger CI after PR title fix * test: add coverage for new protocol methods - Add assertions for preview_creative, create_media_buy, update_media_buy, build_creative in test_all_client_methods - Document that complex schema methods are tested separately - Ensures all 4 new client methods are verified to exist Addresses code review feedback on test coverage. * docs: enhance docstrings for media buy and creative methods - Add detailed contextual descriptions for create_media_buy, update_media_buy, and build_creative - Include comprehensive parameter explanations with field breakdowns - Add usage examples demonstrating typical patterns - Document response structure and expected data fields - Explain discriminated union usage in update_media_buy Improves developer experience by providing clear guidance on when and how to use these protocol methods. * docs: add comprehensive workflow examples to README - Add 'Workflow Examples' section demonstrating end-to-end usage - Document complete media buy workflow (discovery β create β update) - Document complete creative workflow (list formats β preview β build) - Show integrated multi-agent workflow combining both - Reorganize 'Available Tools' section to group Creative Management methods - Include code examples with clear step-by-step comments Makes it easier for developers to understand typical usage patterns and how different protocol methods work together in real-world scenarios. * fix: update types for schema changes in media buy responses The upstream AdCP schemas changed: - create_media_buy_response and update_media_buy_response now use the canonical Package type instead of defining custom types - get_signals and activate_signal changed 'destinations' field to 'deployments' - New schema types: asset-content-type, format-category Changes: - Remove obsolete AffectedPackage type (replaced by canonical Package) - Remove obsolete CreatedPackageReference alias (schema now uses full Package everywhere) - Update type imports in stable.py, __init__.py, and aliases.py - Regenerate types from latest schemas - Update test data to use 'deployments' instead of 'destinations' - Update package alias tests to reflect unified Package type All 297 tests passing. --------- Co-authored-by: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for f9432a3 - Browse repository at this point
Copy the full SHA f9432a3View commit details -
feat: integrate AdCP schema improvements (PR #222 + #223) (#73)
* feat: resolve schema collisions with AssetContentType, FormatCategory, and unified Package Implements changes from upstream AdCP PR #222 and PR #223: **New Types (PR #222)** - AssetContentType: Consolidated enum for asset content types (13 values) - FormatCategory: Semantic enum for format categories (7 values) **Unified Package (PR #223)** - create_media_buy and update_media_buy now return full Package objects - Removed CreatedPackageReference (deprecated) - Better API consistency and developer experience **Breaking Changes** - Removed CreatedPackageReference: use Package directly - Removed AffectedPackage: removed from upstream schemas **Backward Compatibility** - AssetType maintained as deprecated alias to AssetContentType Test results: 283/295 passing (12 failures for removed CreatedPackageReference - expected) π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * test: remove obsolete CreatedPackageReference tests Removed 5 test functions that tested CreatedPackageReference since this type was removed in AdCP PR #223. The PR unified Package responses so that both create_media_buy and update_media_buy now return full Package objects instead of minimal references. Removed tests: - test_package_type_aliases_imports - test_package_type_aliases_point_to_correct_modules - test_package_type_aliases_have_correct_fields - test_package_type_aliases_in_exports - test_package_aliases_can_instantiate All 290 tests now pass. π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs: consolidate schema analysis into changelog, remove temp docs Removed temporary documentation files (SCHEMA_COLLISION_PROPOSAL.md, UPSTREAM_SCHEMA_RECOMMENDATIONS.md) that were used during analysis. Enhanced CHANGELOG_ENTRY.md to include: - Detailed description of upstream schema improvements (PR #222 + #223) - Complete list of new types with all enum values - Expanded migration guide with more examples - Upstream recommendations identified during integration The key findings (orphaned asset-type.json, enum organization suggestions, discriminator standardization opportunities) are now captured in the changelog for future reference. π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: remove orphaned asset-type.json and update schemas Upstream PR #222 removed the orphaned asset-type.json schema file. Our local cache had stale copies that were no longer referenced upstream. Changes: - Removed stale asset-type.json from schemas/cache/1.0.0/ - Removed asset_type.py generated file (no longer has upstream schema) - Removed orphaned type exports: AssetTypeSchema, ContentLength, Dimensions, Duration, FileSize, Quality, Requirements - Added deprecation alias: AssetType = AssetContentType - Synced 6 updated schemas (deployment, destination, activate-signal, get-signals) The sync discovered asset-type.json was 404 upstream - it was removed in PR #222 as part of the enum consolidation work. Tests: 288/290 passing (2 failures in signals tests due to schema API changes from destinations β deployments in upstream) π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs: update changelog to reflect upstream already removed asset-type.json The orphaned asset-type.json was already removed by the AdCP team in PR #222. Updated changelog to acknowledge this was properly handled upstream. π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: automatically remove orphaned schemas during sync Added automatic cleanup of schema files that no longer exist upstream. This prevents stale cached schemas from causing issues when upstream removes or renames schema files. Changes: - Scan for JSON files in cache that aren't in the upstream schema list - Remove orphaned files and their empty parent directories - Report removed count in sync summary - Updated script documentation to explain new feature Example output: Cleaning up orphaned schemas: β asset-type.json (removed - no longer in upstream) β core/asset-type.json (removed - no longer in upstream) This would have automatically caught the stale asset-type.json files that were orphaned after PR #222. π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: update signals API tests for destinations β deployments change Upstream schema updates changed the signals API from using 'destinations' to 'deployments'. Updated test fixtures to match new API structure. Changes: - GetSignalsRequest.deliver_to.destinations β deployments - ActivateSignalRequest.destinations β deployments Tests now passing: 290/290 (100%) π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs: remove temporary changelog entry file Release Please will automatically generate changelog from commits. π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: resolve linter errors in stable.py and __init__.py - Fix import sorting per ruff I001 rules - Fix line length by moving comment above import - Remove orphaned 'Requirements' from __all__ (type was removed with asset-type.json) All linter checks now passing. π€ Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for d61ca33 - Browse repository at this point
Copy the full SHA d61ca33View commit details -
chore(main): release 2.9.0 (#72)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for be28a7f - Browse repository at this point
Copy the full SHA be28a7fView commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we canβt render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v2.8.0...v2.9.0