AiHummer
ქართული
შესვლა
v1.0.x
{ }Swagger

პლაგინის გამოქვეყნება

v1.0.x · განახლდა 2026-06-27

ააგეთ პლაგინი Plugin SDK-ით? შეგიძლიათ გამოაქვეყნოთ ის ორ რეჟიმში:

  • პირადი (საკუთარი თავისთვის) — side-load თქვენს ინსტანციაში. არტეფაქტი არასოდეს ტოვებს მას.
  • საჯარო (ყველასთვის) — გაგზავნეთ კურირებულ ოფიციალურ AiHummer კატალოგში PR-ით.

ანალოგია: .vsix-ის ხელით ინსტალაცია (პირადი) წინააღმდეგ VS Code Marketplace-ში გამოქვეყნებისა (საჯარო); პირადი npm registry წინააღმდეგ საჯაროსი.

პირადი რეჟიმი — side-load თქვენს ინსტანციაში

გამოიყენეთ ეს, როცა პლაგინი მხოლოდ თქვენ გჭირდებათ: შიდა კონექტორი, მორგებული ინტეგრაცია, სატესტო build.

ნაბიჯები

  1. შეფუთეთ და ხელი მოაწერეთ bundle-ს:
    aihummer plugin package ./my-plugin
    aihummer plugin sign --key author.key --manifest ./my-plugin/manifest.json my-plugin-1.0.0.tar.gz
  2. ატვირთეთ ის ინსტანციაში ორი გზიდან ერთით:
    • ადმინ-UI → Plugins → “Upload plugin” — გადააადგილეთ bundle; ან
    • 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: ref-ის ქვეშ, და კატალოგის სტრიქონი რეგისტრირდება origin = local-private, visibility = private მნიშვნელობებით.
  4. პლაგინი ჩნდება marketplace-ში Private ტეგით და ინსტალირდება ჩვეულებრივი გზით — იზოლირებული systemd ერთეული + ჯანმრთელობის ბარიერი.

ნდობა: ფიქსირებული გასაღები და trust store

პირად არტეფაქტებს ხელი უნდა ჰქონდეთ მოწერილი. როცა ატვირთავთ უცნობი გასაღებით ხელმოწერილ პლაგინს, ადმინ-UI გთხოვთ დაამტკიცოთ ავტორის გასაღები ინსტანციის trust store-ში (ერთი დაწკაპუნება). დამტკიცების შემდეგ ხელმოწერა მოწმდება ყოველ ინსტალაციასა და განახლებაზე.

  • არტეფაქტები ოფიციალური წყაროდან მოწმდება core-ში ფიქსირებული registry გასაღების მიმართ — ნაგულისხმევად სანდო, დამატებითი ნაბიჯის გარეშე.
  • პირადი არტეფაქტები მოწმდება ინსტანციის trust store-ში არსებული გასაღებების მიმართ.
  • ხელმოუწერელი bundle-ები უარყოფილია — გარდა dev რეჟიმისა ლოკალური იტერაციისთვის: AIHUMMER_PLUGIN_DEV_UNSIGNED=1.

[!WARNING] AIHUMMER_PLUGIN_DEV_UNSIGNED=1 თიშავს ხელმოწერის ვერიფიკაციას და განკუთვნილია მხოლოდ ლოკალური განვითარებისთვის. არასოდეს ჩართოთ ის გარედან მისაწვდომ ინსტანციაზე.

საჯარო რეჟიმი — საჯარო registry

პლაგინის ყველა ინსტანციისთვის ხელმისაწვდომად გასახდელად გაგზავნეთ ის საჯარო registry-ში AiHummer/marketplace-catalog PR-ით: ავტომატური შემოწმებები + განხილვა, და დამტკიცებისას AiHummer თანახელს აწერს release-ს.

ნაბიჯები

  1. ერთჯერადი — დაარეგისტრირეთ გამომქვეყნებელი. დააგენერირეთ გასაღები და დაიჯავშნეთ namespace:
    aihummer plugin keygen                # ბეჭდავს საჯარო გასაღებს (base64) და გასაღების id-ს
    ეს ჯავშნავს @you namespace-ს. შეინახეთ პირადი გასაღები მხოლოდ თქვენთვის — ის ხელს აწერს ყოველ წარდგენას.
  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. შერწყმისას release თანახელმოწერილია ფიქსირებული registry გასაღებით და ქვეყნდება ცალკე 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-ს.
  • ხელმოწერილი release-ის იდენტობა = ბაიტები slug \x00 version \x00 artifact_url.
  • საჯარო წარდგენისთვის ჩაშენებულ manifest-ს უნდა ჰქონდეს description, icon (და სურვილისამებრ screenshots) — იხილეთ store-გვერდის ველები.

[!TIP] aihummer plugin publish --public აწყობს ამ ფაილებს სწორ ფორმაში და ხსნის PR-ს თქვენ ნაცვლად — JSON-ის ხელით რედაქტირება საჭირო არ არის.

მოდერაცია

ყოველი წარდგენა გადის ავტომატურ შემოწმებას (წარდგენის კონტრაქტი, ხელმოწერა და უსაფრთხოების სკანირება), შემდეგ სარეკომენდაციო AI რისკის განხილვას, და ბოლოს სავალდებულო ადამიანურ განხილვას AiHummer-ის გუნდის მიერ. არც ავტომატიზაცია და არც AI არასოდეს ერწყმის დამოუკიდებლად — გადაწყვეტილება ყოველთვის შემნახველისაა და კატალოგს არაფერი აღწევს მათი დამტკიცების გარეშე. გამოქვეყნებული პლაგინი, რომელიც მოგვიანებით აღმოჩნდება მავნე ან გაფუჭებული, შეიძლება გაუქმდეს და ამოვარდეს კატალოგიდან შემდეგ სინქრონიზაციაზე.

საზოგადოების კატალოგი როგორც დამატებითი წყარო

საჯარო პლაგინები ქვეყნდება ცალკე community-catalog.json-ში, რომელიც არ გადააწერს კურირებულ პირველი მხარის კატალოგს. ინსტანცია მას ამატებს როგორც დამატებით წყაროს Plugins → Sources-ში (ან POST /v1/admin/modules/catalog/sources). იხილეთ ინსტალაცია და განახლებები და მიმოხილვა და დონეები.

სად შემდეგ