بنقرة واحدة
add-llm-provider
Add a Bun-native LLM provider entry with routing, pricing, headers, limits, and Bun tests.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Add a Bun-native LLM provider entry with routing, pricing, headers, limits, and Bun tests.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Add a Bun-native YAML agent definition with inheritance, tool policy, and subagent references.
Add a Bun-native messaging channel adapter with lifecycle, webhook, and configuration coverage.
Add a Bun-native TypeScript tool with schema, registry wiring, policy boundaries, and Bun tests.
Author a Bun-native Xerxes SKILL.md bundle with valid metadata, safe assets, and discovery tests.
Normalize Xerxes Apache-2.0 headers with the native Bun maintenance command and verify TypeScript sources.
Manage Apple Notes via the memo CLI on macOS (create, view, search, edit).
| name | add-llm-provider |
| description | Add a Bun-native LLM provider entry with routing, pricing, headers, limits, and Bun tests. |
| version | 2.0.0 |
| tags | ["llm","provider","registry","typescript","bun","xerxes"] |
| required_tools | ["ReadFile","WriteFile","FileEditTool"] |
Use this skill when adding a provider that can use one of Xerxes' native transports: OpenAI-compatible HTTP, Anthropic, or the local Claude Code transport. Use a separate native client implementation when a provider needs a new wire protocol.
Read:
xerxes/src/llms/providerRegistry.tsxerxes/src/llms/client.tsxerxes/test/providerRegistry.test.tsProviderConfig uses native camel-case fields: apiKeyEnv, baseUrl,
contextLimit, models, and transport. Provider selection supports explicit
provider/model notation before model-prefix routing.
Add a provider(...) entry to PROVIDERS in
xerxes/src/llms/providerRegistry.ts:
myprovider: provider('myprovider', 'openai', {
apiKeyEnv: 'MYPROVIDER_API_KEY',
baseUrl: 'https://api.myprovider.example/v1',
contextLimit: 128_000,
models: ['myprovider-chat-1', 'myprovider-chat-2'],
}),
Use an existing ProviderTransport only when the client can actually speak the
provider's protocol. A local endpoint that needs no key can omit apiKeyEnv and
use defaultApiKey only when the endpoint requires a non-secret placeholder.
Update every applicable native registry location in the same change:
COSTS as [inputUsdPerMillion, outputUsdPerMillion]. Use [0, 0] only when the model is genuinely free
or its price is intentionally unknown.PREFIX_MAP. It is sorted longest-first;
avoid collisions with existing providers.MODEL_CONTEXT_LIMITS entry only when a model differs from the
provider-wide contextLimit.providerDefaultHeaders() branch only when the provider explicitly
requires a header.Keep model spellings consistent between the provider entry, cost table, prefix rules, context overrides, documentation, and tests.
Do not pretend a non-compatible endpoint is OpenAI-compatible. Add an explicit
native client in xerxes/src/llms/, make the transport discriminant
and createLlmClient() handle it, and use a deterministic injected fetch or
transport in tests. Surface provider errors with redacted context; never log an
API key.
Extend xerxes/test/providerRegistry.test.ts for prefix resolution,
explicit provider notation, context limit, pricing, and required headers. Add a
client test when transport behavior changes.
Run:
bun test xerxes/test/providerRegistry.test.ts
bun test xerxes/test/llmTypesParity.test.ts
bun run --cwd xerxes check
transport is a native protocol choice, not a marketing label.provider/model form takes precedence over prefixes; test both.