injectCapabilities

Angular function for reading an agent's declared capabilities as a readonly signal.


Overview

injectCapabilities returns the AG-UI AgentCapabilities declared by the resolved agent as an Angular signal.

Capabilities are populated from the runtime /info response. This function is a convenience selector over injectAgentStore; it does not keep separate capability state or make its own request. The signal is undefined until runtime discovery completes or when the agent does not declare capabilities.

Signature

import { injectCapabilities } from "@copilotkit/angular";
import type { Signal } from "@angular/core";
import type { AgentCapabilities } from "@ag-ui/core";

function injectCapabilities(
  agentId?: string | Signal<string | undefined>,
): Signal<AgentCapabilities | undefined>;

Parameters

Prop

Type

Return Value

Prop

Type

Usage

src/app/tool-panel.component.ts
import { Component } from "@angular/core";
import { injectCapabilities } from "@copilotkit/angular";

@Component({
  selector: "app-tool-panel",
  standalone: true,
  template: `
    @if (capabilities()?.tools?.supported === true) {
      <p>This agent supports tools.</p>
    }
  `,
})
export class ToolPanelComponent {
  readonly capabilities = injectCapabilities();
}

To read another agent or switch reactively, pass its id or an id signal from a component class:

import { signal } from "@angular/core";
import { injectCapabilities } from "@copilotkit/angular";

export class AgentCapabilitiesComponent {
  readonly agentId = signal<string | undefined>("support");
  readonly capabilities = injectCapabilities(this.agentId);
}

Related