AiToolObject

Узел дерева аргументов или результата инструмента. Раскрытие controlled: opened + onToggle.

Когда использовать

  • Сворачиваемый объект с вложенными полями.
  • Инлайн пара имя-значение в составе дерева.

Анатомия

Variant (default complex)

  • complex — сворачиваемый узел с chevron’ом и вложенными детьми (opened + onToggle). Принимает любой вложенный контент: AiToolText, AiToolKeyValue, вложенные AiToolObject и AiToolArray.
  • string — инлайн пара имя-значение.

Mono / Error

Наследуются из AiToolDetails и каскадом передаются во вложенные узлы; либо задаются пропом явно.

Установка

pnpm add @cloud-ru/ds-ai-tool
import { AiToolObject } from '@cloud-ru/ds-ai-tool'

Примеры использования

Дерево вызова инструмента

Дерево вызова инструментаObject + KeyValue + Array
result
regionru-central1
statusrunning
zones[ 2 шт. ]
[0]ru-central1-a
[1]ru-central1-b
tsx
import { AiToolArray, AiToolKeyValue, AiToolObject } from '@cloud-ru/ds-ai-tool';
import { useState } from 'react';

export function ToolCallTree() {
  const [openRoot, setOpenRoot] = useState(true);
  const [openZones, setOpenZones] = useState(true);

  return (
    <AiToolObject variant='complex' name='result' opened={openRoot} onToggle={setOpenRoot}>
      <AiToolKeyValue label='region' value='ru-central1' />
      <AiToolKeyValue label='status' value='running' />
      <AiToolArray name='zones' count={2} unit='шт.' opened={openZones} onToggle={setOpenZones}>
        <AiToolObject variant='string' name='[0]' value='ru-central1-a' />
        <AiToolObject variant='string' name='[1]' value='ru-central1-b' />
      </AiToolArray>
    </AiToolObject>
  );
}

Props

Types

PropsAiToolObjectProps
PropTypeDefaultRequiredDescription
childrenReactNodenoВложенное дерево (только для раскрытого `complex`).
classNamestringnoДоп. класс корня.
data-test-idstringai-tool-objectno
errorbooleannoСостояние ошибки: имя и значение красные. По умолчанию наследуется от `AiToolDetails`.
monobooleannoМоноширинный режим имени и значения. По умолчанию наследуется от `AiToolDetails`.
nameReactNodenoИмя узла (`Key[ObjectName]`).
onToggle((opened: boolean) => void)noПереключение раскрытия (только для `complex`). Получает новое значение `opened`.
openedbooleanfalsenoРаскрытое состояние (только для `complex`). Источник истины — родитель.
valueReactNodenoЗначение для типа `string` (инлайн рядом с именем).
variant"complex" | "string"complexnoТип узла: `complex` — сворачиваемое дерево, `string` — инлайн ключ-значение.

Unions

Types

AiToolObjectProps

Unions

Storybook

Figma