AiHummer
Кыргызча
Кирүү
v1.0.x
{ }Swagger

Плагинди жарыялоо

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

Плагин SDK менен плагин курдуңузбу? Аны эки режимде жарыялай аласыз:

  • Жеке (өзүңүз үчүн)өз инстанцияңызга каптал-жүктөө. Артефакт андан эч качан чыкпайт.
  • Коомдук (баары үчүн) — PR аркылуу курацияланган расмий AiHummer каталогуна жөнөтүү.

Аналогия: .vsix файлын колдон орнотуу (жеке) vs VS Code Marketplace’ке жарыялоо (коомдук); жеке npm реестри vs коомдук.

Жеке режим — инстанцияңызга каптал-жүктөө

Муну плагин сизге гана керек болгондо колдонуңуз: ички коннектор, ыңгайлаштырылган интеграция, тест курулушу.

Кадамдар

  1. Топтомду таңгактаңыз жана кол коюңуз:
    aihummer plugin package ./my-plugin
    aihummer plugin sign --key author.key --manifest ./my-plugin/manifest.json my-plugin-1.0.0.tar.gz
  2. Аны инстанцияга эки жолдун бири менен жүктөңүз:
    • Admin UI → Plugins → “Upload plugin” — топтомду сүйрөңүз; же
    • CLI:
      aihummer plugin publish --private --instance https://your-instance \
        --token <admin-token> my-plugin-1.0.0.tar.gz
  3. Капоттун астында бул POST /v1/admin/modules/upload (multipart, integrations:write): артефакт blob: шилтемеси астында инстанциянын блоб дүкөнүнө (AIHUMMER_BLOB_DIR) түшөт, ал эми каталог сабы origin = local-private, visibility = private менен катталат.
  4. Плагин маркетплейсте Private деп белгиленип пайда болуп, кадимки жол менен орнотулат — изоляцияланган systemd бирдиги + ден соолук гейти.

Ишеним: бекитилген ачкыч жана ишеним дүкөнү

Жеке артефакттарга кол коюлушу керек. Белгисиз ачкыч менен кол коюлган плагинди жүктөгөндө, Админ UI сизге автордун ачкычын бекитүүнү инстанциянын ишеним дүкөнүнө сунуштайт (бир чыкылдатуу). Бекитилгенден кийин кол тамга ар бир орнотууда жана жаңылоодо текшерилет.

  • Расмий булактан келген артефакттар ядрого бекитилген реестр ачкычына каршы текшерилет — демейки боюнча ишеничтүү, кошумча кадам жок.
  • Жеке артефакттар инстанциянын ишеним дүкөнүндөгү ачкычтарга каршы текшерилет.
  • Кол тамгасыз топтомдор четке кагылат — жергиликтүү итерация үчүн dev режиминен башкасы: AIHUMMER_PLUGIN_DEV_UNSIGNED=1.

[!WARNING] AIHUMMER_PLUGIN_DEV_UNSIGNED=1 кол тамга текшерүүсүн өчүрөт жана жергиликтүү иштеп чыгуу үчүн гана арналган. Аны эч качан тышкы жеткиликтүү инстанцияда иштетпеңиз.

Коомдук режим — коомдук реестр

Плагинди ар бир инстанцияга жеткиликтүү кылуу үчүн, аны коомдук реестрге AiHummer/marketplace-catalog PR аркылуу жөнөтүңүз: автоматташтырылган текшерүүлөр + карап чыгуу, ал эми бекитүүдө AiHummer релизге каршы кол коёт.

Кадамдар

  1. Бир жолку — жарыялоочуну каттаңыз. Ачкыч түзүп, мейкиндикти ээлеңиз:
    aihummer plugin keygen                # ачык ачкычты (base64) жана ачкыч идентификаторун басып чыгарат
    Бул @you мейкиндигин ээлейт. Жеке ачкычты өзүңүздө сактаңыз — ал ар бир жөнөтүүгө кол коёт.
  2. Артефактты туруктуу HTTPS URL дарегинде хосттоңуз (артефактты AiHummer эмес, автор хосттойт).
  3. Каталогго PR ачыңыз:
    aihummer plugin publish --public --dir ./my-plugin --key author.key \
      --artifact-url https://you.example.com/my-plugin-1.0.0.tar.gz \
      --publisher you --description "What the plugin does" --icon https://you.example.com/icon.svg \
      [--screenshot https://you.example.com/1.png ...] [--channel stable|beta] \
      [--register-key author.pub]
    --register-key publishers/<you>.json кошот (биринчи жөнөтүүңүздө гана керек).
  4. CI гейттери жөнөтүүнү текшерет (төмөндө караңыз), AI карап чыгуу тобокел вердиктин жайгаштырат, ал эми AiHummer тейлөөчүсү колдон карап чыгып, бириктирет.
  5. Бириктирүүдө релиз бекитилген реестр ачкычы менен каршы кол коюлуп, CDNде өзүнчө community-catalog.jsonга жарыяланат. Бул булакты кошкон ар бир инстанция плагинди көрөт; ядро ага бекитилген ачкыч аркылуу ишенет — оператор боюнча ишеним кадамы керек эмес.

Жөнөтүү келишими

PR эки файл кошот (форманы publish --public түзөт жана ал туруктуу):

publishers/<publisher>.json — бир жолку каттоо:

{
  "publisher": "acme",
  "public_key": "<base64 std ed25519 public key>",
  "key_id": "<sha256(public_key)[:16] in hex>",
  "contact": "you@example.com"
}

catalog/<publisher>/<slug>/plugin.json — жөнөтүү (ар бир версия линиясына бирден):

{
  "publisher": "acme",
  "slug": "hello-tool",
  "namespaced_slug": "@acme/hello-tool",
  "version": "1.0.0",
  "channel": "stable",
  "artifact_url": "https://acme.example.com/hello-tool-1.0.0.tar.gz",
  "license": "MIT",
  "publisher_key_id": "bd68f2deedad25b1",
  "signature": "<base64 ed25519 over the release identity>",
  "manifest": { "...the full Manifest object..." }
}
  • namespaced_slug @<publisher>/<slug>ке барабар болушу керек.
  • channelstable | beta.
  • artifact_urlавтор хосттогон .tar.gz.
  • publisher_key_id катталган жарыялоочунун key_idсине дал келүүсү керек.
  • Кол коюлган релиз идентификациясы = slug \x00 version \x00 artifact_url байттары.
  • Коомдук жөнөтүү үчүн камтылган manifest description, iconду (жана кошумча screenshotsту) алып жүрүшү керек — дүкөн-барак талааларын караңыз.

[!TIP] aihummer plugin publish --public бул файлдарды туура формада чогултуп, сиз үчүн PR ачат — JSONду колдон оңдоонун кереги жок.

Модерация

Ар бир жөнөтүү автоматташтырылган текшерүүдөн өтөт (жөнөтүү келишими, кол тамга жана коопсуздук скандоосу), андан кийин кеңеш берүүчү AI тобокел карап чыгуусунан, жана акырында AiHummer командасынын милдеттүү адамдык карап чыгуусунан. Автоматташтыруу да, AI да эч качан өзү бириктирбейт — чечим дайыма тейлөөчүнүкү, жана алардын бекитүүсүсүз эч нерсе каталогго жетпейт. Кийинчерээк зыяндуу же бузук экени табылган жарыяланган плагин жокко чыгарылып, кийинки синхрондоодо каталогдон чыгарылышы мүмкүн.

Кошумча булак катары коомдук каталог

Коомдук плагиндер курацияланган биринчи тараптын каталогун кайра жазбаган өзүнчө community-catalog.jsonга жарыяланат. Инстанция аны Plugins → Sources ичинде (же POST /v1/admin/modules/catalog/sources) кошумча булак катары кошот. Караңыз: Орнотуу жана жаңылоолор жана Обзор жана деңгээлдер.

Эми кайда