SDK generation
helixor-sdk-gen 0.1.0 generates two kinds of SDK from typed contracts: HTTP clients from OpenAPI, and in-process decision SDKs from pack manifests. The targets overlap, but they are not the same product surface.
Language capability matrix#
| Language | OpenAPI client | Embedded decision SDK | Generated package |
|---|---|---|---|
| Python | Supported | Supported | Python package and typed models |
| JavaScript / TypeScript | Supported TypeScript compiles to JavaScript | Not supported | npm-compatible package |
| Java | Supported | Supported | Maven/JAR project |
| C# | Supported | Supported | .NET 8/NuGet project |
| Rust | Supported | Supported | Cargo crate |
| C | No | Supported | C11 source, header and static library build |
What “supported” means
The generator emits the target and its contract suite builds and exercises the generated output. Registry publication is tracked per API release. A supported generator target is not a claim that a package is already public on PyPI, npm, Maven Central, NuGet or crates.io.
Generate OpenAPI clients#
One configuration can select all five OpenAPI targets. JavaScript consumes the compiled TypeScript package; there is no separate JavaScript emitter.
package_name: example-sdk package_version: 0.1.0 languages: [python, typescript, java, csharp, rust] base_url: https://api.example.test
helix-sdk-gen generate helix-sdk.yml openapi.yaml --out generated-sdk
The generator lowers the OpenAPI document into one language-neutral operation contract before emitting code. Unsupported target features fail generation with SDK_TARGET_UNSUPPORTED_CONTRACT; the generator does not silently weaken the contract.
Generate embedded decision SDKs#
Embedded targets are generated from a pack manifest. They expose typed state and decision results without an HTTP round trip.
helix-sdk-gen generate-embedded embedded-pack-manifest.json \ --lang python --lang java --lang csharp --lang rust --lang c \ --out generated-embedded
C#, Rust and C bind the producer C ABI and require a compatible native runtime 1.x library at version 1.1.0 or newer, a signed license and the original sealed pack. Generated bindings do not bundle that runtime, replace the sealed pack or fall back to a local evaluator. Java and Python have their own generated embedded paths; the 0.3.1 distribution status for those paths remains documented on their language pages.
Target details#
Runtime and generated models
In-process runtime API plus generated OpenAPI and pack models.
JavaScript / TypeScriptTyped HTTP client
OpenAPI client for Node and browser builds.
JavaHTTP and embedded
Java 17 OpenAPI client and embedded decision target.
C#.NET 8
OpenAPI client and native-runtime embedded binding.
RustCargo
OpenAPI client and native-runtime embedded binding.
CC11 embedded
Embedded pack wrapper only; no OpenAPI target.
Release boundary#
Generated SDKs contain the public request, response and decision contracts needed by callers. They do not contain Helixor's generator implementation, private model weights, prompts, solver internals, ontology engine or private runtime source. Each release must still pass its public-surface, archive-layout, secret, internal-reference and private-source fingerprint gates before publication.