ty_plugin_sdk 0.0.2

Authoring SDK for ty semantic extensions.
Documentation

ty_plugin_sdk

Authoring SDK for ty semantic extensions.

This crate provides the extension manifest builder, hook trait, JSON dispatch helpers, and WASM export macro used by extension authors. Raw wire types are re-exported from ty_plugin_protocol.

[dependencies]
ty_plugin_sdk = "0.0.1"
use ty_plugin_sdk::protocol::{CallRequest, PluginManifest, PluginResponse, TypeExpr};
use ty_plugin_sdk::{dsl, ManifestBuilder, Plugin};

#[derive(Default)]
pub struct MyExtension;

impl Plugin for MyExtension {
    fn manifest(&self) -> PluginManifest {
        ManifestBuilder::new("my-extension", "My ty extension", "0.1.0")
            .claim_call_return("my_framework.Field")
            .build()
    }

    fn adjust_call_return(&self, _request: &CallRequest) -> PluginResponse {
        dsl::call_return(TypeExpr::annotation("str"))
    }
}

ty_plugin_sdk::export_plugin!(MyExtension::default());

Build extensions as WASM artifacts:

rustup target add wasm32-unknown-unknown
cargo build --release --target wasm32-unknown-unknown

The source lives in the ruff submodule of regularkevvv/ty-extended, backed by regularkevvv/ruff-extended. See the extension authoring guide for manifests, hooks, project configuration, and packaging guidance.