कॉन्फ़िगरेशन
हर Kazzle ऐप के प्रोजेक्ट रूट में एकkazzle.config.ts होता है। यह फ़ाइल परिभाषित करती है कि आपके ऐप में क्या है — कंपोनेंट्स, स्किल्स और मेटाडेटा।
त्वरित शुरुआत
import { defineConfig } from '@kazzle/app';
export default defineConfig({
components: [
{ name: 'My App', type: 'ui', path: '.' }
]
});
defineConfig हेल्पर TypeScript ऑटोकंप्लीशन और वेलिडेशन प्रदान करता है। टाइप्स @kazzle/app पैकेज से आते हैं जो हर टेम्पलेट में शामिल होता है।
शीर्ष-स्तरीय फ़ील्ड्स
| फ़ील्ड | टाइप | आवश्यक | विवरण |
|---|---|---|---|
name | string | नहीं | ऐप कैटलॉग में दिखाया जाने वाला मार्केटिंग डिस्प्ले नाम। जब छोड़ा जाए तो स्लग पर वापस जाता है। |
subtitle | string | नहीं | कैटलॉग में ऐप नाम के नीचे दिखाई देने वाली छोटी एक-पंक्ति टैगलाइन (जैसे “Kazzle से Mac ऐप्स को नियंत्रित करें”)। प्रकाशित करने के लिए आवश्यक — छोड़ने पर प्रकाशन विफल हो जाता है। |
version | string | नहीं | लेखक द्वारा सेट किया गया संस्करण लेबल (जैसे “1.2.0”)। केवल प्रदर्शन के लिए; प्रकाशन पर स्नैपशॉट किया जाता है और क्लोन पर फोर्क किए गए संस्करण के रूप में दिखाया जाता है। |
icon | string | नहीं | रेपो रूट के सापेक्ष ऐप आइकन फ़ाइल का पथ (png, jpg, svg, webp, ico)। प्रकाशन पर CDN पर अपलोड किया जाता है। |
accentColor | string | नहीं | वैकल्पिक ब्रांड एक्सेंट रंग हेक्स स्ट्रिंग के रूप में (जैसे “#3b82f6”)। ऐप आइकन चिप और विवरण हीरो को टिंट करता है। जब छोड़ा जाए तो एक्सेंट आइकन से ऑटो-सैंपल किया जाता है। |
kazzleAuth | "optional" | "required" | नहीं | ऐप लॉन्च सतह के लिए पहचान गेटिंग — “optional” (यदि Kazzle उपयोगकर्ता मौजूद है तो पहचान प्रदान की जाती है) या “required” (देखने के लिए लॉगिन किए गए Kazzle उपयोगकर्ता होना चाहिए)। |
launchUrl | string | नहीं | शाब्दिक निरपेक्ष URL जो Kazzle के अंदर खोला जाता है जब ऐप क्लिक किया जाता है, शब्दशः उपयोग किया जाता है। जब छोड़ा जाए तो लॉन्च सतह UI कंपोनेंट का तैनात पूर्वावलोकन URL होता है। |
webhookUrl | string | नहीं | प्रकाशक एंडपॉइंट जो Kazzle app.installed / app.uninstalled पर POST करता है (इंस्टॉल कुंजी प्रदान करता है)। |
appLogin | boolean | नहीं | इस ऐप के लिए अंतिम-उपयोगकर्ता लॉगिन (@kazzle/app/auth के माध्यम से — आज Google)। kazzleAuth से अलग (लॉन्च सतह का Kazzle-खाता गेटिंग); appLogin ऐप के अपने उपयोगकर्ता हैं, इसके अपने डेटाबेस में संग्रहीत। एक प्रक्रिया + डेटाबेस की आवश्यकता है। |
components | object[] | नहीं | निष्पादन योग्य कंपोनेंट्स — UI फ्रंटएंड्स या पृष्ठभूमि प्रक्रियाएं |
skills | object[] | नहीं | AI स्किल परिभाषाएं — मार्कडाउन फ़ाइलें जो AI डोमेन ज्ञान के लिए पढ़ता है |
capabilities | object | नहीं | वैकल्पिक डेस्कटॉप एकीकरण सुविधाएं जैसे हॉटकीज़, सूचनाएं और स्टेटस बार उपस्थिति |
कंपोनेंट फ़ील्ड्स
components[] में प्रत्येक प्रविष्टि:
| फ़ील्ड | टाइप | आवश्यक | विवरण |
|---|---|---|---|
name | string | हाँ | ऐप के भीतर अद्वितीय कंपोनेंट नाम |
type | "ui" | "process" | हाँ | कंपोनेंट टाइप — ui (अधिकतम 1) या process |
path | string | हाँ | ऐप निर्देशिका के भीतर प्रवेश पथ |
runtime | object | नहीं | कमांड्स और वैकल्पिक env ओवरराइड्स: { dev?, prod? } |
runtime.dev.command | string | नहीं | dev सर्वर शुरू करने के लिए कमांड (जैसे "bun run dev") |
runtime.dev.env | object | नहीं | Dev-केवल env ओवरराइड। कंपोनेंट env पर वापस जाता है। |
runtime.prod.command | string | नहीं | उत्पादन में शुरू करने के लिए कमांड (जैसे "bun run start") |
runtime.prod.build | string | नहीं | उत्पादन के लिए बिल्ड करने के लिए कमांड (जैसे "vite build") |
runtime.prod.env | object | नहीं | उत्पादन-केवल env ओवरराइड। कंपोनेंट env पर वापस जाता है। |
schedule | string | नहीं | प्रक्रिया कंपोनेंट्स के लिए Cron शेड्यूल (जैसे "*/5 * * * *") |
trigger | "webhook" | "event" | नहीं | प्रक्रिया कंपोनेंट्स के लिए ट्रिगर मोड |
env | object | नहीं | गुप्त संग्रह + env var इंजेक्शन के लिए पर्यावरण |
env.collection | string | हाँ (यदि env) | गुप्त संग्रह स्लग |
env.environment | string | हाँ (यदि env) | पर्यावरण स्लग |
env.include | string[] | नहीं | केवल ये env var नाम इंजेक्ट करें। यदि छोड़ा जाए तो संग्रह+पर्यावरण से सभी इंजेक्ट करें। |
स्किल फ़ील्ड्स
skills[] में प्रत्येक प्रविष्टि:
| फ़ील्ड | टाइप | आवश्यक | विवरण |
|---|---|---|---|
name | string | हाँ | स्किल नाम |
path | string | हाँ | ऐप रूट के सापेक्ष SKILL.md फ़ाइल का पथ |
बाधाएं
- प्रति ऐप अधिकतम 1 UI कंपोनेंट
- कंपोनेंट
nameमान ऐप के भीतर अद्वितीय होने चाहिए
टेम्पलेट उदाहरण
ai app
import { defineConfig } from '@kazzle/app';
export default defineConfig({
/** एक-पंक्ति कैटलॉग टैगलाइन। प्रकाशित करने के लिए आवश्यक। */
subtitle: 'My App',
icon: 'components/ui/public/favicon.svg',
components: [