AiHummer
Oʻzbekcha
KirishShaxsiy kabinet
v1.0.x
{ }Swagger

Plagin SDK

v1.0.x · yangilandi 2026-06-27

Plagin tomonidan tasvirlangan bir manifest.json. Rivojlantirish paytida manifestni tasdiqlaydigan shartnoma, platforma o’rnatish vaqtida majburlaydigan shartnoma bilan bir xil, shuning uchun o’tadigan manifest validate bu bozor qabul qiladigan bir manifestdir. aihummer plugin CLI butun hayot tsiklini qamrab oladi: ramkadan imzolash va nashrga qadar.

Bitta manifest, bitta shartnoma

Plagin aniq bitta haqqoniy manbaga ega — uning manifest.json. Bu plagin turini e’lon qiladi (kind), qanday sozlanganligi (config[]), uning imkoniyatlari va — mezbonning mahalliy xizmatlari uchun — install[] qadamlar va boshlash buyrug‘i SystemdDeployer ishlaydi. Chunki rivojlantirish va o‘rnatish bir xil validatsiya shartnomasidan foydalanadi, “yaroqli manifest” va “o‘rnatiladigan plagin” bir xil narsani anglatadi.

[!NOTE] Manifest plaginning shartnoma, uning do’kon-sahifa nomi emas. mashina slug papka/paket nomidan (xususiy yon yüklash) yoki dan keladi siz to’ldirgan taqdimot «Mening plaginlarim» jamiyat plagini e’lon qilganda — ko‘rish Pluginni nashr qilish.

CLI

aihummer plugin rivojlantirish, paketlash va nashr qilish buyruqlarini birlashtiradi:

# Scaffold a manifest (kind: connector | service | openapi | mcp)
aihummer plugin init <kind> [dir]

# Validate a manifest against the install contract
aihummer plugin validate <manifest.json>

# Generate an ed25519 author key (writes <prefix>.key and <prefix>.pub)
aihummer plugin keygen [--out <prefix>]

# Build and package the plugin into a release tarball + .sha256
aihummer plugin package <dir> [--out <file>] [--slug <slug>] [--build "<cmd>"]

# Sign the release identity (slug\0version\0source_ref); with --manifest the
# signature is embedded into the manifest.signature field
aihummer plugin sign --key <priv> [--manifest <m.json>] <bundle|dir>

# Upload a private plugin into your own instance (side-load)
aihummer plugin publish --private --instance <url> --token <admin> <bundle.tar.gz>

Nashr qilish uchun jamiyat har bir kishi uchun plagin, siz qilasiz emas CLI buyrug‘idan foydalaning — siz o‘zgartirilgan, imzolangani bo‘lgan artefaktni o‘zingizdan yuklaysiz Mening plaginlarim shaxsiy kabinetda (yuklash → AI ko‘rib chiqishi → moderatsiya). Ko‘ring Plagin yuborish.

Buyruq Nimani qiladi
init <kind> [dir] Boshlovchi yozadi manifest.json tanlangan tur uchun.
validate <m.json> Manifestni install bilan bir xil shartnoma bo‘yicha tasdiqlaydi.
keygen Muallif kalit juftligini yaratadi: .key (shaxsiy, sir saqlang) va .pub, chop etadi key id.
package <dir> Qurilmalar (ixt.) --build) va to’playdi <slug>-<version>.tar.gz bilan --strip-components=1 tartib, yozadi .sha256. Hech qachon ortmaydi .env, *.key, node_modules, .git.
sign --key <priv> Chiqish shaxsini belgilaydi; imzoni bosadi va key id; bilan --manifest imzoni manifestga joylaydi.
publish --private Sizning instansingizga paket yuklaydi POST /v1/admin/modules/upload.

Ikkala nashr yo’li — shaxsiy yuklash va shaxsiy kabinet orqali jamiyat nashri — quyida batafsil bayon etilgan Pluginni nashr qilish.

Manifest maydonlari

Maydon talab qilinishi bog‘liq mehribon va plagin jamoatga ochiq yoki yo‘qligiga bog‘liq. Asosiy va shaxsiyat maydonlari:

Maydon Tur Kerakli Maqsad
kind qator har doim Tur: connector | service | openapi | mcp.
version qator ha Plagin versiyasi (semver), masalan 1.0.0.
contract qator kanallar uchun Shartnoma ID, masalan aihummer.channel.v1.
scope qator yo‘q Kirish modeli: shared (default) yoki personal.
capabilities string[] yo‘q E’lon qilingan imkoniyatlar.
config obyekt[] yo‘q Sozlash shakli maydonlari; har biri kerak key, plus label, secret, required.
oauth ob’ekt yo‘q OAuth2 (authorize_url, token_url, scopes[]) foydalanuvchining hisobini ulash uchun.
signature qator imzolanganida release identifikatori ustida base64 ed25519 imzosi (ichiga qo‘yilgan) sign).

Turga xos maydonlar — aniq bitta blok quyilishiga qarab to’ldiriladi kind:

Maydon Mehribon uchun Kerakli Maqsad
host_native.exec_start ulash qurilmasi, xizmat ha Uzoq umr ko‘radigan xizmatni ishga tushiradigan buyruq.
host_native.runtime ulash vositasi, xizmat, mcp yo‘q node | python | binary.
host_native.install ulash vositasi, xizmat, mcp yo‘q O‘rnatish bosqichlari (shell buyruqlari massivi), chiqarib olingandan keyin hostda ishga tushiriladi.
host_native.port ulash qurilmasi, xizmat yo‘q Afzal ko‘rilgan TCP porti (joylashtiruvchi orqali qayta tayinlanishi mumkin $PORT).
host_native.health_path ulash qurilmasi, xizmat yo‘q Sog’liqni tekshirish yo’li (standart) /healthz).
openapi.spec_url openapi ha OpenAPI 3.x spetsifikatsiyasining URL manzili.
openapi.base_url openapi yo‘q Oʻzlashtirish servers[0].url.
openapi.allowed_hosts openapi yo‘q Sintetik asboblar uchun chiqish ruxsatnoma ro‘yxati.
openapi.auth openapi yo‘q Xarita securityScheme → sirli ism.
openapi.tool_prefix openapi yo‘q Asbob nomi old qo’shimchasi.
mcp.transport mcp ha stdio yoki http.
mcp.command / mcp.args mcp (stdio) ha stdio uchun Server ijro etiladigan fayli va argumentlari.
mcp.url mcp (http) ha http uchun MCP endpoint URL manzili.
mcp.auth_header / mcp.secret_token_key mcp (http) yo‘q Tashuvchi tokeni uchun sarlavha va maxfiy kalit.

Doʻkon sahifasi va identifikatsiya maydonlari (jamiyat plaginlari uchun)

Manifest shuningdek nashriyot identifikatori va do‘kon-sahifa maydonlarini ham olib yurishi mumkin. Bir jamiyat plagin bu katalogda ko‘rsatilgan narsalar, lekin odatda ularni ichiga kiritasiz «Mening plaginlarim» tadbirkorlik vaqti kelganda shaxsiy kabinetingizdagi doʻkon sahifasida (nomi, tavsiflari, ikonkasi, ekran tasvirlari, kategoriyasi, xayriya havolasi) kiritiladi, manifestda qoʻlda emas. Shaxsiy yuklash ular hech qaysisiga muhtoj emas — bunday plagin instansiya darajasida ishonchli hisoblanadi.

Maydon Tur Kerakli Maqsad
visibility qator yo‘q public | private | unlisted. Bo’sh = meros/ilk tomon (hech qanday shaxsni aniqlash talab qilinmaydi).
publisher qator jamoat uchun Nashriyot nomlari fazosi, ^[a-z0-9][a-z0-9-]{1,38}$. Jamoat tirmalari nomlanadi @publisher/slug.
publisher_key_id qator jamoat uchun key id kalit bilan artefakt imzolangan.
description qator jamoat uchun Katalogdagi do’kon sahifasi qisqacha matni.
icon qator jamoat uchun Plagin ikonkasi: bir https:// URL yoki a data: URI.
screenshots string[] yo‘q Doʻkon sahifasi skrinshotlari (massiv) https:// URL-lar; har biri bo’sh emas).

[!TIP] Yugur aihummer plugin validate jo’natishdan oldin. O’rnatish va tasdiqlash shartnoma bir xil, shuning uchun mahalliy darajada o‘tadigan manifest ikkalasida ham qabul qilinadi bozor joylashtiruvchisi tomonidan va shaxsiy kabinetingizdagi bozor sharhi orqali.

Minimal manifestlar

A service skameyka (nima aihummer plugin init service yozadi):

{
  "version": "1.0.0",
  "kind": "service",
  "scope": "shared",
  "contract": "aihummer.channel.v1",
  "host_native": {
    "runtime": "node",
    "install": ["npm ci --omit=dev"],
    "exec_start": "node dist/main.js",
    "port": 8800,
    "health_path": "/healthz"
  },
  "config": [
    { "key": "api_token", "label": "API token", "secret": true, "required": true }
  ]
}

Nol-kod openapi manifest hattoki qisqaroq — u faqat spetsifikatsiyaga ishora qiladi:

{
  "version": "1.0.0",
  "kind": "openapi",
  "scope": "shared",
  "openapi": {
    "spec_url": "https://api.example.com/openapi.json",
    "tool_prefix": "example_",
    "allowed_hosts": ["api.example.com"],
    "auth": { "bearerAuth": "api_token" }
  },
  "config": [
    { "key": "api_token", "label": "API token", "secret": true, "required": true }
  ]
}

Bir mcp manifest (stdio transport):

{
  "version": "1.0.0",
  "kind": "mcp",
  "scope": "shared",
  "host_native": { "runtime": "node", "install": ["npm ci --omit=dev"] },
  "mcp": { "transport": "stdio", "command": "node", "args": ["server.js"] }
}

Manifestdan bozorga

Tekshirishdan so‘ng, plagin paketlanadi (package), imzolangan (sign) va ikkita usuldan birida nashr etiladi:

  • Shaxsiy (o’zingiz uchun) — Admin UI orqali yoki o‘z instantsiyangizga qo‘l bilan yuklang publish --private. Artefakt hech qachon instansiyani tark etmaydi.
  • Jamiyat (hamma uchun) — qadoqlangan, imzolangan artefaktni yuklang Mening plaginlarim shaxsiy kabinetingizda; AI tekshiruvidan va inson moderatsiyasidan so‘ng u imzolanadi va jamoatchilikka e’lon qilinadi katalog.

Ko’r Pluginni nashr qilish to’liq qo’llanma uchun.

Keyin qayerga