Skip to content
  •  
  •  
  •  
9 changes: 6 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,13 @@ jobs:
run: |
VERSION=$(cat src/adcp/ADCP_VERSION)
echo "ADCP_VERSION=$VERSION"
# Check if version contains pre-release identifiers (alpha, beta, rc)
if echo "$VERSION" | grep -qE '(alpha|beta|rc)'; then
# Skip regeneration + drift check for pre-release tags (alpha/beta/rc)
# and for `latest`, which is a moving dev snapshot — the committed
# generated types are frozen against the bundle we last synced, and
# CI's fresh sync against today's `latest.tgz` is expected to drift.
if echo "$VERSION" | grep -qE '(alpha|beta|rc)' || [ "$VERSION" = "latest" ]; then
echo "is_prerelease=true" >> $GITHUB_OUTPUT
echo "Pre-release version detected - will skip schema sync (may not be publicly accessible)"
echo "Pre-release / latest version detected - will skip schema sync"
else
echo "is_prerelease=false" >> $GITHUB_OUTPUT
echo "Stable version - will sync schemas from upstream"
Expand Down
11 changes: 7 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "adcp"
version = "3.12.0"
version = "4.0.0b1"
description = "Official Python client for the Ad Context Protocol (AdCP)"
authors = [
{name = "AdCP Community", email = "maintainers@adcontextprotocol.org"}
Expand All @@ -14,7 +14,7 @@ requires-python = ">=3.10"
license = {text = "Apache-2.0"}
keywords = ["adcp", "mcp", "a2a", "protocol", "advertising"]
classifiers = [
"Development Status :: 3 - Alpha",
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
Expand Down Expand Up @@ -45,7 +45,10 @@ dev = [
"mypy>=1.0.0",
"black>=23.0.0",
"ruff>=0.1.0",
"datamodel-code-generator[http]>=0.35.0",
# Pin to exact version: codegen's variant numbering (e.g. CreateMediaBuyResponse1 vs
# CreateMediaBuyResponse) shifts between versions, producing diff churn and breaking
# generated-code imports that reference specific suffixes.
"datamodel-code-generator[http]==0.56.1",
]
docs = [
"pdoc3>=0.10.0",
Expand Down Expand Up @@ -150,6 +153,6 @@ skips = ["B101"] # Allow assert in code (we're not using -O optimization)

[dependency-groups]
dev = [
"datamodel-code-generator>=0.35.0",
"datamodel-code-generator==0.56.1",
"pre-commit>=4.4.0",
]
3 changes: 0 additions & 3 deletions schemas/cache/.hashes.json

This file was deleted.

80 changes: 80 additions & 0 deletions schemas/cache/a2ui/bound-value.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "A2UI Bound Value",
"description": "A value that can be a literal or bound to a path in the data model",
"oneOf": [
{
"type": "object",
"description": "Literal string value",
"properties": {
"literalString": {
"type": "string",
"description": "Static string value"
}
},
"required": [
"literalString"
],
"additionalProperties": false
},
{
"type": "object",
"description": "Literal number value",
"properties": {
"literalNumber": {
"type": "number",
"description": "Static number value"
}
},
"required": [
"literalNumber"
],
"additionalProperties": false
},
{
"type": "object",
"description": "Literal boolean value",
"properties": {
"literalBoolean": {
"type": "boolean",
"description": "Static boolean value"
}
},
"required": [
"literalBoolean"
],
"additionalProperties": false
},
{
"type": "object",
"description": "Path to data model value",
"properties": {
"path": {
"type": "string",
"description": "JSON pointer path to value in data model (e.g., '/products/0/title')"
}
},
"required": [
"path"
],
"additionalProperties": false
},
{
"type": "object",
"description": "Literal with path binding (sets default and binds)",
"properties": {
"literalString": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"literalString",
"path"
],
"additionalProperties": false
}
]
}
Loading
Loading