Thanks for contributing to @howlabs/openstream.
This repository is currently a small TypeScript library, not a monorepo. Contributions should stay aligned with the actual scope of the codebase.
- Node.js >= 18
- npm
- Git
git clone https://github.com/stream-ai/@howlabs/openstream.git
cd @howlabs/openstream
npm install
npm run test
npm run build
npm run typechecknpm run build
npm run test
npm run test:watch
npm run test:coverage
npm run typecheck@howlabs/openstream/
├── src/
│ ├── builder.ts
│ ├── engine.ts
│ ├── types.ts
│ ├── errors.ts
│ ├── costs.ts
│ ├── edge.ts
│ ├── providers/
│ └── __tests__/
├── README.md
├── ARCHITECTURE.md
├── ROADMAP.md
└── package.json
- keep changes scoped and concrete
- update documentation when behavior changes
- do not add public claims for features that are not implemented
- prefer small extensions that fit the current architecture
- discuss major scope changes before implementation
- improve test coverage
- improve error handling
- add provider contract tests
- improve OpenAI provider behavior
- improve docs and examples
- add one focused provider that fits the existing abstraction
- add a small middleware that does not expand project scope dramatically
Unless discussed first, avoid opening large efforts around:
- offline sync systems
- CRDT layers
- monorepo restructuring
- broad package ecosystem work
- platform-matrix claims without implementation
- use strict TypeScript
- prefer explicit names over clever abstractions
- keep public APIs small
- prefer composition over inheritance
- write tests for behavior, not just structure
Before opening a PR:
- tests updated where needed
- docs updated where needed
- no unsupported feature claims introduced
-
npm run typecheckpasses -
npm run buildpasses
PRs should explain:
- what changed
- why it changed
- whether public behavior changed
- whether docs were updated