> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reliantlabs.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Types Reference

> Reference documentation for workflow config types and output helper types

This reference documents the structured types used in workflow definitions and node outputs.

## Config Types

These types are used to configure node behavior in workflow definitions.

### InjectConfig

Message injection into a thread

| Field           | Type    | Required | Description                                               |
| --------------- | ------- | -------- | --------------------------------------------------------- |
| `role`          | string  | No       | Message role for injected message                         |
| `content`       | string  | No       | Message content to inject                                 |
| `display_style` | string  | No       | UI display style for injected message; defaults to hidden |
| `attachments`   | message | No       | Attachments to include                                    |

***

### ProjectConfig

Project path override for sub-workflows

| Field  | Type   | Required | Description                                       |
| ------ | ------ | -------- | ------------------------------------------------- |
| `path` | string | No       | Project directory path for sub-workflow execution |

***

### ResponseTool

Custom tool for structured LLM output

| Field         | Type    | Required | Description |
| ------------- | ------- | -------- | ----------- |
| `name`        | string  | No       | -           |
| `description` | string  | No       | -           |
| `schema`      | message | No       | -           |

***

### SaveMessageConfig

Automatic message saving after node completion

| Field          | Type   | Required | Description                                                                          |
| -------------- | ------ | -------- | ------------------------------------------------------------------------------------ |
| `condition`    | string | No       | -                                                                                    |
| `role`         | string | No       | -                                                                                    |
| `content`      | string | No       | -                                                                                    |
| `tool_calls`   | string | No       | -                                                                                    |
| `tool_results` | string | No       | -                                                                                    |
| `attachments`  | string | No       | Attachment IDs to attach to the saved message. CEL expression must return \[]string. |

***

### SubWorkflow

Sub-workflow invocation configuration

| Field         | Type    | Required | Description                                           |
| ------------- | ------- | -------- | ----------------------------------------------------- |
| `ref`         | string  | No       | Workflow reference (builtin://name or project://name) |
| `inline`      | message | No       | -                                                     |
| `args`        | map     | No       | Input values for the sub-workflow                     |
| `presets`     | map     | No       | Preset configurations for sub-workflow inputs         |
| `project`     | message | No       | Working directory override for sub-workflow           |
| `thread`      | message | No       | Thread mode: inherit (default), new, or fork          |
| `passthrough` | string  | No       | Input names to forward from parent to child workflow  |

***

### ThreadConfig

Thread configuration for node execution

| Field    | Type    | Required | Description                                      |
| -------- | ------- | -------- | ------------------------------------------------ |
| `mode`   | string  | No       | Thread mode: inherit (default), new, or fork     |
| `memo`   | bool    | No       | Whether to memoize thread across loop iterations |
| `inject` | message | No       | Message injection into the thread                |

***

## Output Types

These types represent structured data in node outputs, accessible via CEL expressions like `nodes.<id>.<field>.*`.

### MessageOutput

Standardized output for activities that produce messages

| Field  | Type   | Required | Description |
| ------ | ------ | -------- | ----------- |
| `id`   | string | No       | -           |
| `role` | string | No       | -           |
| `text` | string | No       | -           |

***

### ThinkingOutput

Extended thinking content from LLM

| Field       | Type   | Required | Description |
| ----------- | ------ | -------- | ----------- |
| `content`   | string | No       | -           |
| `signature` | string | No       | -           |

***

### ToolCall

Tool invocation request from the LLM

**Access path:** `nodes.<id>.tool_calls[*].*`

| Field   | Type   | Description |
| ------- | ------ | ----------- |
| `id`    | string | -           |
| `input` | string | -           |
| `name`  | string | -           |

***

### ToolResult

Result from executing a tool call

**Access path:** `nodes.<id>.tool_results[*].*`

| Field          | Type   | Description |
| -------------- | ------ | ----------- |
| `content`      | string | -           |
| `is_error`     | bool   | -           |
| `name`         | string | -           |
| `tool_call_id` | string | -           |

***
