Yapılandırma
Her Kazzle uygulamasının proje kökünde birkazzle.config.ts dosyası vardır. Bu dosya uygulamanızın içeriğini tanımlar — bileşenler, beceriler ve meta veriler.
Hızlı başlangıç
import { defineConfig } from '@kazzle/app';
export default defineConfig({
components: [
{ name: 'My App', type: 'ui', path: '.' }
]
});
defineConfig yardımcısı TypeScript otomatik tamamlama ve doğrulama sağlar. Türler her şablonda bulunan @kazzle/app paketinden gelir.
Üst düzey alanlar
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
name | string | hayır | Uygulama kataloğunda gösterilen pazarlama adı. Atlanırsa slug’a geri döner. |
subtitle | string | hayır | Katalogda uygulama adının altında gösterilen kısa tek satırlık etiket (örn. “Kazzle’dan Mac uygulamalarını kontrol edin”). Yayınlamak için gerekli — atlanırsa yayınlama başarısız olur. |
version | string | hayır | Yazar tarafından belirlenen sürüm etiketi (örn. “1.2.0”). Yalnızca görüntüleme amaçlı; yayınlandığında anlık görüntü alınır ve klonlarda çatallanmış sürüm olarak gösterilir. |
icon | string | hayır | Depo kökü göre uygulama simgesi dosyasının yolu (png, jpg, svg, webp, ico). Yayınlandığında CDN’ye yüklenir. |
accentColor | string | hayır | İsteğe bağlı marka vurgu rengi hex dizesi olarak (örn. “#3b82f6”). Uygulama simgesi yongasını ve detay kahramanını tinter. Atlanırsa vurgu simgeden otomatik olarak örneklenir. |
kazzleAuth | "optional" | "required" | hayır | Uygulama başlatma yüzeyi için kimlik doğrulama — “optional” (Kazzle kullanıcısı varsa kimlik sağlanır) veya “required” (görüntülemek için oturum açmış Kazzle kullanıcısı olmalı). |
launchUrl | string | hayır | Uygulamaya tıklandığında Kazzle içinde açılan tam URL, olduğu gibi kullanılır. Atlanırsa başlatma yüzeyi UI bileşeninin dağıtılan önizleme URL’sidir. |
webhookUrl | string | hayır | Kazzle’ın app.installed / app.uninstalled üzerine POST yaptığı yayıncı uç noktası (yükleme anahtarını teslim eder). |
components | object[] | hayır | Yürütülebilir bileşenler — UI ön uçları veya arka plan işlemleri |
skills | object[] | hayır | AI beceri tanımları — AI’ın alan bilgisi için okuduğu markdown dosyaları |
capabilities | object | hayır | Kısayol tuşları, bildirimler ve durum çubuğu varlığı gibi isteğe bağlı masaüstü entegrasyon özellikleri |
Bileşen alanları
components[] içindeki her giriş:
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
name | string | evet | Uygulama içinde benzersiz bileşen adı |
type | "ui" | "process" | evet | Bileşen türü — ui (maks 1) veya process |
path | string | evet | Uygulama dizini içinde giriş yolu |
runtime | object | hayır | Komutlar ve isteğe bağlı env geçersiz kılmaları: { dev?, prod? } |
runtime.dev.command | string | hayır | Dev sunucusunu başlatma komutu (örn. "bun run dev") |
runtime.dev.env | object | hayır | Yalnızca dev env geçersiz kılması. Bileşen env’ye geri döner. |
runtime.prod.command | string | hayır | Üretimde başlatma komutu (örn. "bun run start") |
runtime.prod.build | string | hayır | Üretim için derleme komutu (örn. "vite build") |
runtime.prod.env | object | hayır | Yalnızca üretim env geçersiz kılması. Bileşen env’ye geri döner. |
schedule | string | hayır | Process bileşenleri için Cron zamanlaması (örn. "*/5 * * * *") |
trigger | "webhook" | "event" | hayır | Process bileşenleri için tetikleme modu |
env | object | hayır | Gizli dizi koleksiyonu + env var enjeksiyonu için ortam |
env.collection | string | evet (env varsa) | Gizli dizi koleksiyonu slug’u |
env.environment | string | evet (env varsa) | Ortam slug’u |
env.include | string[] | hayır | Yalnızca bu env var adlarını enjekte et. Atlanırsa koleksiyondan tümünü enjekte et. |
Beceri alanları
skills[] içindeki her giriş:
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
name | string | evet | Beceri adı |
path | string | evet | Uygulama köküne göre SKILL.md dosyasının yolu |
Kısıtlamalar
- Uygulama başına maksimum 1 UI bileşeni
- Bileşen
namedeğerleri uygulama içinde benzersiz olmalıdır
Şablon örnekleri
ai app
import { defineConfig } from '@kazzle/app';
export default defineConfig({
/** Tek satırlık katalog etiketi. Yayınlamak için gerekli. */
subtitle: 'My App',
icon: 'components/ui/public/favicon.svg',
components: [
{ name: 'ui', type: 'ui', path: './components/ui' },
{ name: 'server', type: 'process', path: './components/server/index.ts', runtime: { dev: { command: 'bun run dev' }, prod: { command: 'bun run start' } } },
],
});
ui db app
import { defineConfig } from '@kazzle/app';
export default defineConfig({
/** Tek satırlık katalog etiketi. Yayınlamak için gerekli. */
subtitle: 'My App',
icon: 'components/ui/public/favicon.svg',
components: [
{ name: 'ui', type: 'ui', path: './components/ui' },
{ name: 'server', type: 'process', path: './components/server/index.ts', runtime: { dev: { command: 'bun run dev' }, prod: { command: 'bun run start' } } },
],
});
ui app
import { defineConfig } from '@kazzle/app';
export default defineConfig({
/** Tek satırlık katalog etiketi. Yayınlamak için gerekli. */
subtitle: 'My App',
/** Depo köküne göre uygulama simgesi yolu. Yayınlandığında CDN'ye yüklenir. */
icon: 'components/ui/public/favicon.svg',
/** Uygulama bileşenleri — her giriş dağıtılabilir bir birimi tanımlar. Maksimum 1 UI bileşeni. */
components: [
{ name: 'My App', type: 'ui', path: './components/ui' },
],
});