diff --git a/docs/plugins/sdk-migration.md b/docs/plugins/sdk-migration.md index ed0373a946d..dd410203a9d 100644 --- a/docs/plugins/sdk-migration.md +++ b/docs/plugins/sdk-migration.md @@ -325,7 +325,7 @@ The same rule applies to other generated bundled-helper families such as: `plugin-sdk/chutes`, `plugin-sdk/deepseek`, `plugin-sdk/google`, `plugin-sdk/huggingface`, `plugin-sdk/kimi-coding`, `plugin-sdk/kilocode`, `plugin-sdk/minimax`, `plugin-sdk/mistral`, - `plugin-sdk/nvidia`, `plugin-sdk/ollama*`, `plugin-sdk/opencode`, + `plugin-sdk/nvidia`, `plugin-sdk/opencode`, `plugin-sdk/opencode-go`, `plugin-sdk/qianfan`, `plugin-sdk/sglang`, `plugin-sdk/synthetic`, `plugin-sdk/venice`, `plugin-sdk/vllm`, `plugin-sdk/xai`, `plugin-sdk/volcengine`, diff --git a/docs/plugins/sdk-overview.md b/docs/plugins/sdk-overview.md index 978126e5017..9ecf9e5f976 100644 --- a/docs/plugins/sdk-overview.md +++ b/docs/plugins/sdk-overview.md @@ -272,7 +272,7 @@ explicitly promotes one as public. | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Bundled LINE helper/runtime surface | | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Bundled IRC helper surface | | Channel-specific helpers | `plugin-sdk/googlechat`, `plugin-sdk/whatsapp-surface`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Bundled channel compatibility/helper seams. `plugin-sdk/whatsapp-surface` currently exports `DEFAULT_WEB_MEDIA_BYTES`, WhatsApp auth/account helpers, directory-config helpers, group-policy helpers, outbound-target resolution, and the narrow `WebChannelStatus` / `WebInboundMessage` / `WebListenerCloseReason` / `WebMonitorTuning` types. | - | Provider-specific helpers | `plugin-sdk/openai`, `plugin-sdk/moonshot`, `plugin-sdk/qwen`, `plugin-sdk/qwen-definitions`, `plugin-sdk/modelstudio`, `plugin-sdk/modelstudio-definitions`, `plugin-sdk/provider-moonshot`, `plugin-sdk/together`, `plugin-sdk/amazon-bedrock`, `plugin-sdk/anthropic-vertex`, `plugin-sdk/cloudflare-ai-gateway`, `plugin-sdk/byteplus`, `plugin-sdk/chutes`, `plugin-sdk/deepseek`, `plugin-sdk/google`, `plugin-sdk/huggingface`, `plugin-sdk/kimi-coding`, `plugin-sdk/kilocode`, `plugin-sdk/minimax`, `plugin-sdk/mistral`, `plugin-sdk/nvidia`, `plugin-sdk/ollama`, `plugin-sdk/ollama-surface`, `plugin-sdk/opencode`, `plugin-sdk/opencode-go`, `plugin-sdk/qianfan`, `plugin-sdk/sglang`, `plugin-sdk/synthetic`, `plugin-sdk/venice`, `plugin-sdk/vllm`, `plugin-sdk/xai`, `plugin-sdk/volcengine` | Bundled provider-specific helper seams; prefer canonical `qwen*`, keep `modelstudio*` as compatibility aliases | + | Provider-specific helpers | `plugin-sdk/openai`, `plugin-sdk/moonshot`, `plugin-sdk/qwen`, `plugin-sdk/qwen-definitions`, `plugin-sdk/modelstudio`, `plugin-sdk/modelstudio-definitions`, `plugin-sdk/provider-moonshot`, `plugin-sdk/together`, `plugin-sdk/amazon-bedrock`, `plugin-sdk/anthropic-vertex`, `plugin-sdk/cloudflare-ai-gateway`, `plugin-sdk/byteplus`, `plugin-sdk/chutes`, `plugin-sdk/deepseek`, `plugin-sdk/google`, `plugin-sdk/huggingface`, `plugin-sdk/kimi-coding`, `plugin-sdk/kilocode`, `plugin-sdk/minimax`, `plugin-sdk/mistral`, `plugin-sdk/nvidia`, `plugin-sdk/opencode`, `plugin-sdk/opencode-go`, `plugin-sdk/qianfan`, `plugin-sdk/sglang`, `plugin-sdk/synthetic`, `plugin-sdk/venice`, `plugin-sdk/vllm`, `plugin-sdk/xai`, `plugin-sdk/volcengine` | Bundled provider-specific helper seams; prefer canonical `qwen*`, keep `modelstudio*` as compatibility aliases | | Auth/plugin-specific helpers | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Bundled feature/plugin helper seams; `plugin-sdk/github-copilot-token` currently exports `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken`, and `resolveCopilotApiToken` | diff --git a/package.json b/package.json index c6725564322..db7ff94e13e 100644 --- a/package.json +++ b/package.json @@ -783,14 +783,6 @@ "types": "./dist/plugin-sdk/nostr.d.ts", "default": "./dist/plugin-sdk/nostr.js" }, - "./plugin-sdk/ollama": { - "types": "./dist/plugin-sdk/ollama.d.ts", - "default": "./dist/plugin-sdk/ollama.js" - }, - "./plugin-sdk/ollama-surface": { - "types": "./dist/plugin-sdk/ollama-surface.d.ts", - "default": "./dist/plugin-sdk/ollama-surface.js" - }, "./plugin-sdk/openai": { "types": "./dist/plugin-sdk/openai.d.ts", "default": "./dist/plugin-sdk/openai.js" diff --git a/packages/memory-host-sdk/src/host/embeddings-ollama.ts b/packages/memory-host-sdk/src/host/embeddings-ollama.ts index d88c2b2c5b7..e67f64cd29f 100644 --- a/packages/memory-host-sdk/src/host/embeddings-ollama.ts +++ b/packages/memory-host-sdk/src/host/embeddings-ollama.ts @@ -1,5 +1,5 @@ -export type { OllamaEmbeddingClient } from "../../../../src/plugin-sdk/ollama.js"; +export type { OllamaEmbeddingClient } from "../../../../extensions/ollama/runtime-api.js"; export { createOllamaEmbeddingProvider, DEFAULT_OLLAMA_EMBEDDING_MODEL, -} from "../../../../src/plugin-sdk/ollama.js"; +} from "../../../../extensions/ollama/runtime-api.js"; diff --git a/scripts/lib/plugin-sdk-entrypoints.json b/scripts/lib/plugin-sdk-entrypoints.json index 0dbe2df10b0..9edaf3c690f 100644 --- a/scripts/lib/plugin-sdk-entrypoints.json +++ b/scripts/lib/plugin-sdk-entrypoints.json @@ -185,8 +185,6 @@ "nextcloud-talk", "nvidia", "nostr", - "ollama", - "ollama-surface", "openai", "opencode", "opencode-go", diff --git a/scripts/lib/plugin-sdk-facades.mjs b/scripts/lib/plugin-sdk-facades.mjs index fc4cfa8f813..ff50cdda73a 100644 --- a/scripts/lib/plugin-sdk-facades.mjs +++ b/scripts/lib/plugin-sdk-facades.mjs @@ -651,53 +651,6 @@ export const GENERATED_PLUGIN_SDK_FACADES = [ source: pluginSource("nvidia", "api.js"), exports: ["buildNvidiaProvider"], }, - { - subpath: "ollama", - source: pluginSource("ollama", "runtime-api.js"), - exports: [ - "buildAssistantMessage", - "buildOllamaChatRequest", - "convertToOllamaMessages", - "createOllamaEmbeddingProvider", - "createConfiguredOllamaCompatNumCtxWrapper", - "createConfiguredOllamaCompatStreamWrapper", - "createConfiguredOllamaStreamFn", - "createOllamaStreamFn", - "DEFAULT_OLLAMA_EMBEDDING_MODEL", - "isOllamaCompatProvider", - "OLLAMA_NATIVE_BASE_URL", - "parseNdjsonStream", - "resolveOllamaBaseUrlForRun", - "resolveOllamaCompatNumCtxEnabled", - "shouldInjectOllamaCompatNumCtx", - "wrapOllamaCompatNumCtx", - ], - typeExports: ["OllamaEmbeddingClient", "OllamaEmbeddingProvider"], - }, - { - subpath: "ollama-surface", - source: pluginSource("ollama", "api.js"), - exports: [ - "buildOllamaModelDefinition", - "buildOllamaProvider", - "configureOllamaNonInteractive", - "ensureOllamaModelPulled", - "enrichOllamaModelsWithContext", - "fetchOllamaModels", - "OLLAMA_DEFAULT_BASE_URL", - "OLLAMA_DEFAULT_CONTEXT_WINDOW", - "OLLAMA_DEFAULT_COST", - "OLLAMA_DEFAULT_MAX_TOKENS", - "OLLAMA_DEFAULT_MODEL", - "OllamaModelWithContext", - "OllamaTagModel", - "OllamaTagsResponse", - "promptAndConfigureOllama", - "queryOllamaContextWindow", - "resolveOllamaApiBase", - ], - typeExports: ["OllamaModelWithContext", "OllamaTagModel", "OllamaTagsResponse"], - }, { subpath: "openai", source: pluginSource("openai", "api.js"), diff --git a/src/generated/plugin-sdk-facade-type-map.generated.ts b/src/generated/plugin-sdk-facade-type-map.generated.ts index 9902fea0a39..786175c1695 100644 --- a/src/generated/plugin-sdk-facade-type-map.generated.ts +++ b/src/generated/plugin-sdk-facade-type-map.generated.ts @@ -412,31 +412,6 @@ export interface PluginSdkFacadeTypeMap { }; types: {}; }; - ollama: { - module: typeof import("@openclaw/ollama/runtime-api.js"); - sourceModules: { - source1: { - module: typeof import("@openclaw/ollama/runtime-api.js"); - }; - }; - types: { - OllamaEmbeddingClient: import("@openclaw/ollama/runtime-api.js").OllamaEmbeddingClient; - OllamaEmbeddingProvider: import("@openclaw/ollama/runtime-api.js").OllamaEmbeddingProvider; - }; - }; - "ollama-surface": { - module: typeof import("@openclaw/ollama/api.js"); - sourceModules: { - source1: { - module: typeof import("@openclaw/ollama/api.js"); - }; - }; - types: { - OllamaModelWithContext: import("@openclaw/ollama/api.js").OllamaModelWithContext; - OllamaTagModel: import("@openclaw/ollama/api.js").OllamaTagModel; - OllamaTagsResponse: import("@openclaw/ollama/api.js").OllamaTagsResponse; - }; - }; openai: { module: typeof import("@openclaw/openai/api.js"); sourceModules: { diff --git a/src/memory-host-sdk/host/embeddings-ollama.ts b/src/memory-host-sdk/host/embeddings-ollama.ts index d3dd7090381..0a505edcd6f 100644 --- a/src/memory-host-sdk/host/embeddings-ollama.ts +++ b/src/memory-host-sdk/host/embeddings-ollama.ts @@ -1,5 +1,5 @@ -export type { OllamaEmbeddingClient } from "../../plugin-sdk/ollama.js"; +export type { OllamaEmbeddingClient } from "../../../extensions/ollama/runtime-api.js"; export { createOllamaEmbeddingProvider, DEFAULT_OLLAMA_EMBEDDING_MODEL, -} from "../../plugin-sdk/ollama.js"; +} from "../../../extensions/ollama/runtime-api.js"; diff --git a/src/plugin-sdk/ollama-surface.ts b/src/plugin-sdk/ollama-surface.ts deleted file mode 100644 index bdaa55ec945..00000000000 --- a/src/plugin-sdk/ollama-surface.ts +++ /dev/null @@ -1,63 +0,0 @@ -// Generated by scripts/generate-plugin-sdk-facades.mjs. Do not edit manually. -import type { PluginSdkFacadeTypeMap } from "../generated/plugin-sdk-facade-type-map.generated.js"; -type FacadeEntry = PluginSdkFacadeTypeMap["ollama-surface"]; -type FacadeModule = FacadeEntry["module"]; -import { - createLazyFacadeObjectValue, - loadBundledPluginPublicSurfaceModuleSync, -} from "./facade-runtime.js"; - -function loadFacadeModule(): FacadeModule { - return loadBundledPluginPublicSurfaceModuleSync({ - dirName: "ollama", - artifactBasename: "api.js", - }); -} -export const buildOllamaModelDefinition: FacadeModule["buildOllamaModelDefinition"] = ((...args) => - loadFacadeModule()["buildOllamaModelDefinition"]( - ...args, - )) as FacadeModule["buildOllamaModelDefinition"]; -export const buildOllamaProvider: FacadeModule["buildOllamaProvider"] = ((...args) => - loadFacadeModule()["buildOllamaProvider"](...args)) as FacadeModule["buildOllamaProvider"]; -export const configureOllamaNonInteractive: FacadeModule["configureOllamaNonInteractive"] = (( - ...args -) => - loadFacadeModule()["configureOllamaNonInteractive"]( - ...args, - )) as FacadeModule["configureOllamaNonInteractive"]; -export const ensureOllamaModelPulled: FacadeModule["ensureOllamaModelPulled"] = ((...args) => - loadFacadeModule()["ensureOllamaModelPulled"]( - ...args, - )) as FacadeModule["ensureOllamaModelPulled"]; -export const enrichOllamaModelsWithContext: FacadeModule["enrichOllamaModelsWithContext"] = (( - ...args -) => - loadFacadeModule()["enrichOllamaModelsWithContext"]( - ...args, - )) as FacadeModule["enrichOllamaModelsWithContext"]; -export const fetchOllamaModels: FacadeModule["fetchOllamaModels"] = ((...args) => - loadFacadeModule()["fetchOllamaModels"](...args)) as FacadeModule["fetchOllamaModels"]; -export const OLLAMA_DEFAULT_BASE_URL: FacadeModule["OLLAMA_DEFAULT_BASE_URL"] = - loadFacadeModule()["OLLAMA_DEFAULT_BASE_URL"]; -export const OLLAMA_DEFAULT_CONTEXT_WINDOW: FacadeModule["OLLAMA_DEFAULT_CONTEXT_WINDOW"] = - loadFacadeModule()["OLLAMA_DEFAULT_CONTEXT_WINDOW"]; -export const OLLAMA_DEFAULT_COST: FacadeModule["OLLAMA_DEFAULT_COST"] = createLazyFacadeObjectValue( - () => loadFacadeModule()["OLLAMA_DEFAULT_COST"] as object, -) as FacadeModule["OLLAMA_DEFAULT_COST"]; -export const OLLAMA_DEFAULT_MAX_TOKENS: FacadeModule["OLLAMA_DEFAULT_MAX_TOKENS"] = - loadFacadeModule()["OLLAMA_DEFAULT_MAX_TOKENS"]; -export const OLLAMA_DEFAULT_MODEL: FacadeModule["OLLAMA_DEFAULT_MODEL"] = - loadFacadeModule()["OLLAMA_DEFAULT_MODEL"]; -export const promptAndConfigureOllama: FacadeModule["promptAndConfigureOllama"] = ((...args) => - loadFacadeModule()["promptAndConfigureOllama"]( - ...args, - )) as FacadeModule["promptAndConfigureOllama"]; -export const queryOllamaContextWindow: FacadeModule["queryOllamaContextWindow"] = ((...args) => - loadFacadeModule()["queryOllamaContextWindow"]( - ...args, - )) as FacadeModule["queryOllamaContextWindow"]; -export const resolveOllamaApiBase: FacadeModule["resolveOllamaApiBase"] = ((...args) => - loadFacadeModule()["resolveOllamaApiBase"](...args)) as FacadeModule["resolveOllamaApiBase"]; -export type OllamaModelWithContext = FacadeEntry["types"]["OllamaModelWithContext"]; -export type OllamaTagModel = FacadeEntry["types"]["OllamaTagModel"]; -export type OllamaTagsResponse = FacadeEntry["types"]["OllamaTagsResponse"]; diff --git a/src/plugin-sdk/ollama.ts b/src/plugin-sdk/ollama.ts deleted file mode 100644 index cb4bae38cc7..00000000000 --- a/src/plugin-sdk/ollama.ts +++ /dev/null @@ -1,72 +0,0 @@ -// Generated by scripts/generate-plugin-sdk-facades.mjs. Do not edit manually. -import type { PluginSdkFacadeTypeMap } from "../generated/plugin-sdk-facade-type-map.generated.js"; -type FacadeEntry = PluginSdkFacadeTypeMap["ollama"]; -type FacadeModule = FacadeEntry["module"]; -import { loadBundledPluginPublicSurfaceModuleSync } from "./facade-runtime.js"; - -function loadFacadeModule(): FacadeModule { - return loadBundledPluginPublicSurfaceModuleSync({ - dirName: "ollama", - artifactBasename: "runtime-api.js", - }); -} -export const buildAssistantMessage: FacadeModule["buildAssistantMessage"] = ((...args) => - loadFacadeModule()["buildAssistantMessage"](...args)) as FacadeModule["buildAssistantMessage"]; -export const buildOllamaChatRequest: FacadeModule["buildOllamaChatRequest"] = ((...args) => - loadFacadeModule()["buildOllamaChatRequest"](...args)) as FacadeModule["buildOllamaChatRequest"]; -export const convertToOllamaMessages: FacadeModule["convertToOllamaMessages"] = ((...args) => - loadFacadeModule()["convertToOllamaMessages"]( - ...args, - )) as FacadeModule["convertToOllamaMessages"]; -export const createOllamaEmbeddingProvider: FacadeModule["createOllamaEmbeddingProvider"] = (( - ...args -) => - loadFacadeModule()["createOllamaEmbeddingProvider"]( - ...args, - )) as FacadeModule["createOllamaEmbeddingProvider"]; -export const createConfiguredOllamaCompatNumCtxWrapper: FacadeModule["createConfiguredOllamaCompatNumCtxWrapper"] = - ((...args) => - loadFacadeModule()["createConfiguredOllamaCompatNumCtxWrapper"]( - ...args, - )) as FacadeModule["createConfiguredOllamaCompatNumCtxWrapper"]; -export const createConfiguredOllamaCompatStreamWrapper: FacadeModule["createConfiguredOllamaCompatStreamWrapper"] = - ((...args) => - loadFacadeModule()["createConfiguredOllamaCompatStreamWrapper"]( - ...args, - )) as FacadeModule["createConfiguredOllamaCompatStreamWrapper"]; -export const createConfiguredOllamaStreamFn: FacadeModule["createConfiguredOllamaStreamFn"] = (( - ...args -) => - loadFacadeModule()["createConfiguredOllamaStreamFn"]( - ...args, - )) as FacadeModule["createConfiguredOllamaStreamFn"]; -export const createOllamaStreamFn: FacadeModule["createOllamaStreamFn"] = ((...args) => - loadFacadeModule()["createOllamaStreamFn"](...args)) as FacadeModule["createOllamaStreamFn"]; -export const DEFAULT_OLLAMA_EMBEDDING_MODEL: FacadeModule["DEFAULT_OLLAMA_EMBEDDING_MODEL"] = - loadFacadeModule()["DEFAULT_OLLAMA_EMBEDDING_MODEL"]; -export const isOllamaCompatProvider: FacadeModule["isOllamaCompatProvider"] = ((...args) => - loadFacadeModule()["isOllamaCompatProvider"](...args)) as FacadeModule["isOllamaCompatProvider"]; -export const OLLAMA_NATIVE_BASE_URL: FacadeModule["OLLAMA_NATIVE_BASE_URL"] = - loadFacadeModule()["OLLAMA_NATIVE_BASE_URL"]; -export const parseNdjsonStream: FacadeModule["parseNdjsonStream"] = ((...args) => - loadFacadeModule()["parseNdjsonStream"](...args)) as FacadeModule["parseNdjsonStream"]; -export const resolveOllamaBaseUrlForRun: FacadeModule["resolveOllamaBaseUrlForRun"] = ((...args) => - loadFacadeModule()["resolveOllamaBaseUrlForRun"]( - ...args, - )) as FacadeModule["resolveOllamaBaseUrlForRun"]; -export const resolveOllamaCompatNumCtxEnabled: FacadeModule["resolveOllamaCompatNumCtxEnabled"] = (( - ...args -) => - loadFacadeModule()["resolveOllamaCompatNumCtxEnabled"]( - ...args, - )) as FacadeModule["resolveOllamaCompatNumCtxEnabled"]; -export const shouldInjectOllamaCompatNumCtx: FacadeModule["shouldInjectOllamaCompatNumCtx"] = (( - ...args -) => - loadFacadeModule()["shouldInjectOllamaCompatNumCtx"]( - ...args, - )) as FacadeModule["shouldInjectOllamaCompatNumCtx"]; -export const wrapOllamaCompatNumCtx: FacadeModule["wrapOllamaCompatNumCtx"] = ((...args) => - loadFacadeModule()["wrapOllamaCompatNumCtx"](...args)) as FacadeModule["wrapOllamaCompatNumCtx"]; -export type OllamaEmbeddingClient = FacadeEntry["types"]["OllamaEmbeddingClient"]; -export type OllamaEmbeddingProvider = FacadeEntry["types"]["OllamaEmbeddingProvider"]; diff --git a/src/plugins/contracts/plugin-sdk-subpaths.test.ts b/src/plugins/contracts/plugin-sdk-subpaths.test.ts index 67736517675..cd628513ce9 100644 --- a/src/plugins/contracts/plugin-sdk-subpaths.test.ts +++ b/src/plugins/contracts/plugin-sdk-subpaths.test.ts @@ -691,7 +691,6 @@ describe("plugin-sdk subpath exports", () => { "VLLM_DEFAULT_BASE_URL", ], }); - expectSourceOmitsSnippet("provider-setup", "./ollama-surface.js"); expectSourceOmitsImportPattern("provider-setup", "./vllm.js"); expectSourceOmitsImportPattern("provider-setup", "./sglang.js"); expectSourceMentions("provider-auth", [