Skip to content

Commit 157baeb

Browse files
committed
Arazzo 1.1.0
1 parent cbb8208 commit 157baeb

66 files changed

Lines changed: 8418 additions & 5652 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎ARCHITECTURE.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ graph TD
6262
The Frontend's responsibility is to read an input source and translate it into the universal CDD Intermediate Representation (IR).
6363

6464
* **Static Analysis (AST-Driven)**: For `Python` source code, the tool **does not** use dynamic reflection or execute the code. Instead, it reads the source files, generates an Abstract Syntax Tree (AST), and navigates the tree to extract classes, structs, functions, type signatures, API client definitions, server routes, and docstrings.
65-
* **OpenAPI Parsing**: For OpenAPI and JSON Schema inputs, the parser normalizes the structure, resolving internal `$ref`s and extracting properties, endpoints (client or server perspectives), and metadata into the IR.
65+
* **OpenAPI & Arazzo Parsing**: For OpenAPI, JSON Schema, and Arazzo 1.1.0 inputs, the parser normalizes the structure, resolving internal/external `$ref`s, `sourceDescriptions`, `operationPath` JSON Pointers, and `$components` into the IR (`OpenAPI` and `Arazzo` Pydantic models).
6666

6767
### 2. Intermediate Representation (IR)
6868

‎COMPLIANCE.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ This project strives to fully implement the [OpenAPI Specification Version 3.2.0
2424

2525
### Next Steps
2626

27-
Full spec compliance achieved for all major Swagger 2.0 and OpenAPI 3.2.0 concepts, including Webhooks, OAuth Flows, Security Requirements, Links, and Callbacks.
27+
Full spec compliance achieved for all major Swagger 2.0, OpenAPI 3.2.0, and Arazzo 1.1.0 concepts, including Webhooks, OAuth Flows, Security Requirements, Links, Callbacks, and Multi-Step Arazzo Workflows (`from_arazzo` / `to_arazzo`).

‎README.md‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ All implementations share a standardized CLI interface (`cdd [subcommand]`), act
9696
| [`cdd-kotlin`](https://github.com/offscale/cdd-kotlin) | Kotlin (ktor for Multiplatform) | Client; Client CLI; Server | Auto-Admin UI | Swagger 2.0 & OpenAPI 3.2.0 | [![CI](https://github.com/offscale/cdd-kotlin/actions/workflows/ci.yml/badge.svg)](https://github.com/offscale/cdd-kotlin/actions/workflows/ci.yml) |
9797
| [`cdd-php`](https://github.com/SamuelMarks/cdd-php) | PHP | Client; Client CLI; Server | | Swagger 2.0 & OpenAPI 3.2.0 | [![CI](https://github.com/SamuelMarks/cdd-php/actions/workflows/ci.yml/badge.svg)](https://github.com/SamuelMarks/cdd-php/actions/workflows/ci.yml) |
9898
| [`cdd-python`](https://github.com/offscale/cdd-python) | Python | N/A (server building blocks) | CLI ↔ SQL ↔ Pydantic ↔ docs ↔ JSON-schema | N/A | [![Linting, testing, coverage, and release](https://github.com/offscale/cdd-python/workflows/Linting,%20testing,%20coverage,%20and%20release/badge.svg)](https://github.com/offscale/cdd-python/actions) |
99-
| [`cdd-python-all`](https://github.com/offscale/cdd-python-all) | Python | Client; Client CLI; Server | | Swagger 2.0 & OpenAPI 3.2.0 | [![CI](https://github.com/offscale/cdd-python-client/actions/workflows/ci.yml/badge.svg)](https://github.com/offscale/cdd-python-all/actions/workflows/ci.yml) |
99+
| [`cdd-python-all`](https://github.com/offscale/cdd-python-all) | Python | Client; Client CLI; Server | Arazzo 1.1.0 Workflows & MCP | Swagger 2.0, OpenAPI 3.2.0 & Arazzo 1.1.0 | [![CI](https://github.com/offscale/cdd-python-client/actions/workflows/ci.yml/badge.svg)](https://github.com/offscale/cdd-python-all/actions/workflows/ci.yml) |
100100
| [`cdd-ruby`](https://github.com/SamuelMarks/cdd-ruby) | Ruby | Client; Client CLI; Server | | Swagger 2.0 & OpenAPI 3.2.0 | [![CI](https://github.com/SamuelMarks/cdd-ruby/actions/workflows/ci.yml/badge.svg)](https://github.com/SamuelMarks/cdd-ruby/actions/workflows/ci.yml) |
101101
| [`cdd-rust`](https://github.com/SamuelMarks/cdd-rust) | Rust | Client; Client CLI; Server | | Swagger 2.0 & OpenAPI 3.2.0 | [![CI](https://github.com/offscale/cdd-rust/actions/workflows/ci.yml/badge.svg)](https://github.com/offscale/cdd-rust/actions/workflows/ci.yml) |
102102
| [`cdd-sh`](https://github.com/SamuelMarks/cdd-sh) | Shell (/bin/sh) | Client; Client CLI; Server | | Swagger 2.0 & OpenAPI 3.2.0 | [![CI](https://github.com/SamuelMarks/cdd-sh/actions/workflows/ci.yml/badge.svg)](https://github.com/SamuelMarks/cdd-sh/actions/workflows/ci.yml) |
@@ -113,15 +113,17 @@ A true ecosystem requires standardized tooling. Once a developer learns the CDD
113113

114114
#### `cdd-python --help`
115115
```text
116-
usage: cdd-python [-h] [--version] {from_openapi,to_openapi,sync,to_docs_json,serve_json_rpc,mcp} ...
116+
usage: cdd-python [-h] [--version] {from_openapi,to_openapi,from_arazzo,to_arazzo,sync,to_docs_json,serve_json_rpc,mcp} ...
117117
118118
Compiler Driven Development (CDD) compiler and transpiler.
119119
120120
positional arguments:
121-
{from_openapi,to_openapi,sync,to_docs_json,serve_json_rpc,mcp}
121+
{from_openapi,to_openapi,from_arazzo,to_arazzo,sync,to_docs_json,serve_json_rpc,mcp}
122122
from_openapi Generate code from an OpenAPI specification.
123123
to_openapi Parse the existing codebase and extract an authoritative OpenAPI
124124
specification.
125+
from_arazzo Generate code from an Arazzo 1.1.0 specification.
126+
to_arazzo Parse Python workflow code and extract an Arazzo 1.1.0 specification.
125127
sync Sync a directory containing client.py, mock_server.py, test_client.py,
126128
cli_main.py
127129
to_docs_json Convert an OpenAPI specification into a localized, documentation-optimized

‎USAGE.md‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,14 @@ cdd-python from_openapi to_sdk -i openapi.json -o my_client
1212
cdd-python to_openapi -f my_client/client.py -o openapi.json
1313
```
1414

15-
It can also sync directories, generate docs, or serve a JSON-RPC interface.
15+
3. **from_arazzo**: Generate Python workflow orchestrators, CLI runners, FastAPI workflow routes, or E2E pytest suites from Arazzo 1.1.0 JSON.
16+
```bash
17+
cdd-python from_arazzo to_sdk -i arazzo.json -o my_workflows
18+
```
19+
20+
4. **to_arazzo**: Extract Arazzo 1.1.0 JSON from Python workflow code (`workflows.py`, `cli_workflows.py`, `routes/workflows.py`, or `test_workflows.py`).
21+
```bash
22+
cdd-python to_arazzo -f my_workflows/src/workflows.py -o arazzo.json
23+
```
24+
25+
It can also sync directories (`--truth arazzo` or `--truth openapi`), generate docs, or serve a JSON-RPC / MCP interface.

0 commit comments

Comments
 (0)