AGENTS.md@tests/ext_conformance/artifacts/npm/aliou-pi-synthetic · git:20260205.788be98 · 2026-02-05 · sha256 3f6ebff5d2e5d62d

AGENTS.md@tests/ext_conformance/artifacts/npm/aliou-pi-synthetic git:20260205.788be98A

Immutable. This exact content is served forever at /api/v1/blob/3f6ebff5d2e5d62d.

# pi-synthetic

Public Pi extension providing open-source language models via Synthetic's API. People could be using this, so consider backwards compatibility when making changes.

Pi is pre-1.0.0, so breaking changes can happen between Pi versions. This extension must stay up to date with Pi or things will break.

## Stack

- TypeScript (strict mode)
- pnpm 10.26.1
- Biome for linting/formatting
- Changesets for versioning

## Scripts

```bash
pnpm typecheck    # Type check
pnpm lint         # Lint (runs on pre-commit)
pnpm format       # Format
pnpm changeset    # Create changeset for versioning
```

## Structure

```
src/
  index.ts           # Extension entry, registers provider
  providers/
    index.ts         # Provider registration
    models.ts        # Hardcoded model definitions
```

## Conventions

- API key comes from environment (`SYNTHETIC_API_KEY`)
- Uses OpenAI-compatible API at `https://api.synthetic.new/openai/v1`
- Models are hardcoded in `src/providers/models.ts`
- Update model list when Synthetic adds new models

## Adding Models

Edit `src/providers/models.ts`:

```typescript
{
  id: "hf:vendor/model-name",
  name: "vendor/model-name",
  reasoning: true/false,
  input: ["text"] or ["text", "image"],
  cost: {
    input: 0.55,      // $ per million tokens
    output: 2.19,
    cacheRead: 0.55,
    cacheWrite: 0
  },
  contextWindow: 202752,
  maxTokens: 65536
}
```

Get pricing from `https://api.synthetic.new/openai/v1/models`.

## Versioning

Uses changesets. Run `pnpm changeset` before committing user-facing changes.

- `patch`: bug fixes, model updates
- `minor`: new models, features
- `major`: breaking changes