AiHummer
Тоҷикӣ
Даромадан
v1.0.x
{ }Swagger

Нашри плагин

v1.0.x · навсозӣ шуд 2026-06-27

Плагинеро бо SDK-и плагин сохтед? Шумо метавонед онро дар ду реҷа нашр кунед:

  • Хусусӣ (барои худатон) — бори паҳлӯӣ ба инстанси худатон. Артефакт ҳеҷ гоҳ онро тарк намекунад.
  • Ҷамъиятӣ (барои ҳама) — ба каталоги расмии куратсияшудаи AiHummer тавассути PR пешниҳод кунед.

Қиёс: насби дастии .vsix (хусусӣ) дар муқоиса бо нашр ба VS Code Marketplace (ҷамъиятӣ); реестри хусусии npm дар муқоиса бо реестри ҷамъиятӣ.

Реҷаи хусусӣ — бори паҳлӯӣ ба инстанси худатон

Инро вақте истифода баред, ки танҳо ба худатон плагин лозим аст: пайвасткунаки дохилӣ, интегратсияи фармоишӣ, сохтаи озмоишӣ.

Қадамҳо

  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) дар зери истиноди blob: мерасад ва сатри каталог бо origin = local-private, visibility = private сабт мешавад.
  4. Плагин дар бозор бо нишони Private пайдо мешавад ва тавассути роҳи муқаррарӣ насб мегардад — воҳиди изолятсияшудаи systemd + гейти саломатӣ.

Эътимод: калиди собит ва анбори эътимод

Артефактҳои хусусӣ бояд имзо шаванд. Вақте плагинеро, ки бо калиди номаълум имзо шудааст, боргузорӣ мекунед, Admin UI аз шумо хоҳиш мекунад, ки калиди муаллифро тасдиқ кунед ба анбори эътимоди инстанс (як зарба). Пас аз тасдиқ, имзо дар ҳар насб ва навсозӣ тасдиқ мешавад.

  • Артефактҳо аз манбаи расмӣ нисбати калиди реестри собитшуда дар core тасдиқ мешаванд — эътимоднок ба таври пешфарз, бе қадами иловагӣ.
  • Артефактҳои хусусӣ нисбати калидҳои анбори эътимоди инстанс тасдиқ мешаванд.
  • Бастаҳои имзонашуда рад мешаванд — ба истиснои реҷаи dev барои такрори маҳаллӣ: AIHUMMER_PLUGIN_DEV_UNSIGNED=1.

[!WARNING] AIHUMMER_PLUGIN_DEV_UNSIGNED=1 тасдиқи имзоро ғайрифаъол мекунад ва танҳо барои рушди маҳаллӣ пешбинӣ шудааст. Ҳеҷ гоҳ онро дар инстанси аз берун дастрас фаъол накунед.

Реҷаи ҷамъиятӣ — реестри ҷамъиятӣ

Барои дастрас кардани плагин ба ҳар инстанс, онро ба реестри ҷамъиятӣ AiHummer/marketplace-catalog тавассути PR пешниҳод кунед: санҷишҳои худкор + баррасӣ ва ҳангоми тасдиқ AiHummer нашрро имзои муқобил мекунад.

Қадамҳо

  1. Як маротиба — таҳиягарро ба қайд гиред. Калид тавлид кунед ва фазои номро захира кунед:
    aihummer plugin keygen                # prints the public key (base64) and key id
    Ин фазои номи @you-ро захира мекунад. Калиди хусусиро ба худатон нигоҳ доред — он ҳар пешниҳодро имзо мекунад.
  2. Артефактро мизбонӣ кунед дар URL-и устувори HTTPS (артефакт аз ҷониби муаллиф мизбонӣ мешавад, на аз ҷониби 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. Ҳангоми мерҷ нашр бо калиди реестри собит имзои муқобил мешавад ва ба community-catalog.json-и алоҳида дар CDN нашр мегардад. Ҳар инстансе, ки ин манбаъро илова кардааст, плагинро мебинад; core ба он тавассути калиди собит эътимод мекунад — қадами эътимоди ҳар оператор лозим нест.

Қарордоди пешниҳод

Як 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 → SourcesPOST /v1/admin/modules/catalog/sources) илова мекунад. Нигаред ба Насб ва навсозиҳо ва Шарҳ ва зинаҳо.

Қадами оянда