UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

118 lines (117 loc) • 5.1 kB
import { l as normalizeOptionalString } from "./string-coerce-6kR-86XC.mjs"; import { n as formatEnvelopeForText, r as providerSummaryText } from "./output-BaRjhBNO.mjs"; import { n as runCapabilityCommand, t as registerLocalProvidersCommand } from "./providers-command-Df3zMn81.mjs"; import { t as collectOption } from "./helpers-Bd2A8dod.mjs"; //#region src/cli/capability-cli/embedding.ts async function closeEmbeddingProviderWithRetry(provider) { try { await provider.close?.(); } catch { await provider.close?.(); } } async function runMemoryEmbeddingCreate(params) { const { requireProviderModelOverride, resolveLocalCapabilityAgent } = await import("./shared-DNArGz-H.mjs"); const { getMemoryEmbeddingCommandSecretTargetIds } = await import("./command-secret-targets-yt2w4Rmy.mjs"); const { createEmbeddingProvider } = await import("./memory-core-bundled-runtime-esVxmkuu.mjs"); const modelRef = requireProviderModelOverride(params.model); const { cfg, agentDir } = await resolveLocalCapabilityAgent({ commandName: "infer embedding create", targetIds: getMemoryEmbeddingCommandSecretTargetIds(), agent: params.agent }); const result = await createEmbeddingProvider({ config: cfg, agentDir, provider: normalizeOptionalString(params.provider) || modelRef?.provider || "auto", fallback: "none", model: modelRef?.model ?? "" }); if (!result.provider) throw new Error(result.providerUnavailableReason ?? "No embedding provider available."); const provider = result.provider; let embeddings; try { embeddings = await provider.embedBatch(params.texts, { inputType: "document" }); } catch (err) { await closeEmbeddingProviderWithRetry(provider).catch(() => {}); throw err; } await closeEmbeddingProviderWithRetry(provider); return { ok: true, capability: "embedding.create", transport: "local", provider: provider.id, model: provider.model, attempts: result.fallbackFrom ? [{ provider: result.fallbackFrom, outcome: "failed", error: result.fallbackReason }] : [], outputs: embeddings.map((embedding, index) => ({ text: params.texts[index], embedding, dimensions: embedding.length })) }; } function registerEmbeddingCapabilityCommands(capability) { const embedding = capability.command("embedding").description("Embedding providers").option("--agent <id>", "Agent whose model and auth state should be used"); embedding.command("create").description("Create embeddings").requiredOption("--text <text>", "Input text", collectOption).option("--provider <id>", "Provider id").option("--model <provider/model>", "Model override").option("--agent <id>", "Agent whose saved provider auth is used (default: agents.defaults.systemAgent.agentId, then the sole agent)").option("--json", "Output JSON", false).action((opts, command) => runCapabilityCommand(opts.json, formatEnvelopeForText, async () => { const { resolveCapabilityAgentOption } = await import("./shared-DNArGz-H.mjs"); return runMemoryEmbeddingCreate({ texts: opts.text, agent: resolveCapabilityAgentOption(command, opts.agent), provider: opts.provider, model: opts.model }); })); registerLocalProvidersCommand(embedding, "List embedding providers", async (cfg, agentId) => { const { providerHasGenericConfig } = await import("./shared-DNArGz-H.mjs"); const { resolveMemorySearchConfig } = await import("./memory-search-BHj8A3Xf.mjs"); const { listEmbeddingProviders } = await import("./embedding-provider-runtime-jvKP-KNS.mjs"); const { listRegisteredMemoryEmbeddingProviderAdapters } = await import("./memory-embedding-provider-runtime-BmfEN-2h.mjs"); const resolvedMemory = resolveMemorySearchConfig(cfg, agentId); const selectedProvider = resolvedMemory?.provider; const providers = new Map(listRegisteredMemoryEmbeddingProviderAdapters().map((provider) => [provider.id, { id: provider.id, defaultModel: provider.defaultModel, transport: provider.transport, autoSelectPriority: provider.autoSelectPriority }])); for (const provider of listEmbeddingProviders(cfg)) { if (providers.has(provider.id)) continue; providers.set(provider.id, { id: provider.id, defaultModel: provider.defaultModel, transport: provider.transport, autoSelectPriority: void 0 }); } if (selectedProvider && !providers.has(selectedProvider)) providers.set(selectedProvider, { id: selectedProvider, defaultModel: resolvedMemory?.model || void 0, transport: providerHasGenericConfig({ cfg, providerId: selectedProvider, agentId }) ? "remote" : void 0, autoSelectPriority: void 0 }); return Array.from(providers.values()).map((provider) => ({ available: true, configured: provider.id === selectedProvider || providerHasGenericConfig({ cfg, providerId: provider.id, agentId }), selected: provider.id === selectedProvider, id: provider.id, defaultModel: provider.defaultModel, transport: provider.transport, autoSelectPriority: provider.autoSelectPriority })); }, providerSummaryText); } //#endregion export { registerEmbeddingCapabilityCommands };