# n8n-nodes-kaia

n8n community node package for interacting with the Kaia API.

## Nodes

### Save Signal

Capture a signal for knowledge graph processing. This node automatically populates workflow context fields and sends signals to the Kaia API.

**Features:**
- Auto-populates workflow context (workflowId, workflowName, executionId, nodeId, nodeName)
- Supports all signal types and optional fields
- Auto-generates SHA-256 content hash for deduplication
- Supports LLM context, knowledge graph, tags, and priority levels

### Security Gate

Check entity context from the knowledge graph and block workflow execution if conditions are not met.

**Features:**
- Evaluates entity facts and relations
- Supports multiple operators (equals, not equals, exists, not exists)
- Blocks workflow execution when conditions are not met
- Returns full context data when proceeding

### Model Gate

Intercept LLM input and output to record all interactions for AI Act compliance. This node can be placed after any LLM node to capture and log AI interactions.

**Features:**
- Captures LLM prompts, responses, and metadata
- Extracts tool calls and decisions from AI responses
- Records token usage and latency metrics
- Sends separate input and output signals to Kaia API
- Non-blocking: workflow continues even if signal sending fails
- Includes signal status in output for debugging (`_kaiaSignalStatus`)

**Usage:**
1. Place the Model Gate node after an LLM node (e.g., OpenAI, Anthropic, etc.)
2. Configure Kaia API credentials
3. The node will automatically capture input/output and send compliance signals

**Compatibility:**
- Tested with n8n v1.x+
- Works with all LangChain-compatible LLM nodes

## Credentials

### Kaia API

Bearer token authentication with base URL configuration.

**Required Fields:**
- Base URL: The base URL of the Kaia API
- Bearer Token: Authentication token

## Installation

```bash
npm install n8n-nodes-kaia
```

## Development

```bash
# Install dependencies
npm install

# Build the package
npm run build

# Run linter
npm run lint

# Format code
npm run format
```

## License

MIT






