GECKO.VPP
Developer/TypeScript SDK

TypeScript SDK

Thin-wrapper над fetch з типами, згенерованими з OpenAPI. Працює у Node 20+, Deno, Bun та у браузері.

packages/sdk-ts на GitHub

Встановлення

npm install @gecko-vpp/sdk-ts
# або
pnpm add @gecko-vpp/sdk-ts
# або
bun add @gecko-vpp/sdk-ts

Ініціалізація клієнта

Створіть один екземпляр на тенант. UUID тенанта летить у заголовку X-Tenant-Id автоматично.

import { GeckoVPPClient } from "@gecko-vpp/sdk-ts";

const client = new GeckoVPPClient({
  baseURL: "http://localhost:8000",
  tenantId: "11111111-1111-1111-1111-111111111111",
});

Приклади

Перерахувати активи

Отримати всі активи у портфелі тенанта.

import { GeckoVPPClient } from "@gecko-vpp/sdk-ts";

const client = new GeckoVPPClient({
  baseURL: process.env.GECKO_API ?? "http://localhost:8000",
  tenantId: process.env.GECKO_TENANT ?? "11111111-1111-1111-1111-111111111111",
});

const assets = await client.assets.list();
console.log(`Знайдено ${assets.length} активів:`);
for (const a of assets) {
  console.log(`  ${a.code.padEnd(20)} ${a.display_name.padEnd(30)} ${a.asset_class.padEnd(8)} ${a.capacity_mw} МВт`);
}

Завантажити ціну РДН

Отримати погодинні ціни Ринку «на добу наперед».

import { GeckoVPPClient } from "@gecko-vpp/sdk-ts";

const client = new GeckoVPPClient({
  baseURL: process.env.GECKO_API ?? "http://localhost:8000",
  tenantId: process.env.GECKO_TENANT ?? "11111111-1111-1111-1111-111111111111",
});

const rdn = await client.market.rdn({
  date_start: "2026-05-12",
  date_end: "2026-05-12",
});

const capped = rdn.filter((r) => r.is_capped).length;
const max = rdn.reduce((m, r) => Math.max(m, Number(r.price_uah_mwh)), 0);
const min = rdn.reduce((m, r) => Math.min(m, Number(r.price_uah_mwh)), Infinity);

console.log(`РДН на 2026-05-12: ${rdn.length} годин`);
console.log(`  максимум:    ${max.toFixed(2)} грн/МВт·год`);
console.log(`  мінімум:     ${min.toFixed(2)} грн/МВт·год`);
console.log(`  капнуто:     ${capped} годин`);

Запитати AI-агента

Класифікувати намір, повернути відповідь з evidence.

import { GeckoVPPClient } from "@gecko-vpp/sdk-ts";

const client = new GeckoVPPClient({
  baseURL: process.env.GECKO_API ?? "http://localhost:8000",
  tenantId: process.env.GECKO_TENANT ?? "11111111-1111-1111-1111-111111111111",
});

const res = await client.agents.query(
  "dispatcher_analyst",
  "що сьогодні з виробництвом?",
);
console.log(`→ ${res.answer}`);
console.log(`  intent: ${res.intent}, confidence: ${res.confidence}`);
for (const e of res.evidence ?? []) {
  console.log(`  · ${e.label}: ${e.value}`);
}