App config
kumiko.config.ts is the one place an app names its features, client entries
and ports. kumiko/schema.ts, kumiko agent lint, kumiko check and
kumiko ports all read it.
What it shows
Section titled “What it shows”defineAppConfigfrom@cosmicdrift/kumiko-framework/configvalidates the config when the file loads: ports in range and unique within the app, client entries relative and inside the app.prodFeaturesare mounted only in production (provider features such as S3 or SMTP).allAppFeatures(config)returnsfeaturesplusprodFeatures; that is the list migrations and agent lint check.portswithdev,e2eand optionalinfra(postgres,redis,meilisearch,s3). Keep them number literals:kumiko portsreads them statically across all apps of a workspace and reports collisions.
kumiko.config.ts defineAppConfig with features, prodFeatures, client, portssrc/feature.ts two placeholder featuressrc/__tests__/app-config.test.ts feature list, port list, validation errorsSee docs/reference/app-skeleton.md
for the files around it.
Source code
Section titled “Source code”The feature entry point — embedded straight from the source file, so the code here is exactly what runs. Multi-file samples keep their remaining files next to it on GitHub (link below):
import { defineFeature } from "@cosmicdrift/kumiko-framework/engine";
export const notesFeature = defineFeature("notes", () => {});
// Stands in for a provider feature that only production mounts (S3, SMTP).export const auditExportFeature = defineFeature("audit-export", () => {});📄 On GitHub: samples/recipes/app-config/src/feature.ts