AiHummer
Аԥсшәа
Аиалаҵара
v1.0.x
{ }Swagger

Аҿартҟәал акьыԥхьра

v1.0.x · ирҿыцуп 2026-06-27

Аҿартҟәал SDK ала аҿартҟәал шәаргылеи? Уи ҩба арежим ала шәкьыԥхьыр шәылшоит:

  • Шәахатә (шәара шәзы)шәара шәхатә инстанциахь side-load. Аартефакт уаҟынтә ддәылҵӡом.
  • Ауаажәларратә (зегьы рзы) — иҟәышу официалтә AiHummer акаталогахь PR ала ишьҭра.

Аналогиа: .vsix напала аҭагалара (шәахатә) насгьы VS Code Marketplace ахь акьыԥхьра (ауаажәларратә); хазы npm регистри ауаажәларратәи.

Шәахатә режим — шәинстанциахь side-load

Уи ахы иадырхәа шәара шәара мацара аҿартҟәал ианышәҭаху: аҩныҟатә ацҳазыҩ, ахатә интеграциа, атесттә аргылара.

Ашьаҿақәа

  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 store аҟны (AIHUMMER_BLOB_DIR) blob: аҵыԥхьаӡала иҟалоит, насгьы каталогтә цәаҳәа origin = local-private, visibility = private ала иҭагалоуп.
  4. Аҿартҟәал маркетплейс аҟны Private ала иарбаны иаарԥшуп насгьы абжьаратә мҩа ала иҭагалоит — sandbox 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                # ауаажәларратә акьыс (base64) насгьы акьыс id икьыԥхьуеит
    Уи @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 ахь икьыԥхьуп. Абри аҵыхәтәи зацҵаз инстанциа зегьы аҿартҟәал ибоит; 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) аныҟәгароуп — иаҳәшьа store-page аҭакыгақәа.

[!TIP] aihummer plugin publish --public абарҭ афайлқәа иашаны иеиҿнакаауеит насгьы шәара шәзы PR иаанартуеит — JSON напала аиҩыжәара аҭахӡам.

Амодерациа

Аишьҭ зегьы автоматтә ахԥшааразы ииасуеит (аишьҭратә контракт, анышьҭ насгьы ашәарҭадаратә скан), нас арзҳәаратә AI ашәарҭара ахцәажәара, насгьы агьежьы иҵаулоу ауаҩразратә ахцәажәара AiHummer акоманда ала. Автоматизациеи Ai-и зныкгьы хазы иаиҵхаӡом — аӡбара зегьы амаинтейнер иоуп, насгьы рыжәуыргарада акаталогахь акгьы наӡаӡом. Икьыԥхьу аҿартҟәал анаҩс изакьоу ма иҟәырҭоу шәахьдыруа ишьҭыхыр улшоит насгьы аиҵыхә иҵауреан акаталог аҟынтә идгалатәуп.

Community catalog аҵыхәтәи иацҵоу еиԥш

Ауаажәларратә аҿартҟәалақәа хазы community-catalog.json ахь икьыԥхьуп, иара иҟәышу актәи-напала акаталог изырыцқьам. Инстанциа уи Plugins → Sources аҟны (ма POST /v1/admin/modules/catalog/sources) аҵыхәтәи иацҵоу еиԥш иацҵоит. Иаҳәшьа Аҭагалара & арҿыцрақәа насгьы Аиҿкаашьа & аҵыхәтәиқәа.

Уаҩ узаауеи