slickit 0.1.0

Semantic, LLM-Interpretable Component Kit — typed component system
Documentation
# slickit

Semantic, LLM-Interpretable Component Kit. Foundation types for composable components.

## What

Four types that let components describe themselves and be discovered, composed, and instantiated across languages:

- **`Kind`** — Agent, Capability, Skill, Flow
- **`Manifest`** — component descriptor (identity, kind, invoke, contracts)
- **`TypedConfig`** — config envelope (type_url + opaque JSON)
- **`TypedRegistry`** — type_url → factory → instance

One Rust core, two crusts: Python (PyO3) and TypeScript (wasm-bindgen).

## Install

```bash
# Rust
cargo add slickit --features manifest

# Python
pip install slickit

# TypeScript
bun add slickit
```

## Usage

### Rust

```rust
use slick::{Kind, Manifest, TypedConfig, TypedRegistryBuilder};

// Describe a component
let manifest = Manifest {
    kind: Kind::Capability,
    type_url: "mox.tools.v1.Recon".into(),
    description: "Reconnaissance and information gathering".into(),
    invoke: Some("uvx mox/tools/recon".into()),
    consumes: vec!["mox.v1.Target".into()],
    produces: Some("mox.v1.ReconReport".into()),
};

// Register and instantiate
let registry = TypedRegistryBuilder::<String, String>::new()
    .register("example.v1", |value| {
        serde_json::from_value::<String>(value.clone())
            .map_err(|e| e.to_string())
    })
    .build();

let instance = registry.create("example.v1", &serde_json::json!("hello")).unwrap();
```

### Python

```python
from slickit import Kind, Manifest, TypedConfig

manifest = Manifest(
    kind=Kind.Capability,
    type_url="mox.tools.v1.Recon",
    description="Reconnaissance and information gathering",
    invoke="uvx mox/tools/recon",
)

# Serialize / deserialize
json_str = manifest.to_json()
manifest2 = Manifest.from_json(json_str)
```

### TypeScript

```typescript
import { Kind, Manifest } from "slickit";

const manifest = Manifest.fromObject({
    kind: "capability",
    type_url: "mox.tools.v1.Recon",
    description: "Reconnaissance and information gathering",
    invoke: "uvx mox/tools/recon",
    consumes: ["mox.v1.Target"],
    produces: "mox.v1.ReconReport",
});

console.log(manifest.typeUrl); // "mox.tools.v1.Recon"
```

## The Four Kinds

| Kind | Contract | Example |
|------|----------|---------|
| **Agent** | Autonomous reasoning, session-based | Code review agent |
| **Capability** | Stateless function, single invocation | Access control processor |
| **Skill** | Knowledge/context, no execution | Design tokens |
| **Flow** | Orchestrated DAG of components | CI pipeline |

## Dependencies

`serde` + `serde_json`. Nothing else.

## License

Apache-2.0 — see [LICENSE](LICENSE).