| |
|
|
| import argparse |
| import os |
| from pathlib import Path |
| import subprocess |
|
|
|
|
| def main() -> None: |
| parser = argparse.ArgumentParser( |
| description="Regenerate vendored app-server schema fixtures" |
| ) |
| parser.add_argument( |
| "--schema-root", |
| type=Path, |
| help="root directory containing the schema fixtures", |
| ) |
| parser.add_argument( |
| "-p", |
| "--prettier", |
| type=Path, |
| help="optional Prettier executable used to format TypeScript files", |
| ) |
| parser.add_argument( |
| "--experimental", |
| action="store_true", |
| help="regenerate the precomputed experimental exports", |
| ) |
| args = parser.parse_args() |
|
|
| workspace_root = Path(__file__).resolve().parents[2] |
| repository_schema_root = workspace_root / "app-server-protocol" / "schema" |
| schema_root = args.schema_root or repository_schema_root |
|
|
| env = os.environ.copy() |
| env["CODEX_APP_SERVER_SCHEMA_ROOT"] = str(schema_root) |
| env["CODEX_APP_SERVER_SCHEMA_EXPERIMENTAL"] = "1" if args.experimental else "0" |
| if args.prettier: |
| env["CODEX_APP_SERVER_SCHEMA_PRETTIER"] = str(args.prettier) |
|
|
| subprocess.run( |
| [ |
| "cargo", |
| "test", |
| "-p", |
| "codex-app-server-protocol", |
| "--lib", |
| "schema_fixtures_tests::write_schema_fixtures_from_env", |
| "--", |
| "--exact", |
| "--ignored", |
| ], |
| cwd=workspace_root, |
| env=env, |
| check=True, |
| ) |
|
|
| |
| if ( |
| not args.experimental |
| and schema_root.resolve() == repository_schema_root.resolve() |
| ): |
| sdk_root = workspace_root.parent / "sdk" / "python" |
| subprocess.run( |
| [ |
| "uv", |
| "run", |
| "--project", |
| str(sdk_root), |
| "--frozen", |
| "--only-group", |
| "test", |
| "python", |
| str(sdk_root / "scripts" / "update_sdk_artifacts.py"), |
| "generate-types", |
| "--schema-dir", |
| str(schema_root / "json"), |
| ], |
| cwd=workspace_root, |
| check=True, |
| ) |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|