



















@@ -1,7 +1,7 @@
11import fs from "node:fs/promises";
22import os from "node:os";
33import path from "node:path";
4-import { getModel } from "@mariozechner/pi-ai";
4+import { getModel, type Api, type Model } from "@mariozechner/pi-ai";
55import { AuthStorage, ModelRegistry } from "@mariozechner/pi-coding-agent";
66import OpenAI from "openai";
77import type { ResolvedTtsConfig } from "openclaw/plugin-sdk/agent-runtime";
@@ -27,6 +27,10 @@ const ModelRegistryCtor = ModelRegistry as unknown as {
2727new (authStorage: AuthStorage, modelsJsonPath?: string): ModelRegistry;
2828};
292930+function findOpenAIModel(modelId: string): Model<Api> | null {
31+return (getModel("openai", modelId as never) as Model<Api> | undefined) ?? null;
32+}
33+3034function resolveTemplateModelId(modelId: string) {
3135switch (modelId) {
3236case "gpt-5.5":
@@ -42,9 +46,12 @@ function resolveTemplateModelId(modelId: string) {
4246}
4347}
444845-function createTemplateModelRegistry(modelId: string): ModelRegistry {
49+function createLiveModelRegistry(modelId: string): ModelRegistry {
4650const registry = new ModelRegistryCtor(AuthStorage.inMemory());
47-const template = getModel("openai", resolveTemplateModelId(modelId));
51+const template = findOpenAIModel(modelId) ?? findOpenAIModel(resolveTemplateModelId(modelId));
52+if (!template) {
53+throw new Error(`Unsupported live OpenAI plugin model: ${modelId}`);
54+}
4855registry.registerProvider("openai", {
4956apiKey: "test",
5057baseUrl: template.baseUrl,
@@ -183,12 +190,15 @@ describeLive("openai plugin live", () => {
183190it("registers an OpenAI provider that can complete a live request", async () => {
184191const { providers } = await registerOpenAIPlugin();
185192const provider = requireRegisteredProvider(providers, "openai");
193+const modelRegistry = createLiveModelRegistry(LIVE_MODEL_ID);
186194187-const resolved = provider.resolveDynamicModel?.({
188-provider: "openai",
189-modelId: LIVE_MODEL_ID,
190-modelRegistry: createTemplateModelRegistry(LIVE_MODEL_ID),
191-});
195+const resolved =
196+modelRegistry.find("openai", LIVE_MODEL_ID) ??
197+provider.resolveDynamicModel?.({
198+provider: "openai",
199+modelId: LIVE_MODEL_ID,
200+ modelRegistry,
201+});
192202193203if (!resolved) {
194204throw new Error("openai provider did not resolve the live model");
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。