SDK

SDK: установка и старт

Официальный TypeScript/JavaScript-клиент. Изоморфный (Node 18+ и браузер), без рантайм-зависимостей, на нативном fetch.

Установка

npm
npm install @aist-packages/aist-agent-sdk

Быстрый старт

index.ts
import { AistAgentClient, textInput } from '@aist-packages/aist-agent-sdk';

const client = new AistAgentClient({
  baseUrl: 'https://agent.aist-ai.com',
  token: process.env.AIST_AGENT_TOKEN!,   // JWT (RS256)
});

const { uuid } = await client.createTask({
  assistant_id: 1,
  input: [textInput('Привет! Кто ты?')],
});

// опрос до терминального статуса
const task = await client.waitForTask(uuid, { stopOn: ['completed', 'failed'] });
console.log(task.turn?.output);

Что происходит

  1. new AistAgentClient хранит baseUrl и JWT — токен уходит как Authorization: Bearer на каждый запрос.
  2. createTask ставит задачу в очередь и мгновенно возвращает uuid.
  3. waitForTask опрашивает статус, пока он не попадёт в stopOn, и возвращает финальный Task.

Хелперы textInput, fileInput, voiceInput собирают элементы массива input с правильным type.

Возможности

  • Строгая типизация wire-формата: Task, Turn, InputItem и т.д.
  • Изоморфность — один код для Node 18+ и браузера, нативные fetch/FormData.
  • Клиентские инструментыrunTask сам проходит interrupt-цикл.
  • Типизированные ошибки — подкласс на каждый HTTP-статус.