Thanks for your interest in contributing! This guide covers everything you need to get started.
git clone git@github.com:vtemian/agentprobe.git
cd agentprobe
npm install| Command | Description |
|---|---|
npm run check |
Run all quality gates (lint + typecheck + test) |
npm run test |
Run test suite |
npm run test:watch |
Run tests in watch mode |
npm run lint |
Lint with Biome |
npm run format |
Format with Biome |
npm run typecheck |
TypeScript type checking |
npm run build |
Build dist bundles with tsup |
This project uses Biome for linting and formatting. Run npm run format before committing. The CI pipeline enforces this.
TypeScript strict mode is enabled. Avoid any, as casts, and unknown without proper narrowing.
Open an issue using the bug report template. Include:
- Steps to reproduce
- Expected vs actual behavior
- Node.js and package version
- Relevant error output
Open an issue using the feature request template.
- Fork the repo and create a branch from
main - Make your changes
- Add or update tests for your changes
- Run
npm run checkand ensure everything passes - Write a clear commit message (see below)
- Open a pull request
Follow Conventional Commits:
feat:— new featurefix:— bug fixrefactor:— code change that neither fixes a bug nor adds a featuredocs:— documentation onlychore:— build, CI, or tooling changestest:— adding or updating tests
- Fill in the PR template
- Ensure CI passes
- Keep PRs focused — one concern per PR
- Update documentation if the public API changes
src/
├── core/ # Provider-agnostic runtime and observer
│ ├── runtime/ # Watch runtime state machine
│ ├── observer.ts # Observer API (createObserver)
│ ├── lifecycle.ts # Lifecycle diffing (joined/left/changed)
│ ├── providers.ts # TranscriptProvider interface
│ ├── model.ts # Canonical agent model
│ ├── types.ts # Core type definitions
│ └── errors.ts # Error types and helpers
├── providers/
│ └── cursor/ # Cursor transcript provider
│ ├── provider.ts # Provider implementation
│ ├── discovery.ts # Transcript file discovery
│ └── transcripts.ts # JSONL parsing and normalization
├── domain.ts # Provider-internal domain types
└── index.ts # Root entry point (defaults to Cursor)
Open an issue or start a discussion. We're happy to help.