import { defineConfig } from '@kazzle/app'; export default defineConfig({ /** One-line catalog tagline. Required to publish. */ subtitle: '{{APP_NAME}}', /** Path to the app icon relative to the repo root. Uploaded to CDN on publish. */ icon: 'icon.svg', /** App components — each entry defines a deployable unit. */ components: [ { name: '{{APP_NAME}}', type: 'process', path: './components/process/index.ts', runtime: { dev: { command: 'bun run dev' }, prod: { command: 'bun run start' } }, // Persistent processes are long-running servers. The platform posts // triggers into the running server at each trigger's `path` with // `Authorization: Bearer ${KAZZLE_TRIGGER_SECRET}`. Customer code // validates the header before doing work. processMode: 'persistent', triggers: [ // Example cron — uncomment and adjust. 5-field, minute resolution. // { name: 'hourly-sync', kind: 'schedule', schedule: '0 * * * *', path: '/cron/hourly-sync' }, // Example webhook — POSTs to /webhooks/{spaceId}/{appId}/{{APP_NAME}}/incoming // { name: 'incoming', kind: 'webhook', path: '/webhook/incoming' }, ], }, ], // Skills = what the AI knows + can do with this app. Each skill is a folder // (SKILL.md + optional tools.ts). The tools in tools.ts are backed by // `POST /tools/` routes in the process component above (the "kitchen"). skills: [ { name: '{{APP_NAME}}', path: './skills/tools/SKILL.md' }, ], });