Нашри плагин
Плагинеро бо SDK-и плагин сохтед? Шумо метавонед онро дар ду реҷа нашр кунед:
- Хусусӣ (барои худатон) — бори паҳлӯӣ ба инстанси худатон. Артефакт ҳеҷ гоҳ онро тарк намекунад.
- Ҷамъиятӣ (барои ҳама) — ба каталоги расмии куратсияшудаи AiHummer тавассути PR пешниҳод кунед.
Қиёс: насби дастии .vsix (хусусӣ) дар муқоиса бо нашр ба VS Code Marketplace
(ҷамъиятӣ); реестри хусусии npm дар муқоиса бо реестри ҷамъиятӣ.
Реҷаи хусусӣ — бори паҳлӯӣ ба инстанси худатон
Инро вақте истифода баред, ки танҳо ба худатон плагин лозим аст: пайвасткунаки дохилӣ, интегратсияи фармоишӣ, сохтаи озмоишӣ.
Қадамҳо
- Бастаро бастабандӣ ва имзо кунед:
aihummer plugin package ./my-plugin aihummer plugin sign --key author.key --manifest ./my-plugin/manifest.json my-plugin-1.0.0.tar.gz - Онро ба инстанс ба яке аз ду роҳ боргузорӣ кунед:
- Admin UI → Plugins → “Upload plugin” — бастаро бикашед; ё
- CLI:
aihummer plugin publish --private --instance https://your-instance \ --token <admin-token> my-plugin-1.0.0.tar.gz
- Дар зери сатҳ ин
POST /v1/admin/modules/uploadаст (multipart,integrations:write): артефакт ба анбори blob-и инстанс (AIHUMMER_BLOB_DIR) дар зери истинодиblob:мерасад ва сатри каталог боorigin = local-private,visibility = privateсабт мешавад. - Плагин дар бозор бо нишони Private пайдо мешавад ва тавассути роҳи муқаррарӣ насб мегардад — воҳиди изолятсияшудаи systemd + гейти саломатӣ.
Эътимод: калиди собит ва анбори эътимод
Артефактҳои хусусӣ бояд имзо шаванд. Вақте плагинеро, ки бо калиди номаълум имзо шудааст, боргузорӣ мекунед, Admin UI аз шумо хоҳиш мекунад, ки калиди муаллифро тасдиқ кунед ба анбори эътимоди инстанс (як зарба). Пас аз тасдиқ, имзо дар ҳар насб ва навсозӣ тасдиқ мешавад.
- Артефактҳо аз манбаи расмӣ нисбати калиди реестри собитшуда дар core тасдиқ мешаванд — эътимоднок ба таври пешфарз, бе қадами иловагӣ.
- Артефактҳои хусусӣ нисбати калидҳои анбори эътимоди инстанс тасдиқ мешаванд.
- Бастаҳои имзонашуда рад мешаванд — ба истиснои реҷаи dev барои такрори
маҳаллӣ:
AIHUMMER_PLUGIN_DEV_UNSIGNED=1.
[!WARNING]
AIHUMMER_PLUGIN_DEV_UNSIGNED=1тасдиқи имзоро ғайрифаъол мекунад ва танҳо барои рушди маҳаллӣ пешбинӣ шудааст. Ҳеҷ гоҳ онро дар инстанси аз берун дастрас фаъол накунед.
Реҷаи ҷамъиятӣ — реестри ҷамъиятӣ
Барои дастрас кардани плагин ба ҳар инстанс, онро ба реестри ҷамъиятӣ
AiHummer/marketplace-catalog
тавассути PR пешниҳод кунед: санҷишҳои худкор + баррасӣ ва ҳангоми тасдиқ AiHummer
нашрро имзои муқобил мекунад.
Қадамҳо
- Як маротиба — таҳиягарро ба қайд гиред. Калид тавлид кунед ва фазои номро
захира кунед:
Ин фазои номиaihummer plugin keygen # prints the public key (base64) and key id@you-ро захира мекунад. Калиди хусусиро ба худатон нигоҳ доред — он ҳар пешниҳодро имзо мекунад. - Артефактро мизбонӣ кунед дар URL-и устувори HTTPS (артефакт аз ҷониби муаллиф мизбонӣ мешавад, на аз ҷониби AiHummer).
- 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-ро илова мекунад (танҳо дар пешниҳоди аввалини шумо лозим аст). - Гейтҳои CI пешниҳодро тасдиқ мекунанд (нигаред ба поён), баррасии AI ҳукми хатарро мегузорад ва нигоҳдорандаи AiHummer онро баррасӣ ва ба таври дастӣ мерҷ мекунад.
- Ҳангоми мерҷ нашр бо калиди реестри собит имзои муқобил мешавад ва ба
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>баробар бошад.channel∈stable | 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) илова мекунад. Нигаред ба
Насб ва навсозиҳо ва
Шарҳ ва зинаҳо.
Қадами оянда
- SDK-и плагин — майдонҳои манифест ва фармонҳои
aihummer plugin. - Насб ва навсозиҳо — бисёрманбаъ, модели эътимод, навсозиҳои имзошуда, рейтинг.
- Бозор: шарҳ ва зинаҳо — реестри расмӣ дар муқоиса бо ҷамъиятӣ.