provider

Rules for building adapters to different AI services through one shared interface. An AI provider is a service that supplies models for tasks such as chat or text embeddings.

In plain words
What is it for?
It guides implementation of chat and embedding models, model names, Zod-based configuration schemas, factory methods, and the required ProviderV1 interface.
Why use it?
It gives new providers a consistent structure for configuration, model creation, validation, and version tracking.

Cursor rule for Cursor

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/adaline/gateway/provider
Clone the repo
git clone --depth 1 https://github.com/adaline/gateway

Made for: Cursor.

Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 1,277 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.01277
Opus 5 $0.00000 $0.00639
Sonnet 5 $0.00000 $0.00255
Haiku 4.5 $0.00000 $0.00128

Measured yesterday against content hash 3a9ec3f74d9e, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

provider scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.cursor/rules/provider.mdc · 161 lines

How it starts

The opening of the file, as written. The whole thing — 161 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Provider Package Rules

Package Overview

The provider package defines the core interfaces and base classes that all AI providers must implement. It provides a unified abstraction layer for different AI services.

Provider Interface Rules

1. ProviderV1 Interface

  • ALWAYS implement the ProviderV1 interface for new providers
  • ALWAYS use generic constraints for configuration types
  • ALWAYS provide both chat and embedding model support
  • ALWAYS implement version tracking with readonly version = "v1"
  • ALWAYS use descriptive provider names

2. Model Factory Methods

  • ALWAYS implement chatModelLiterals() returning available model names
  • ALWAYS implement chatModelSchemas() returning Zod schemas
  • ALWAYS implement chatModel(options) returning configured instances
  • ALWAYS implement embeddingModelLiterals() returning available model names
  • ALWAYS implement embeddingModelSchemas() returning Zod schemas
  • ALWAYS implement embeddingModel(options) returning configured instances

Model Implementation Rules

1. Chat Model Implementation

  • ALWAYS implement the ChatModelV1 interface
  • ALWAYS provide model schema with name, provider, and capabilities
  • ALWAYS implement completeChat() method for synchronous responses
  • ALWAYS implement streamChat() method for streaming responses
  • ALWAYS implement getModelPricing() for cost calculation
  • ALWAYS implement getCompleteChatUrl(), getCompleteChatHeaders(), getCompleteChatData()
  • ALWAYS implement transformCompleteChatResponse() for response normalization

2. Embedding Model Implementation

  • ALWAYS implement the EmbeddingModelV1 interface
  • ALWAYS provide model schema with name, provider, and capabilities
  • ALWAYS implement getEmbeddings() method
  • ALWAYS implement getEmbeddingsUrl(), getEmbeddingsHeaders(), getEmbeddingsData()
  • ALWAYS implement transformEmbeddingsResponse() for response normalization

Read the full file on GitHub · 161 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 161 lines · 0 tokens per session scan A 3a9ec3f74d9e

Subscribe to this mod's changes

provider is a cursor rule published in the GitHub repository adaline/gateway (605 stars, last pushed 1mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,277 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.