ChatToolViewsComponent

Renders a frontend component for a tool call by reusing the chat composition's views registry. A tool call whose name matches a registry key is bridged into a synthetic one-element render spec ({ root: name, elements: { [name]: { type: name, props } } }) and rendered through the existing render-spec pipeline.

Props merge the live args (present while the call streams) with the result (on completion; a JSON-object string result is parsed first, since that is how a LangGraph ToolMessage carries a dict return) and always include status, so a view component can show its own loading/empty/error states. RenderElement filters props down to the component's declared inputs, so extra keys (and a status a component chooses not to declare) are harmless.

import { ChatToolViewsComponent } from '@threadplane/chat';

Declaration

export declare class ChatToolViewsComponent  {
  readonly agent: import("@angular/core").InputSignal<Agent<unknown>>;
  readonly events: import("@angular/core").OutputEmitterRef<RenderEvent>;
  readonly handlers: import("@angular/core").InputSignal<Record<string, (params: Record<string, unknown>) => unknown | Promise<unknown>>>;
  readonly message: import("@angular/core").InputSignal<Message | undefined>;
  readonly registry: import("@angular/core").Signal<import("@threadplane/render").AngularRegistry | undefined>;
  readonly store: import("@angular/core").InputSignal<StateStore | undefined>;
  readonly toolViews: import("@angular/core").Signal<{
        id: string;
        loading: boolean;
        spec: Spec;
    }[]>;
  readonly views: import("@angular/core").InputSignal<Readonly<Record<string, import("@threadplane/render").RenderViewEntry | import("@angular/core").Type<unknown>>> | undefined>;
}

Angular template API

Selector: chat-tool-views

Inputs

agent · required
Agent<unknown>
handlers
Record<string, (params: Record<string, unknown>) => unknown>
message
Message | undefined
store
StateStore | undefined
views
Readonly<Record<string, RenderViewEntry | Type<unknown>>> | undefined

Outputs

events
RenderEvent

Members

agent

readonly agent: import("@angular/core").InputSignal<Agent<unknown>>;

events

readonly events: import("@angular/core").OutputEmitterRef<RenderEvent>;

handlers

readonly handlers: import("@angular/core").InputSignal<Record<string, (params: Record<string, unknown>) => unknown | Promise<unknown>>>;

message

readonly message: import("@angular/core").InputSignal<Message | undefined>;

registry

readonly registry: import("@angular/core").Signal<import("@threadplane/render").AngularRegistry | undefined>;

store

readonly store: import("@angular/core").InputSignal<StateStore | undefined>;

toolViews

readonly toolViews: import("@angular/core").Signal<{
        id: string;
        loading: boolean;
        spec: Spec;
    }[]>;

views

readonly views: import("@angular/core").InputSignal<Readonly<Record<string, import("@threadplane/render").RenderViewEntry | import("@angular/core").Type<unknown>>> | undefined>;