Files
workflows-py/scripts
Terry Zhao 91d041f2fd feat: Add TypeScript SDK generation and publishing pipeline (#83)
* inital commit

* feat: Add TypeScript SDK generation and publishing pipeline

- Add @hey-api/openapi-ts based SDK generation from Starlette OpenAPI schema
- Create unified release workflow with separate jobs for Python and TypeScript
- Add version validation to ensure Git tags match pyproject.toml
- Configure SDK to use @llamaindex/workflows-client package name
- Add CI workflow to validate SDK generation on every PR
- Use pnpm as package manager for Node.js operations
- Add pyyaml dependency for OpenAPI schema generation

The SDK is treated as a build artifact, generated from the Python server's
OpenAPI specification. Version synchronization is maintained by using
pyproject.toml as the single source of truth.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix lint

* fix

* rebase main

* fix

* fix

* fix ci

* refactor: Simplify to only publish OpenAPI spec as release artifact

- Remove TypeScript SDK generation infrastructure
- Add OpenAPI spec generation to release workflow
- Add version validation to ensure tag matches pyproject.toml
- Add trigger to notify llama-ui for SDK generation
- Keep workflow changes minimal from original

The SDK generation will now be handled in the llama-ui repository,
which can fetch the OpenAPI spec from releases and generate the SDK.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: Add smart SDK update triggering with change type detection

- Add workflow_dispatch inputs for manual server change type and description
- Create script to auto-detect change type from semantic version tags
- Add comprehensive tests using pytest-style functions with mock data
- Only trigger SDK update when there are server/API changes
- Pass change type and description to llama-ui for proper versioning
- Use tomllib for proper TOML parsing in validate_version.py

For manual triggers: developers can specify if there are API changes
For tag pushes: automatically detects patch/minor/major from version bump

Tests use temporary directories and mock data for complete isolation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix lint

* fix: Replace tomllib with regex parsing for Python 3.9+ compatibility

- Remove tomllib dependency which is only available in Python 3.11+
- Use regex to parse version from pyproject.toml for broader Python version support
- Add test fixture cleanup to reduce event loop warnings in async tests

* fix comment

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-08 16:35:38 -07:00
..