feat: workflows are YAML, TypeScript, JavaScript, and shell

Merged
WI
1d ago
+500-19877

Summary

Relay ships a TypeScript SDK and a Swift SDK. Local workflow files are YAML, TypeScript, JavaScript, or shell. Cloud workflows and worker payloads are YAML or TypeScript. Node definitions are TypeScript or JavaScript.

Test Plan

  • Tests added/updated
  • Local workflow, cloud workflow, worker payload, node provider, and broker lifecycle unit tests pass
  • CLI typecheck passes
  • The RelayFlow probe observes YAML, TypeScript, JavaScript, and shell on this branch, and the previous workflow file behavior on current main

RelayFlow Proof

  • Change type: feature
  • RelayFlow case: workflow-node-file-surfaces

Screenshots


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


[!NOTE]
High Risk
Breaking removal of the published Python SDK, PyPI pipeline, and Python workflow/node execution paths; existing Python integrations will fail until they migrate to TS/Swift or shell/YAML workflows.

Overview
Removes the Python SDK (packages/sdk-py, PyPI agent-relay-sdk) and all Python workflow/node surfaces, leaving Relay on TypeScript and Swift SDKs only. Local workflows stay YAML, TypeScript, JavaScript, and shell; cloud/worker workflows are YAML or TypeScript; node providers are TypeScript/JavaScript (agent-relay.{ts,…}) with no agent-relay.py child.

CLI and cloud paths drop py from --file-type, inference, telemetry, and validation (local-workflow, cloud, @agent-relay/cloud worker/types). relay node up no longer discovers or spawns a Python node provider; related loader and lifecycle code is removed.

Tooling and release: codegen:models is TypeScript-only; feature manifest and verify docs drop the python-sdk category; publish workflow removes sdk-py, PyPI wheel jobs, and pyproject.toml from version bumps/artifacts. Changelog and READMEs are updated to match.

A broker shutdown test forces local-only Relaycast HTTP so presence updates do not consume the shutdown budget; a RelayFlow case asserts the new file-surface contract.

Reviewed by Cursor Bugbot for commit ae35943536a1e9313d194fdee89675e8072ff986. Bugbot is set up for automated code reviews on this repo. Configure here.