Skip to content

Commit 3cc75c9

Browse files
authored
feat(codegen): generate experimental v2 bindings (#141)
* chore(schema): pin experimental v2 alpha schema * feat(codegen): generate experimental v2 bindings * test(schema): cover experimental v2 bindings * fix(codegen): expose protocol method metadata * fix(codegen): isolate v2 schema semantics
1 parent d2922c2 commit 3cc75c9

19 files changed

Lines changed: 18298 additions & 66 deletions

‎Makefile‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,18 @@ gen-all: ## Generate all code from schema
1111
@uv run ruff check --fix
1212
@uv run ruff format .
1313

14+
.PHONY: gen-v2
15+
gen-v2: ## Generate experimental v2 schema bindings
16+
@echo "🚀 Generating experimental v2 schema bindings"
17+
@uv run scripts/gen_all.py --protocol-version 2
18+
1419
.PHONY: gen-check
1520
gen-check: ## Verify generated schema bindings without changing the worktree
1621
@echo "🚀 Checking generated schema bindings"
1722
@uv run --frozen python -m scripts.gen_schema --check
23+
@uv run --frozen python -m scripts.gen_meta --check
24+
@uv run --frozen python -m scripts.gen_schema --protocol-version 2 --check
25+
@uv run --frozen python -m scripts.gen_meta --protocol-version 2 --check
1826

1927
.PHONY: check
2028
check: ## Run code quality tools.
@@ -23,7 +31,7 @@ check: ## Run code quality tools.
2331
@echo "🚀 Linting code: Running pre-commit via prek"
2432
@uv run prek run -a
2533
@echo "🚀 Static type checking: Running ty"
26-
@uv run ty check --exclude "src/acp/meta.py" --exclude "src/acp/schema.py" --exclude "examples/*.py"
34+
@uv run ty check --exclude "src/acp/meta.py" --exclude "src/acp/schema.py" --exclude "src/acp/experimental/v2/meta.py" --exclude "src/acp/experimental/v2/schema.py" --exclude "examples/*.py"
2735
@echo "🚀 Checking for obsolete dependencies: Running deptry"
2836
@uv run deptry src
2937

‎pyproject.toml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ ignore = [
120120
"tests/*" = ["S101"]
121121
"src/acp/meta.py" = ["ALL"]
122122
"src/acp/schema.py" = ["ALL"]
123+
"src/acp/experimental/v2/meta.py" = ["ALL"]
124+
"src/acp/experimental/v2/schema.py" = ["ALL"]
123125

124126
[tool.ruff.format]
125127
preview = true

‎schema/v2/VERSION‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
refs/tags/schema-v2.0.0-alpha.3

‎schema/v2/meta.json‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"version": 2,
3+
"agentMethods": {
4+
"initialize": "initialize",
5+
"auth_login": "auth/login",
6+
"providers_list": "providers/list",
7+
"providers_set": "providers/set",
8+
"providers_disable": "providers/disable",
9+
"session_new": "session/new",
10+
"session_set_config_option": "session/set_config_option",
11+
"session_prompt": "session/prompt",
12+
"session_cancel": "session/cancel",
13+
"mcp_message": "mcp/message",
14+
"session_list": "session/list",
15+
"session_delete": "session/delete",
16+
"session_fork": "session/fork",
17+
"session_resume": "session/resume",
18+
"session_close": "session/close",
19+
"auth_logout": "auth/logout",
20+
"nes_start": "nes/start",
21+
"nes_suggest": "nes/suggest",
22+
"nes_accept": "nes/accept",
23+
"nes_reject": "nes/reject",
24+
"nes_close": "nes/close",
25+
"document_did_open": "document/didOpen",
26+
"document_did_change": "document/didChange",
27+
"document_did_close": "document/didClose",
28+
"document_did_save": "document/didSave",
29+
"document_did_focus": "document/didFocus"
30+
},
31+
"clientMethods": {
32+
"session_request_permission": "session/request_permission",
33+
"session_update": "session/update",
34+
"mcp_connect": "mcp/connect",
35+
"mcp_message": "mcp/message",
36+
"mcp_disconnect": "mcp/disconnect",
37+
"elicitation_create": "elicitation/create",
38+
"elicitation_complete": "elicitation/complete"
39+
},
40+
"protocolMethods": {
41+
"cancel_request": "$/cancel_request"
42+
}
43+
}

0 commit comments

Comments
 (0)