ai-speedometer 2.1.1 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,7 +17,7 @@ var __export = (target, all) => {
17
17
  };
18
18
  var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
19
19
 
20
- // custom-verified-providers.json
20
+ // ../core/custom-verified-providers.json
21
21
  var custom_verified_providers_default;
22
22
  var init_custom_verified_providers = __esm(() => {
23
23
  custom_verified_providers_default = {
@@ -142,7 +142,7 @@ var init_custom_verified_providers = __esm(() => {
142
142
  };
143
143
  });
144
144
 
145
- // src/models-dev.ts
145
+ // ../core/src/models-dev.ts
146
146
  var exports_models_dev = {};
147
147
  __export(exports_models_dev, {
148
148
  transformModelsDevData: () => transformModelsDevData,
@@ -387,7 +387,7 @@ var init_models_dev = __esm(() => {
387
387
  ];
388
388
  });
389
389
 
390
- // src/ai-config.ts
390
+ // ../core/src/ai-config.ts
391
391
  var exports_ai_config = {};
392
392
  __export(exports_ai_config, {
393
393
  writeAIConfig: () => writeAIConfig,
@@ -558,7 +558,7 @@ var getAIConfigPaths = () => {
558
558
  };
559
559
  var init_ai_config = () => {};
560
560
 
561
- // node_modules/jsonc-parser/lib/esm/impl/scanner.js
561
+ // ../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/scanner.js
562
562
  function createScanner(text, ignoreTrivia = false) {
563
563
  const len = text.length;
564
564
  let pos = 0, value = "", tokenOffset = 0, token = 16, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0;
@@ -975,7 +975,7 @@ var init_scanner = __esm(() => {
975
975
  })(CharacterCodes || (CharacterCodes = {}));
976
976
  });
977
977
 
978
- // node_modules/jsonc-parser/lib/esm/impl/string-intern.js
978
+ // ../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/string-intern.js
979
979
  var cachedSpaces, maxCachedValues = 200, cachedBreakLinesWithSpaces;
980
980
  var init_string_intern = __esm(() => {
981
981
  cachedSpaces = new Array(20).fill(0).map((_, index) => {
@@ -1011,13 +1011,13 @@ var init_string_intern = __esm(() => {
1011
1011
  };
1012
1012
  });
1013
1013
 
1014
- // node_modules/jsonc-parser/lib/esm/impl/format.js
1014
+ // ../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/format.js
1015
1015
  var init_format = __esm(() => {
1016
1016
  init_scanner();
1017
1017
  init_string_intern();
1018
1018
  });
1019
1019
 
1020
- // node_modules/jsonc-parser/lib/esm/impl/parser.js
1020
+ // ../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/parser.js
1021
1021
  function parse(text, errors = [], options = ParseOptions.DEFAULT) {
1022
1022
  let currentProperty = null;
1023
1023
  let currentParent = [];
@@ -1323,13 +1323,13 @@ var init_parser = __esm(() => {
1323
1323
  })(ParseOptions || (ParseOptions = {}));
1324
1324
  });
1325
1325
 
1326
- // node_modules/jsonc-parser/lib/esm/impl/edit.js
1326
+ // ../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/edit.js
1327
1327
  var init_edit = __esm(() => {
1328
1328
  init_format();
1329
1329
  init_parser();
1330
1330
  });
1331
1331
 
1332
- // node_modules/jsonc-parser/lib/esm/main.js
1332
+ // ../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/main.js
1333
1333
  var ScanError, SyntaxKind, parse2, ParseErrorCode;
1334
1334
  var init_main = __esm(() => {
1335
1335
  init_format();
@@ -1385,7 +1385,7 @@ var init_main = __esm(() => {
1385
1385
  })(ParseErrorCode || (ParseErrorCode = {}));
1386
1386
  });
1387
1387
 
1388
- // src/opencode-integration.ts
1388
+ // ../core/src/opencode-integration.ts
1389
1389
  var exports_opencode_integration = {};
1390
1390
  __export(exports_opencode_integration, {
1391
1391
  writeOpencodeConfig: () => writeOpencodeConfig,
@@ -1704,10 +1704,10 @@ var init_opencode_integration = __esm(() => {
1704
1704
  init_main();
1705
1705
  });
1706
1706
 
1707
- // src/constants.ts
1707
+ // ../core/src/constants.ts
1708
1708
  var TEST_PROMPT = `make a 300 word story`;
1709
1709
 
1710
- // src/benchmark.ts
1710
+ // ../core/src/benchmark.ts
1711
1711
  var exports_benchmark = {};
1712
1712
  __export(exports_benchmark, {
1713
1713
  benchmarkSingleModelRest: () => benchmarkSingleModelRest
@@ -1904,7 +1904,7 @@ async function benchmarkSingleModelRest(model) {
1904
1904
  }
1905
1905
  var init_benchmark = () => {};
1906
1906
 
1907
- // src/headless.ts
1907
+ // ../core/src/headless.ts
1908
1908
  var exports_headless = {};
1909
1909
  __export(exports_headless, {
1910
1910
  runHeadlessBenchmark: () => runHeadlessBenchmark
@@ -2161,24 +2161,20 @@ var package_default;
2161
2161
  var init_package = __esm(() => {
2162
2162
  package_default = {
2163
2163
  name: "ai-speedometer",
2164
- version: "2.1.1",
2164
+ version: "2.1.4",
2165
2165
  description: "A comprehensive CLI tool for benchmarking AI models across multiple providers with parallel execution and professional metrics",
2166
2166
  bin: {
2167
2167
  "ai-speedometer": "dist/ai-speedometer",
2168
2168
  aispeed: "dist/ai-speedometer"
2169
2169
  },
2170
2170
  engines: {
2171
- bun: ">=1.0.0",
2172
- node: ">=18.0.0"
2171
+ bun: ">=1.0.0"
2173
2172
  },
2174
2173
  scripts: {
2175
2174
  start: "bun src/index.ts",
2176
2175
  dev: "bun --watch src/index.ts",
2177
- test: "bun test",
2178
- "test:watch": "bun test --watch",
2179
- "test:update": "bun test --update-snapshots",
2176
+ build: "bun build src/index.ts --outdir dist --target bun --external '@opentui/core' --external '@opentui/react' --external 'react' --external 'react-reconciler' && cat ../../scripts/shebang dist/index.js > dist/ai-speedometer && chmod +x dist/ai-speedometer && rm dist/index.js",
2180
2177
  typecheck: "bun tsc --noEmit",
2181
- build: "bun build src/index.ts --outdir dist --target bun --external '@opentui/core' --external '@opentui/react' --external 'react' --external 'react-reconciler' && cat scripts/shebang dist/index.js > dist/ai-speedometer && chmod +x dist/ai-speedometer && rm dist/index.js",
2182
2178
  prepublishOnly: "bun run build"
2183
2179
  },
2184
2180
  keywords: [
@@ -2208,10 +2204,9 @@ var init_package = __esm(() => {
2208
2204
  homepage: "https://github.com/aptdnfapt/Ai-speedometer#readme",
2209
2205
  files: [
2210
2206
  "dist/",
2211
- "docs/",
2212
- "scripts/",
2213
- "README.md",
2214
- "ai-benchmark-config.json.template"
2207
+ "../../docs/",
2208
+ "../../README.md",
2209
+ "../../ai-benchmark-config.json.template"
2215
2210
  ],
2216
2211
  dependencies: {
2217
2212
  "@opentui/core": "0.1.79",
@@ -2220,6 +2215,7 @@ var init_package = __esm(() => {
2220
2215
  "react-reconciler": "^0.32.0"
2221
2216
  },
2222
2217
  devDependencies: {
2218
+ "@ai-speedometer/core": "workspace:*",
2223
2219
  "jsonc-parser": "^3.3.1"
2224
2220
  }
2225
2221
  };
package/package.json CHANGED
@@ -1,23 +1,19 @@
1
1
  {
2
2
  "name": "ai-speedometer",
3
- "version": "2.1.1",
3
+ "version": "2.1.4",
4
4
  "description": "A comprehensive CLI tool for benchmarking AI models across multiple providers with parallel execution and professional metrics",
5
5
  "bin": {
6
6
  "ai-speedometer": "dist/ai-speedometer",
7
7
  "aispeed": "dist/ai-speedometer"
8
8
  },
9
9
  "engines": {
10
- "bun": ">=1.0.0",
11
- "node": ">=18.0.0"
10
+ "bun": ">=1.0.0"
12
11
  },
13
12
  "scripts": {
14
13
  "start": "bun src/index.ts",
15
14
  "dev": "bun --watch src/index.ts",
16
- "test": "bun test",
17
- "test:watch": "bun test --watch",
18
- "test:update": "bun test --update-snapshots",
15
+ "build": "bun build src/index.ts --outdir dist --target bun --external '@opentui/core' --external '@opentui/react' --external 'react' --external 'react-reconciler' && cat ../../scripts/shebang dist/index.js > dist/ai-speedometer && chmod +x dist/ai-speedometer && rm dist/index.js",
19
16
  "typecheck": "bun tsc --noEmit",
20
- "build": "bun build src/index.ts --outdir dist --target bun --external '@opentui/core' --external '@opentui/react' --external 'react' --external 'react-reconciler' && cat scripts/shebang dist/index.js > dist/ai-speedometer && chmod +x dist/ai-speedometer && rm dist/index.js",
21
17
  "prepublishOnly": "bun run build"
22
18
  },
23
19
  "keywords": [
@@ -47,10 +43,9 @@
47
43
  "homepage": "https://github.com/aptdnfapt/Ai-speedometer#readme",
48
44
  "files": [
49
45
  "dist/",
50
- "docs/",
51
- "scripts/",
52
- "README.md",
53
- "ai-benchmark-config.json.template"
46
+ "../../docs/",
47
+ "../../README.md",
48
+ "../../ai-benchmark-config.json.template"
54
49
  ],
55
50
  "dependencies": {
56
51
  "@opentui/core": "0.1.79",
@@ -59,6 +54,7 @@
59
54
  "react-reconciler": "^0.32.0"
60
55
  },
61
56
  "devDependencies": {
57
+ "@ai-speedometer/core": "workspace:*",
62
58
  "jsonc-parser": "^3.3.1"
63
59
  }
64
60
  }
package/README.md DELETED
@@ -1,127 +0,0 @@
1
- # Ai-speedometer
2
-
3
- A CLI tool for benchmarking AI models across multiple providers with parallel execution and performance metrics.
4
-
5
- [![Discord](https://img.shields.io/badge/Discord-Join%20Community-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/6S7HwCxbMy)
6
-
7
- Track OSS model speeds over time: [ai-speedometer.oliveowl.xyz](https://ai-speedometer.oliveowl.xyz/)
8
-
9
- ![Ai-speedometer main menu](./pics/main.png)
10
-
11
- ![Ai-speedometer benchmark](./pics/benchmark.png)
12
-
13
- ## Install
14
-
15
- Requires [Bun](https://bun.sh) runtime.
16
-
17
- ```bash
18
- bun install -g ai-speedometer
19
- ```
20
-
21
- Or with npm (Bun still required at runtime):
22
-
23
- ```bash
24
- npm install -g ai-speedometer
25
- ```
26
-
27
- Or run directly from source:
28
-
29
- ```bash
30
- bun src/index.ts
31
- ```
32
-
33
- ## What It Measures
34
-
35
- - **TTFT** (Time to First Token) - How fast the first response token arrives
36
- - **Total Time** - Complete request duration
37
- - **Tokens/Second** - Real-time throughput
38
- - **Token Counts** - Input, output, and total tokens used
39
-
40
- ## Features
41
-
42
- - **Interactive TUI** - Full terminal UI with Tokyo Night theme, menus, search, and live benchmark progress
43
- - **REST API Benchmarking** - Default method, works with all OpenAI-compatible providers
44
- - **Headless Mode** - Run benchmarks without interactive CLI using command-line arguments
45
- - **Parallel Execution** - Benchmark multiple models simultaneously
46
- - **Provider Management** - Add verified, custom verified, and custom providers
47
-
48
- ## Quick Setup
49
-
50
- 1. **Set Model**
51
- ```bash
52
- ai-speedometer
53
- # Select "Run Benchmark" → "Add Verified Provider" → Choose provider (OpenAI, Anthropic, etc.)
54
- # Enter your API key when prompted
55
- ```
56
-
57
- 2. **Choose Model Provider**
58
- - Verified providers (OpenAI, Anthropic, Google) - auto-configured via models.dev
59
- - Custom verified providers (pre-configured trusted providers) - add API key
60
- - Custom providers (Ollama, local models) - add your base URL
61
-
62
- 3. **Add API Key**
63
- - Get API keys from your provider's dashboard
64
- - Enter when prompted - stored securely in:
65
- - `~/.local/share/opencode/auth.json` (primary storage)
66
- - `~/.config/ai-speedometer/ai-benchmark-config.json` (backup storage)
67
-
68
- 4. **Run Benchmark**
69
- ```bash
70
- ai-speedometer
71
- # Select "Run Benchmark" → choose models → press Enter
72
- ```
73
-
74
- ## Usage
75
-
76
- ```bash
77
- # Start interactive TUI
78
- ai-speedometer
79
-
80
- # Short alias
81
- aispeed
82
-
83
- # Debug mode
84
- ai-speedometer --debug
85
-
86
- # Headless benchmark
87
- ai-speedometer --bench openai:gpt-4
88
- # With custom API key
89
- ai-speedometer --bench openai:gpt-4 --api-key "sk-your-key"
90
- # Custom provider
91
- ai-speedometer --bench-custom myprovider:mymodel --base-url https://... --api-key "..."
92
- ```
93
-
94
- ## Development
95
-
96
- ```bash
97
- # Run from source
98
- bun src/index.ts
99
-
100
- # Run with auto-reload
101
- bun --watch src/index.ts
102
-
103
- # Run tests
104
- bun test
105
-
106
- # Typecheck
107
- bun run typecheck
108
-
109
- # Build standalone binary
110
- bun run build # → dist/ai-speedometer
111
- ```
112
-
113
- ## Configuration Files
114
-
115
- API keys and configuration are stored in:
116
-
117
- - **Verified + Custom Verified Providers**:
118
- - Primary: `~/.local/share/opencode/auth.json`
119
- - Backup: `~/.config/ai-speedometer/ai-benchmark-config.json` (verifiedProviders section)
120
- - **Custom Providers**: `~/.config/ai-speedometer/ai-benchmark-config.json` (customProviders section)
121
- - **Provider Definitions**: `./custom-verified-providers.json` (bundled at build time)
122
-
123
- ## Requirements
124
-
125
- - **Runtime**: Bun 1.0+ (required — install from [bun.sh](https://bun.sh))
126
- - API keys for AI providers
127
- - Terminal with arrow keys and ANSI colors
@@ -1,21 +0,0 @@
1
- {
2
- "verifiedProviders": {
3
- "openai": "sk-your-openai-api-key",
4
- "anthropic": "sk-ant-your-anthropic-api-key"
5
- },
6
- "customProviders": [
7
- {
8
- "id": "my-custom-provider",
9
- "name": "My Custom Provider",
10
- "type": "openai-compatible",
11
- "baseUrl": "https://api.custom.com/v1",
12
- "apiKey": "YOUR_API_KEY_HERE",
13
- "models": [
14
- {
15
- "name": "custom-model",
16
- "id": "custom_model_1"
17
- }
18
- ]
19
- }
20
- ]
21
- }
package/docs/README.md DELETED
@@ -1,191 +0,0 @@
1
- # AI Speedometer Documentation
2
-
3
- Welcome to the documentation for the AI Speedometer benchmark CLI. This documentation covers everything you need to know about using, configuring, and understanding the system.
4
-
5
- ## Quick Start
6
-
7
- - [User Guide](README.md) - Main README with installation and usage
8
- - [Bug Fixes v1.0](bug-fixes-v1.md) - Critical issues resolved in latest version
9
- - [Models.dev Integration](models-dev-integration.md) - How provider and model loading works
10
- - [Custom Verified Providers](custom-verified-providers.md) - Adding and configuring custom verified providers
11
-
12
- ## Documentation Structure
13
-
14
- ### 📚 User Documentation
15
-
16
- #### Getting Started
17
- - [Main README](../README.md) - Installation, setup, and basic usage
18
- - [Configuration Guide](../README.md#setup-guide) - Setting up providers and API keys
19
-
20
- #### Features
21
- - **Parallel Benchmarking** - Run multiple models simultaneously
22
- - **Provider Management** - Add verified and custom providers
23
- - **Model Selection** - Interactive search and selection interface
24
- - **Performance Metrics** - Comprehensive benchmark results and charts
25
-
26
- ### 🔧 Technical Documentation
27
-
28
- #### Architecture
29
- - [Models.dev Integration](models-dev-integration.md) - Provider ecosystem and API integration
30
- - [Custom Verified Providers](custom-verified-providers.md) - Pre-configured provider setup and management
31
- - [Bug Fixes](bug-fixes-v1.md) - Critical issues and their solutions
32
-
33
- #### Configuration
34
- - **Provider Configuration** - Setting up different AI providers
35
- - **Authentication** - API key management and security
36
- - **Custom Providers** - Adding your own AI providers
37
- - **Custom Verified Providers** - Pre-configured trusted providers
38
-
39
- #### Development
40
- - **Code Structure** - Organization of modules and components
41
- - **Testing Guide** - Running and writing tests
42
- - **Contributing** - How to contribute to the project
43
-
44
- ## Key Concepts
45
-
46
- ### Providers and Models
47
-
48
- The system supports three types of providers:
49
-
50
- 1. **Verified Providers** - From models.dev ecosystem
51
- - OpenAI, Anthropic, Google, and other major providers
52
- - Automatically updated with latest models
53
- - Pre-configured endpoints and authentication
54
-
55
- 2. **Custom Verified Providers** - Pre-configured trusted providers
56
- - Curated providers not in models.dev but treated as verified
57
- - Pre-configured with specific models and endpoints
58
- - Available in `custom-verified-providers.json`
59
-
60
- 3. **Custom Providers** - User-defined providers
61
- - Your own AI endpoints or local models
62
- - Full configuration flexibility
63
- - Support for OpenAI-compatible APIs
64
-
65
- ### Benchmarking Methods
66
-
67
- - **AI SDK Method** - Uses Vercel AI SDK with streaming
68
- - Real-time token counting
69
- - Time to First Token (TTFT) metrics
70
- - Streaming response analysis
71
-
72
- - **REST API Method** - Direct HTTP API calls
73
- - No streaming, complete response timing
74
- - Consistent across all providers
75
- - Fallback for compatibility
76
-
77
- ### Performance Metrics
78
-
79
- - **Total Time** - Complete request duration
80
- - **TTFT** - Time to First Token (streaming only)
81
- - **Tokens/Second** - Real-time throughput calculation
82
- - **Token Counts** - Input, output, and total tokens
83
- - **Provider Rankings** - Performance comparison across providers
84
-
85
- ## Recent Updates
86
-
87
- ### Phase 8 — Build, Polish & Cleanup
88
-
89
- Production-ready build with full TypeScript, clean dependencies, and proper binary distribution:
90
-
91
- - **Standalone binary** — `bun build --compile` produces a single ELF executable at `dist/ai-speedometer`
92
- - **Scripts**: `bun run build`, `bun run typecheck`, `bun test`, `bun test --watch`, `bun test --update-snapshots`
93
- - **Removed unused deps** — `@ai-sdk/anthropic`, `@ai-sdk/openai-compatible`, `ai`, `cli-table3`, `dotenv`, `esbuild` removed; only `jsonc-parser` remains
94
- - **SIGINT handler** — `renderer.destroy()` + `process.exit(0)` on `SIGINT` in `src/tui/index.tsx`
95
- - **Loading guard** — `ModelSelectScreen` shows "Loading config..." during initial config load
96
- - **0 TypeScript errors** — `bun tsc --noEmit` passes clean
97
-
98
- Build: `bun run build` → `dist/ai-speedometer` (standalone binary, no bun required)
99
-
100
- ### Phase 7 — Tests
101
-
102
- Comprehensive test suite using `bun test` + `@opentui/react/test-utils`:
103
-
104
- - **51 tests** across 11 files — all passing
105
- - Component tests: Header, Footer, MenuList, BarChart, ModelRow, ResultsTable
106
- - Screen tests: MainMenuScreen, ModelSelectScreen, AddVerifiedScreen, AddCustomScreen
107
- - Benchmark logic tests with mocked fetch (openai-compatible, anthropic, google)
108
- - 14 snapshots for visual regression detection
109
- - Test factories in `src/tests/setup.ts`: `mockModel`, `mockBenchmarkResult`, `mockProvider`, `mockModelBenchState`
110
-
111
- Run with: `bun test`
112
-
113
- ### Version 1.0 Bug Fixes
114
-
115
- The latest release includes critical fixes for:
116
-
117
- - ✅ **Parallel Model Execution** - Multi-model selection now works correctly
118
- - ✅ **AI SDK Model Support** - Verified providers work in benchmarks
119
- - ✅ **Search Performance** - Reduced lag and flickering in search
120
- - ✅ **Screen Rendering** - Fixed text overlapping issues
121
-
122
- See [Bug Fixes v1.0](bug-fixes-v1.md) for detailed technical information.
123
-
124
- ### Models.dev Integration Enhancement
125
-
126
- - **Improved Caching** - Better performance with 1-hour cache expiration
127
- - **Enhanced Search** - Debounced filtering with 50ms delay
128
- - **Provider Type Detection** - Automatic SDK selection based on provider
129
- - **Error Handling** - Graceful degradation and fallback mechanisms
130
-
131
- See [Models.dev Integration](models-dev-integration.md) for complete architectural details.
132
-
133
- ### Custom Verified Providers
134
-
135
- - **Pre-configured Providers** - Curated list of trusted providers not in models.dev
136
- - **Structured Configuration** - Standardized format for provider definitions
137
- - **Model Management** - Predefined models with display names and API IDs
138
- - **Authentication Integration** - Seamless integration with existing auth system
139
-
140
- See [Custom Verified Providers](custom-verified-providers.md) for complete setup and configuration guide.
141
-
142
- ## Getting Help
143
-
144
- ### Troubleshooting
145
-
146
- #### Common Issues
147
- 1. **Models Not Showing** - Check API key configuration and provider authentication
148
- 2. **Search Lag** - Clear cache and ensure proper file permissions
149
- 3. **Benchmark Failures** - Verify API keys and network connectivity
150
-
151
- #### Debug Mode
152
- Enable detailed logging for troubleshooting:
153
- ```bash
154
- npm run cli:debug
155
- ```
156
-
157
- This creates `debug.log` with API request/response details.
158
-
159
- ### Community Support
160
-
161
- - **GitHub Issues** - Report bugs and request features
162
- - **Documentation** - Check these docs for common questions
163
- - **Debug Logs** - Include debug logs when reporting issues
164
-
165
- ### Contributing
166
-
167
- We welcome contributions! See the main project README for guidelines on:
168
- - Reporting bugs
169
- - Requesting features
170
- - Submitting pull requests
171
- - Improving documentation
172
-
173
- ## Documentation Index
174
-
175
- | Document | Description | Audience |
176
- |----------|-------------|----------|
177
- | [Main README](../README.md) | Installation, setup, and basic usage | Users |
178
- | [Bug Fixes v1.0](bug-fixes-v1.md) | Critical issues and solutions | Developers/Users |
179
- | [Models.dev Integration](models-dev-integration.md) | Provider ecosystem architecture | Developers |
180
- | [Custom Verified Providers](custom-verified-providers.md) | Pre-configured provider setup | Developers/Users |
181
-
182
- ## Quick Links
183
-
184
- - **Project Home:** [GitHub Repository](https://github.com/aptdnfapt/Ai-speedometer)
185
- - **Issues:** [GitHub Issues](https://github.com/aptdnfapt/Ai-speedometer/issues)
186
- - **Models.dev:** [Provider Registry](https://models.dev)
187
-
188
- ---
189
-
190
- *Documentation last updated: September 2025*
191
- *Version: 1.0.0*