AiHummer
Кыргызча
КирүүЖеке кабинет
v1.1.x
{ }Swagger

Плагин SDK

v1.1.x · жаңыланды 2026-06-27

Плагин бир manifest.json файлы менен сүрөттөлөт. Иштеп чыгууда манифестти текшерген келишим платформа орнотуу маалында колдонгон келишим менен бирдей, ошондуктан validate текшерүүсүнөн өткөн манифестти маркетплейс да кабыл алат. aihummer plugin CLI бүт өмүр циклин камтыйт: каркас түзүүдөн кол коюп жарыялоого чейин.

Бир манифест, бир контракт

Плагинде так бир эле чындык булагы бар — ал анын manifest.json. Бул плагин түрүн жарыялайт (kind), аны кандай конфигурациялаганconfig[]), анын мүмкүнчүлүктөрү жана — хосттук туруктуу кызматтар үчүн — install[] кадамдар жана баштоо буйругу SystemdЖабдуучу жүргүзүлөт. Анткени иштеп чыгуу жана орнотуу ошол эле текшерүү келишимин колдонушат, “түшүнүктүү манифест” жана “орнотууга жарактуу плагин” бир эле нерсени билдирет.

[!NOTE] Манифест плагиндин сүрөттөмөсүн берет келишим, дүкөнүнүн баракчасынын аталышы эмес. Бул машина slug бөлүм/топтом атынан (жеке тараптан жүктөө) же төмөнкүдөн келет силер толтура турган тапшырма «Менин плагиндерим» коомдук плагинди жарыялоодо — көрүү Плагин жарыялоо.

CLI

aihummer plugin өңү жана жайылтуу буйруктарын топтойт:

# 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>

Жарыялоо үчүн коомчулук бардыгы үчүн плагин, сен жасайсың эмес CLI буйругун колдонуңуз — сиз таңгакталган, кол коюлган артефактты жүктөйсүз Менин плагиндерим жеке кабинетте (жүктөө → AI карап чыгуу → модерация). Караңыз Плагинди жөнөтүү.

Буйрук Бул эмне кылат
init <kind> [dir] Баштапкы нерсени жазат manifest.json таңдалган түр үчүн.
validate <m.json> Манисти уруксат менен орнотуу сыяктуу келишим менен текшерет.
keygen Автордун ачкыч жуптарын түзөт: .key (жеке, купуя сакта) жана .pub, басып чыгарат key id.
package <dir> Куралат (ык.) --build) жана салат <slug>-<version>.tar.gz билен --strip-components=1 жазууFormatting, жазат .sha256. Эч качан топтодой эмес .env, *.key, node_modules, .git.
sign --key <priv> Бөлүштүрүүнү тастыктоону кол коюңуз; кол тамганы басып чыгарыңыз жана key id; менен --manifest кол тамганы манифестке киргизет.
publish --private Сиздин экземплярга топтомду жүктөйт POST /v1/admin/modules/upload.

Жеке жактан орнотуу жана жеке кабинет аркылуу коомчулукка чыгаруу — эки жарыялоо жолу да тандап алуу үчүн толук баяндалган Плагин жарыялоо.

Манифест талаалары

Эркин талаа керекпи жокпу анын эсебинен көз каранды ырайымдуу жана плагин мамлекеттик экенине жараша. Негизги жана жеке маалымат талаалары:

Дала Түрү Талап кылынат Максат
kind жол ар дайым Түрү: connector | service | openapi | mcp.
version жол ооба Плагин версиясы (semver), мисалы 1.0.0.
contract жол каналдар үчүн Контракт ID, мисалы aihummer.channel.v1.
scope жол жок Кирүү модели: shared (адаттагы) же personal.
capabilities жол[] жок Жариятталган мүмкүнчүлүктөр.
config объект[] жок Форма талааларын жөндөө; ар бирине муктаж key, плюс label, secret, required.
oauth объект жок OAuth2 (authorize_url, token_url, scopes[]) колдонуучунун аккаунтун туташтыруу үчүн.
signature жол кол коюлган учурда base64 ed25519 кол тамгасы чыгаруу идентификациясы боюнча (энбedded аркылуу sign).

Типке мүнөздүү талаалар — такыр бир блок ошолорго жараша толтурулат kind:

Дала Мейиримдүү үчүн Талап кылынат Максат
host_native.exec_start байланыштыргыч, кызмат ооба Узак мөөнөттүү кызматты иштеткен команда.
host_native.runtime коннектор, кызмат, mcp жок node | python | binary.
host_native.install коннектор, кызмат, mcp жок Орнотуу кадамдары (bash буйруктарынын массиви), чыгаруу процессинен кийин хостто иштетилет.
host_native.port байланыштыргыч, кызмат жок Тандалган TCP порту (жайгаштыруучу кайра тааный алат аркылуу $PORT).
host_native.health_path байланыштыргыч, кызмат жок Ден-соолукту текшерүү жолу (демейки) /healthz).
openapi.spec_url ачыкAPI ооба OpenAPI 3.x спецификациясынын URL дареги.
openapi.base_url ачыкAPI жок Жогорулатуу servers[0].url.
openapi.allowed_hosts ачыкAPI жок Синтезделген куралдар үчүн чыгуу уруксат тизмеси.
openapi.auth ачыкAPI жок Карта securityScheme → жашыруун ысым.
openapi.tool_prefix ачыкAPI жок Куралдын атынын префикси.
mcp.transport мср ооба stdio же http.
mcp.command / mcp.args mcp (stdio) ооба, stdio үчүн Сервердин аткаруучу файлы жана аргументтери.
mcp.url mcp (http) ооба http үчүн MCP аяктагы URL.
mcp.auth_header / mcp.secret_token_key mcp (http) жок Ташуучу белги үчүн баш жана сырсөз ачкычы.

Дүкөн барагы жана жеке талаалар (коомчулук плагиндери үчүн)

Манифестте ошондой эле басмачынын таандык маалыматы жана дүкөн-бет талаалары болушу мүмкүн. Үчүн коомчулук плагин, бул каталог көрсөткөн нерселер, бирок сиз адатта аларды киргизесиз «Менин плагиндерим» тапшыруу маалында жеке кабинеттеги дүкөн барагында (аталышы, сүрөттөмөлөрү, иконка, скриншоттор, категория, донордук шилтеме) киргизилет, манифестте кол менен эмес. Жеке жергиликтүү орнотуу үчүн алардын эч бири керек эмес — мындай плагин экземпляр деңгээлинде ишенимдүү.

Дала Түрү Талап кылынат Максат
visibility жол жок public | private | unlisted. Бош = мураска калган/биринчи тарап (жеке таанууну талап кылбайт).
publisher жол жалпы коомчулук үчүн Басмакананын мейкиндик аталышы, ^[a-z0-9][a-z0-9-]{1,38}$. Жарандык слугалар аталышат @publisher/slug.
publisher_key_id жол жалпы коомчулук үчүн key id ачкыч менен кол коюлган буюм.
description жол жалпы коомчулук үчүн Каталогдогу дүкөн барагынын сыпаттамасы.
icon жол жалпы коомчулук үчүн Плагин сүрөтчөсү: бир https:// URL же a data: URI.
screenshots жол[] жок Дүкөн-баракча скриншоттору (массив https:// URLдер; ар бири бош эмес).

[!TIP] Жүр aihummer plugin validate тапшыруудан мурун. Орнотуу жана текшерүү келишимдер бирдей, андыктан жергиликтүү деңгээлде кабыл алынган манифест экөө тең кабыл алынат соода аянтчасынын жайгаштыруучусу жана жеке кабинетиңиздеги соода аянтчасынын карап чыгышы аркылуу.

Минималдуу манифесттер

A service шатыр (эмнеси) aihummer plugin init service жазат):

{
  "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 }
  ]
}

Нөл код openapi манифест дагы кыска — ал жөн гана спецификацияга көрсөтөт:

{
  "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 }
  ]
}

Бир mcp манIFEST (stdio транспорт):

{
  "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"] }
}

Манифесттен базарга

Тастыкталгандан кийин, плагин пакеттелет (package), кол коюлган (sign) жана эки жол менен жарыяланган:

  • Жеке (өзүң үчүн) — Админ UI аркылуу же анын экземплярына кошумча жүктөө publish --private. Артефакт эч качан инстанциядан чыкпайт.
  • Жамаат (бардыгы үчүн) — таңгакталган, кол коюлган объектти жүктөө Менин плагиндерим жеке кабинетиңде; AI карап чыгуу жана адамдык модерациядан кийин ал кол коюлуп, коомчулукка жарыяланат каталог.

Көрүү Плагин жарыялоо толук жол көрсөтмө үчүн.

Кайда кийинки