Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

einige Melodien

Quelle  plugin-auto-enable.model-support.test.ts  Sprache: unbekannt

 
import { describe, expect, it } from "vitest";
import type { PluginManifestRegistry } from "../plugins/manifest-registry.js";
import { applyPluginAutoEnable } from "./plugin-auto-enable.js";
import { makeIsolatedEnv } from "./plugin-auto-enable.test-helpers.js";

function makeRegistry(
  plugins: Array<{
    id: string;
    modelSupport?: { modelPrefixes?: string[]; modelPatterns?: string[] };
  }>,
): PluginManifestRegistry {
  return {
    plugins: plugins.map((plugin) => ({
      id: plugin.id,
      channels: [],
      providers: [],
      modelSupport: plugin.modelSupport,
      cliBackends: [],
      skills: [],
      hooks: [],
      origin: "config" as const,
      rootDir: `/fake/${plugin.id}`,
      source: `/fake/${plugin.id}/index.js`,
      manifestPath: `/fake/${plugin.id}/openclaw.plugin.json`,
    })),
    diagnostics: [],
  };
}

describe("applyPluginAutoEnable modelSupport", () => {
  it("auto-enables provider plugins from shorthand modelSupport ownership", () => {
    const result = applyPluginAutoEnable({
      config: {
        agents: {
          defaults: {
            model: "gpt-5.4",
          },
        },
      },
      env: makeIsolatedEnv(),
      manifestRegistry: makeRegistry([
        {
          id: "openai",
          modelSupport: {
            modelPrefixes: ["gpt-", "o1", "o3", "o4"],
          },
        },
      ]),
    });

    expect(result.config.plugins?.entries?.openai?.enabled).toBe(true);
    expect(result.changes).toContain("gpt-5.4 model configured, enabled automatically.");
  });

  it("skips ambiguous shorthand model ownership during auto-enable", () => {
    const result = applyPluginAutoEnable({
      config: {
        agents: {
          defaults: {
            model: "gpt-5.4",
          },
        },
      },
      env: makeIsolatedEnv(),
      manifestRegistry: makeRegistry([
        {
          id: "openai",
          modelSupport: {
            modelPrefixes: ["gpt-"],
          },
        },
        {
          id: "proxy-openai",
          modelSupport: {
            modelPrefixes: ["gpt-"],
          },
        },
      ]),
    });

    expect(result.config.plugins?.entries?.openai).toBeUndefined();
    expect(result.config.plugins?.entries?.["proxy-openai"]).toBeUndefined();
    expect(result.changes).toEqual([]);
  });
});

Messung V0.5 in Prozent
C=100 H=100 G=100

[Dauer der Verarbeitung: 0.4 Sekunden, vorverarbeitet 2026-09-27]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126864
#Domains=1897691