Llomiriby hyprr

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/sdkHumane-клиент: объектно-ориентированный клиент, где серверы, файлы и резервные копии — объекты с методами.
@pelican.ts/sdk/apiAPI-клиент: тонкая обёртка без состояния, один метод на эндпоинт и валидация входных данных.
@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 ai
import { 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.

На этой странице