home / skills / openclaw / skills / supernal-interface

supernal-interface skill

/skills/ianderrington/supernal-interface

This skill helps you expose Python functions as AI-callable tools and wire them to CopilotKit adapters for seamless AI control.

npx playbooks add skill openclaw/skills --skill supernal-interface

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
3.1 KB
---
name: supernal-interface
description: Universal AI Interface framework for making applications AI-controllable. Use when adding AI tool decorators, setting up chat adapters, creating AI-callable functions, or integrating CopilotKit.
---

# Supernal Interface - AI Controllability Framework

## Installation

```bash
npm install @supernal/interface
```

## Core Concept

Decorate functions → AI can call them with full type safety.

## Quick Start

### 1. Decorate Functions

```typescript
import { Tool } from '@supernal/interface';

class TodoApp {
  @Tool({
    name: 'add_todo',
    description: 'Add a new todo item',
    category: 'productivity'
  })
  async addTodo(text: string): Promise<Todo> {
    return this.db.create({ text, done: false });
  }

  @Tool({
    name: 'complete_todo',
    description: 'Mark a todo as complete'
  })
  async completeTodo(id: string): Promise<void> {
    await this.db.update(id, { done: true });
  }
}
```

### 2. Set Up Adapter

```typescript
import { createCopilotKitAdapter, ChatUIProvider } from '@supernal/interface';

const adapter = createCopilotKitAdapter({
  autoRegisterTools: true,
  autoRegisterReadables: true
});

function App() {
  return (
    <ChatUIProvider adapter={adapter}>
      <YourApp />
    </ChatUIProvider>
  );
}
```

### 3. Done

AI assistants can now discover and call your decorated functions.

## Decorators

| Decorator | Purpose |
|-----------|---------|
| `@Tool` | Expose function as AI-callable tool |
| `@ToolProvider` | Class containing multiple tools |
| `@Component` | React component with AI context |

## Adapters

### CopilotKit (recommended)
```typescript
import { createCopilotKitAdapter } from '@supernal/interface';

const adapter = createCopilotKitAdapter({
  autoRegisterTools: true
});
```

### Custom Adapter
```typescript
import { ChatUIAdapter } from '@supernal/interface';

class MyAdapter implements ChatUIAdapter {
  name = 'my-adapter';
  registerTools(tools) { /* convert to your format */ }
  render(props) { return <MyChat {...props} />; }
}
```

## React Hooks

```typescript
import { useToolBinding, usePersistedState, useChatWithContext } from '@supernal/interface';

// Bind a tool to component state
const [todos, setTodos] = useToolBinding('todos', []);

// Persist state across sessions
const [prefs, setPrefs] = usePersistedState('user-prefs', defaults);

// Chat with app context
const { messages, send } = useChatWithContext();
```

## Storage Adapters

```typescript
import { StateManager, LocalStorageAdapter } from '@supernal/interface/storage';

const storage = StateManager.getInstance('myapp', new LocalStorageAdapter());
await storage.setState('user', { name: 'Alice' });
```

## Testing

```typescript
import { GherkinParser, TestRunner } from '@supernal/interface/testing';

const feature = GherkinParser.parseFeature(gherkinText);
const tests = await TestRunner.generateTests({ framework: 'jest' });
```

## Enterprise Features

Available at supernal.ai/enterprise:
- Auto test generation from decorators
- Story system (50-80% performance boost)
- Architecture visualization
- Multi-model routing
- Audit & compliance logging

Overview

This skill is a universal AI interface framework that makes applications AI-controllable by exposing functions, state, and components as AI-callable tools. It provides decorators, adapters, React hooks, storage and testing utilities to let AI assistants discover and safely call application logic. Use it to add typed AI tool bindings, integrate chat adapters like CopilotKit, or enable automated testing and state persistence.

How this skill works

You mark functions, classes, and components with decorators (for example @Tool, @ToolProvider, @Component) so the framework can register them as AI-callable endpoints. An adapter layer (CopilotKit or custom ChatUIAdapter) translates those registered tools into the host chat UI. React hooks and a storage manager let UI components bind to tool-backed state and persist data across sessions. Optional testing and enterprise features generate tests, route models, and provide auditing.

When to use it

  • You want AI assistants to discover and invoke application logic with type safety.
  • Adding tool decorators to backend or frontend functions for AI orchestration.
  • Integrating a chat experience using CopilotKit or a custom chat adapter.
  • Binding UI state to AI-callable tools in React apps.
  • Automating test generation and architecture visualization for complex apps.

Best practices

  • Annotate clear names and descriptions on @Tool decorators to improve AI discovery and intent matching.
  • Keep tool signatures small and focused; prefer single-responsibility functions for predictable AI calls.
  • Register only safe, idempotent operations for automatic AI invocation; require explicit confirmation for destructive actions.
  • Use the storage StateManager for persisted preferences and the provided adapters for predictable state handling across environments.
  • When creating a custom adapter, implement tool registration and rendering separately so tools remain adapter-agnostic.

Example use cases

  • A todo app exposing addTodo and completeTodo so chat assistants can manage tasks for users.
  • A product admin panel where AI can call inventory update tools with validation and audit logging.
  • Embedding CopilotKit to let assistants execute app-specific actions from within a chat UI.
  • Running generated Jest tests from decorated feature files to validate tool behavior automatically.
  • A multi-tenant service using enterprise routing and compliance logs for audited AI actions.

FAQ

Do I need CopilotKit to use the framework?

No. CopilotKit is recommended for an out-of-the-box chat adapter, but you can implement a custom ChatUIAdapter to integrate with any chat UI.

How do I secure tools that perform destructive actions?

Mark such operations clearly, limit auto-registration, require explicit user confirmation in the adapter, and enable audit logging for enterprise deployments.

Can I use the framework with existing state management?

Yes. Use the provided StateManager adapters (or implement your own) to bridge existing storage; hooks like useToolBinding can wrap persisted state in tool bindings.