Uygulamayı aç
Moonborn — Developers

Marketplace'te yayınla

Bir personayı Moonborn marketplace'ine gönder, moderasyondan geç, başkalarının listing'ini kurmasına ya da fork'lamasına izin ver.

Marketplace cross-org dağıtım kanalı: bir persona yayınlarsın, moderasyondan geçer, downstream kullanıcılar onu kurar ya da fork'lar. Bu tutorial yayıncı tarafını anlatır.

1. Personayı hazırla

Gönderim öncesi manuel audit çalıştır ve distinctiveness skorunu kontrol et. Audit'ten geçemeyen listing'ler moderasyon kuyruğunda otomatik reddedilir.

const audit = await client.personas.runAudit({ id: persona.id });
if (audit.overallScore < 4.0) {
  console.log('Yayınlamadan önce personayı refine et — audit çok düşük.');
}

2. Listing'i gönder

const listing = await client.marketplace.publishListing({
  personaId: persona.id,
  license: 'CC-BY-4.0',
  priceCents: 0,
  description:
    'SaaS onboarding için ayarlanmış karakter-tutarlı bir customer-support persona.',
});
 
console.log(listing.status); // "in_review"

Lisans seçenekleri: CC-BY-4.0, CC-BY-SA-4.0, CC0-1.0, artı ücretli listing'ler için Moonborn'a özgü bir commercial-use lisansı. Lisans hangi fork'lara izin verildiğini etkiler (ShareAlike downstream fork'ların aynı lisansı tutması gerektiği anlamına gelir).

3. Moderasyonu bekle

Her yeni listing in_review'a girer. Default policy human review'dan geçirir; SLA hedefi marketplace.moderation.review_sla_hours (default 48 saat).

Üç sonuç:

  • published — listing canlı, downstream install/fork'lar kilidi açıldı.
  • unpublished — reddedildi; listing verdict gerekçesi ve remediation ipucu döner.
  • in_review — derin inceleme için tutuluyor (tipik olarak auto-policy bir insanın doğrulaması gereken bir şeyi flag'lediğinde).

Sonucu kendi ürününe bağlamak istersen marketplace.listing.published ve marketplace.listing.unpublished webhook event'lerine abone ol.

4. Listing'i yönet

Yayınlandıktan sonra yeniden göndermeden metadata güncelleyebilirsin:

await client.marketplace.updateListing({
  id: listing.id,
  description: 'Güncellendi: artık billing eskalasyonlarını temiz şekilde ele alıyor.',
});

Manuel olarak yayından kaldırmak için:

await client.marketplace.unpublishListing({ id: listing.id });

Yayından kaldırılsa bile listing'ler lineage ağacında kalır — downstream fork'lar kırılmaz, ama listing /v1/marketplace/listings listesinde görünmeyi durdurur.

5. Install ve fork'ları oku

const detail = await client.marketplace.getListing({ id: listing.id });
console.log(detail.downloads, detail.forks, detail.ratingsAvg);

Her install downloads'u artırır. Her fork forks'u artırır ve listing'ine atıflı bir lineage edge yazar (bkz. Lineage + fork tree).

6. Commerce (Enterprise)

Ücretli listing'ler marketplace.commerce.enabled (Enterprise tier-gate) ve bir creator Stripe Connect hesabı gerektirir. Gelir paylaşımı marketplace.commerce.revenue_share (default 0.7 — %70 creator, %30 platform).

const creator = await client.marketplace.onboardCreator();
console.log(creator.stripeOnboardingUrl);
// Kullanıcıyı Stripe Connect onboarding'i tamamlaması için oraya gönder.

Payout'lar creator'ın bekleyen bakiyesi marketplace.commerce.payout_min_usd'yi (default $50) geçtiğinde tetiklenir. Saatlik reconciliation cron'u usage_events'i Stripe kayıtlarına karşı audit eder.

Dürüst kapsam

Marketplace persona şablonu gönderir. Chat geçmişi, memory state ya da workspace-scope'lu konfigürasyon göndermez. Her kurulum kurulumu yapanın kendi workspace'ine karşı çalışır.

Sonraki