How saltifydev/milky works
Milky defines a QQ bot application API standard. Its main workflow is to assemble protocol definitions into an intermediate representation (IR), then let developers generate language types or API descriptions from that IR. The repository also provides reference documentation and raw protocol artifacts. The sampled code confirms the IR assembly, generator dispatch, and several generation paths; other generator and documentation wiring is inferred only where the tree explicitly identifies the relevant modules or routes.
Main entry points: src/index.ts Generator exports · builder.ts IR builders · app Documentation site · api/index.ts API categories
Components 25
Protocol definition
- Protocol entry
protocol/src/index.ts - IR builders
protocol/src/builder.ts - Shared entities
protocol/src/ir/common.ts - API categories
protocol/src/ir/api/index.ts - Friend APIs
protocol/src/ir/api/friend.ts - Group APIs
protocol/src/ir/api/group.ts - Message APIs
protocol/src/ir/api/message.ts - System APIs
protocol/src/ir/api/system.ts
Spec generation
- Generator CLI
generator/src/cli.ts - Generator exports
common/src/index.ts - TypeScript specs
common/src/generator/typescript - Dart spec
common/src/generator/dart/json_serializable.ts - Kotlin spec
common/src/generator/kotlin/kotlinx-serialization.ts - Rust spec
common/src/generator/rust/serde.ts - Schema specs
common/src/generator - OpenAPI spec
common/src/generator/openapi/index.ts - Roadmap Markdown
common/src/generator/markdown/roadmap.ts
Reference docs
- Documentation site
docs/app - Guides and reference
docs/content - Raw protocol routes
docs/app/raw - Struct reference
docs/app/struct/[commonEntityName]/page.tsx - API reference
docs/app/api/[apiCategoryId]/page.tsx
Other components
- Bot developer
- Bot adapters
- Protocol CDN
Connections 29
- IR builders → Shared entities: builds entities
- IR builders → Friend APIs: builds APIs
- IR builders → Group APIs: builds APIs
- IR builders → Message APIs: builds APIs
- IR builders → System APIs: builds APIs
- API categories → Friend APIs: exports category
- API categories → Group APIs: exports category
- API categories → Message APIs: exports category
- API categories → System APIs: exports category
- Protocol entry → Shared entities: assembles IR
- Protocol entry → API categories: assembles IR
- Bot adapters → Protocol entry: uses standard
- Bot developer → Generator CLI: runs
- Generator CLI → Protocol entry: loads local IR
- Generator CLI → Protocol CDN: fetches versioned IR
- Generator CLI → Generator exports: dispatches generator
- Generator exports → TypeScript specs: exports generators
- Generator exports → Dart spec: exports generator
- Generator exports → Kotlin spec: exports generator
- Generator exports → Rust spec: exports generator
- Generator exports → Schema specs: exports generators
- Generator exports → OpenAPI spec: exports generator
- Generator exports → Roadmap Markdown: exports generator
- OpenAPI spec → Schema specs: loads Zod schemas
- Bot developer → Documentation site: reads reference
- Documentation site → Guides and reference: renders content
- Documentation site → Raw protocol routes: serves raw artifacts
- Documentation site → Struct reference: renders structs
- Documentation site → API reference: renders API categories