# ChatRunActivityTemplateDirective

Package: `@threadplane/chat` · 0.3.4

Reference: /docs/api/chat/ChatRunActivityTemplateDirective

```typescript
import { ChatRunActivityTemplateDirective } from '@threadplane/chat';
```

## ChatRunActivityTemplateDirective

Registers a turn-level run-activity renderer on `<chat>`. The template
renders after the last message, inside the transcript's scroll region,
while a run is active and the current run has no assistant message yet:
the window between the user's submit and the first assistant message,
which can be long when the first model call is slow. It replaces the
default typing indicator in that window.

The current run is every message after the last user message. Once an
assistant message arrives, the template stops rendering and the
per-message `chatActivityTemplate` (or the default reasoning and tool-call
region) takes over. A resumed run that continues an existing assistant
message never shows it.

Without this template, `<chat>` renders the default typing indicator.

Usage:

<chat [agent]="agent">
 <ng-template chatRunActivityTemplate let-agent>
 <my-turn-activity [agent]="agent" />
 </ng-template>
 </chat>

```typescript
export declare class ChatRunActivityTemplateDirective  {
  static ngTemplateContextGuard(_directive: ChatRunActivityTemplateDirective, context: unknown): context is ChatRunActivityTemplateContext;
  readonly templateRef: TemplateRef<ChatRunActivityTemplateContext>;
}
```

**Angular selector:** `ng-template[chatRunActivityTemplate]`

### ngTemplateContextGuard · overload 1

```typescript
static ngTemplateContextGuard(_directive: ChatRunActivityTemplateDirective, context: unknown): context is ChatRunActivityTemplateContext;
```

### templateRef

```typescript
readonly templateRef: TemplateRef<ChatRunActivityTemplateContext>;
```