## Summary Extract runtime-neutral provider definitions from `@proj-airi/stage-ui` into a new `@proj-airi/provider-inference` package that runs in both Node.js and browser without Vue/Pinia dependencies. ## What changed - **New package** `packages/provider-inference/` — owns `ProviderDefinition`, `ProviderRegistry`, validators, and all provider modules (cloud + local) - **Provider modules relocated** — ~45 providers moved from `stage-ui/src/libs/providers/providers/` to `provider-inference/src/providers/cloud/` and `provider-inference/src/providers/local/` - **Type decoupling** — `ProviderContext.t` changed from `ComposerTranslation` (Vue) to generic `ProviderTranslator`, removing the Vue dependency from core types - **stage-ui types slimmed** — `types.ts` now re-exports from `provider-inference` and only adds the Vue-specific `ProviderViews` extension - **validators/run.ts** — becomes a pass-through re-export - **Registry** — portable `createProviderRegistry()` with deterministic ordering and duplicate-id detection ## Verification ```bash pnpm -F @proj-airi/provider-inference typecheck pnpm -F @proj-airi/provider-inference test:node pnpm -F @proj-airi/provider-inference test:browser pnpm -F @proj-airi/provider-inference build pnpm -F @proj-airi/stage-ui typecheck pnpm -F @proj-airi/stage-web typecheck pnpm -F @proj-airi/stage-tamagotchi typecheck pnpm lint ``` ## Why Provider definitions were tightly coupled to Vue (`ComposerTranslation`, `Component`), preventing reuse in non-Vue runtimes (Node.js services, tests, future Electron backend). This extraction creates a clean boundary: runtime-neutral definitions live in `provider-inference`, while Vue/Pinia-specific concerns stay in `stage-ui`.
23 lines
809 B
TypeScript
23 lines
809 B
TypeScript
import { createArkChatProviderDefinition } from '../ark-shared'
|
|
|
|
export const providerBytePlusCodingPlan = createArkChatProviderDefinition({
|
|
id: 'byteplus-coding-plan',
|
|
order: 9,
|
|
name: 'BytePlus Coding Plan',
|
|
nameKey: 'settings.pages.providers.provider.byteplus-coding-plan.title',
|
|
description: 'BytePlus Coding Plan',
|
|
descriptionKey: 'settings.pages.providers.provider.byteplus-coding-plan.description',
|
|
modelPrefix: 'byteplus-coding-plan/',
|
|
defaultBaseUrl: 'https://ark.ap-southeast.bytepluses.com/api/coding/v3',
|
|
icon: 'i-lobe-icons:bytedance',
|
|
iconColor: 'i-lobe-icons:bytedance-color',
|
|
models: [
|
|
{ id: 'dola-seed-2.0-pro' },
|
|
{ id: 'dola-seed-2.0-lite' },
|
|
{ id: 'bytedance-seed-code' },
|
|
{ id: 'glm-4.7' },
|
|
{ id: 'kimi-k2.5' },
|
|
{ id: 'gpt-oss-120b' },
|
|
],
|
|
})
|