AiToolObject

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

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

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

Анатомия

Variant (default complex)

  • complex — сворачиваемый узел с chevron’ом и вложенными детьми (open + onOpenChange). Принимает любой вложенный контент: 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' open={openRoot} onOpenChange={setOpenRoot}>
      <AiToolKeyValue label='region' value='ru-central1' />
      <AiToolKeyValue label='status' value='running' />
      <AiToolArray name='zones' count={2} unit='шт.' open={openZones} onOpenChange={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
childrenReactNode—noВложенное дерево (только для раскрытого `complex`).
classNamestring—noДоп. класс корня.
data-test-idstringai-tool-objectno
errorboolean—noСостояние ошибки: имя и значение красные. По умолчанию наследуется от `AiToolDetails`.
monoboolean—noМоноширинный режим имени и значения. По умолчанию наследуется от `AiToolDetails`.
nameReactNode—noИмя узла (`Key[ObjectName]`).
onOpenChange((open: boolean) => void)—noПереключение раскрытия (только для `complex`). Получает новое значение `open`.
openbooleanfalsenoРаскрытое состояние (только для `complex`). Источник истины — родитель.
valueReactNode—noЗначение для типа `string` (инлайн рядом с именем).
variant"complex" | "string"complexnoТип узла: `complex` — сворачиваемое дерево, `string` — инлайн ключ-значение.

Unions

Types

AiToolObjectProps

Unions

Storybook

Figma