TypeScript SDK
Pelican.ts — официальный TypeScript SDK для lomiri и Pelican.
Pelican.ts — официальный TypeScript SDK для lomiri. Он покрывает оба публичных API, client API и application API, и точно так же работает с Pelican, поэтому одна интеграция подходит для обеих панелей.
npm install @pelican.ts/sdkПонадобится API-ключ: клиентский ключ со страницы аккаунта для client API или ключ приложения из раздела Админ → API-ключи для application API.
Что внутри
| Пакет | Что это |
|---|---|
@pelican.ts/sdk | Humane-клиент: объектно-ориентированный клиент, где серверы, файлы и резервные копии — объекты с методами. |
@pelican.ts/sdk/api | API-клиент: тонкая обёртка без состояния, один метод на эндпоинт и валидация входных данных. |
@pelican.ts/sdk/types | Типы всех ответов API. |
@pelican.ts/ai | Все методы client API в виде инструментов AI SDK для агентов. |
Humane-клиент
Каждый метод соответствует одному эндпоинту API, поэтому каждый вызов — это один запрос, а объекты обновляются после каждого вызова. Особенно удобен для работы с файлами: каждый файл знает, где он лежит и какая у него родительская папка.
import { createPelicanClient } from "@pelican.ts/sdk"
const client = createPelicanClient("https://panel.example.com", "your-api-key")
// Сделать резервную копию первого сервера и восстановить её через минуту.
const servers = await client.listServers()
const server = servers[0]
if (!server.isInstalling && !server.isSuspended) {
const backup = await server.createBackup({
name: "first backup",
is_locked: false,
ignored_files: ["/dynmap/*"],
})
setTimeout(() => backup.restore(), 60_000)
}Любой humane-объект можно создать из API-клиента и исходного объекта API:
import { ServerBackup } from "@pelican.ts/sdk"
const backup = new ServerBackup(serverClient, backupObject)API-клиент
Функциональная обёртка без состояния: вы получаете обычные данные, ничего не кешируется.
import { PelicanAPIClient } from "@pelican.ts/sdk/api"
const client = new PelicanAPIClient("https://panel.example.com", "your-api-key")
// Также доступен из humane-клиента: createPelicanClient(...).$client
// Получить базу данных сервера вместе с паролем, затем сменить пароль.
const servers = await client.listServers()
const serverId = servers[0].identifier // например, "babcaed0"
const [db] = await client.server(serverId).databases.list(["password"])
console.log(`Found ${db.name} on ${db.host.address}`)
await client.server(serverId).databases.rotatePassword(db.id)Типы
import type { ApplicationServer, ServerBackup } from "@pelican.ts/sdk/types"Инструменты для ИИ
@pelican.ts/ai предоставляет все методы client API как инструменты для AI SDK,
чтобы агент мог управлять серверами за пользователя.
npm install @pelican.ts/ai @pelican.ts/sdk aiimport { PelicanAPIClient } from "@pelican.ts/sdk/api"
import { createPelicanClientTools, createPelicanServerTools } from "@pelican.ts/ai"
import { generateText, stepCountIs } from "ai"
const client = new PelicanAPIClient("https://panel.example.com", "your-client-api-key")
// Все инструменты client API. Инструменты сервера принимают сервер в каждом вызове.
const tools = createPelicanClientTools(client, {
exclude: ["pelican_client_server_settings_reinstall"],
})
// Или привязать инструменты к одному серверу.
const serverTools = createPelicanServerTools(client, "abc12345")
await generateText({
model: "anthropic/claude-sonnet-5.5",
tools: { ...tools, ...serverTools },
stopWhen: stepCountIs(10),
prompt: "List my servers and show resource usage for the first one",
})Инструменты покрывают аккаунт, API- и SSH-ключи, информацию о сервере, питание, команды консоли, ресурсы, файлы, базы данных, резервные копии, расписания, аллокации, соп. пользователей, параметры запуска, настройки и активность. Живой поток консоли и application API не входят.
Подробнее — в репозитории Pelican.ts.