import {
debugEmbeddingsLog,
sanitizeAndNormalizeEmbedding,
type MemoryEmbeddingProvider,
type MemoryEmbeddingProviderCreateOptions,
} from "openclaw/plugin-sdk/memory-core-host-engine-embeddings"; import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime";
/** Request/response format family — each has a different API shape. */
type Family = "titan-v1" | "titan-v2" | "cohere-v3" | "cohere-v4" | "nova" | "twelvelabs";
/** Resolve spec, stripping throughput suffixes like `:2:8k` or `:0:512`. */ function resolveSpec(modelId: string): ModelSpec | undefined { if (MODELS[modelId]) { return MODELS[modelId];
} const parts = modelId.split(":"); for (let i = parts.length - 1; i >= 1; i--) { const spec = MODELS[parts.slice(0, i).join(":")]; if (spec) { return spec;
}
} return undefined;
}
/** Infer family from model ID prefix when not in catalog. */ function inferFamily(modelId: string): Family { const id = normalizeLowercaseStringOrEmpty(modelId); if (id.startsWith("amazon.titan-embed-text-v2")) { return"titan-v2";
} if (id.startsWith("amazon.titan-embed")) { return"titan-v1";
} if (id.startsWith("amazon.nova")) { return"nova";
} if (id.startsWith("cohere.embed-v4")) { return"cohere-v4";
} if (id.startsWith("cohere.embed")) { return"cohere-v3";
} if (id.startsWith("twelvelabs.")) { return"twelvelabs";
} return"titan-v1"; // safest default — simplest request format
}
type SdkClient = import("@aws-sdk/client-bedrock-runtime").BedrockRuntimeClient;
type SdkCommand = import("@aws-sdk/client-bedrock-runtime").InvokeModelCommand;
type AwsCredentialProviderLoader = () => Promise<AwsCredentialProviderSdk | null>;
let sdkCache: AwsSdk | null = null;
let credentialProviderSdkCache: AwsCredentialProviderSdk | null | undefined;
async function loadSdk(): Promise<AwsSdk> { if (sdkCache) { return sdkCache;
} try {
sdkCache = (await import("@aws-sdk/client-bedrock-runtime")) as unknown as AwsSdk; return sdkCache;
} catch { thrownew Error( "No API key found for provider bedrock: @aws-sdk/client-bedrock-runtime is not installed. "+ "Install it with: npm install @aws-sdk/client-bedrock-runtime",
);
}
}
async function loadCredentialProviderSdk(): Promise<AwsCredentialProviderSdk | null> { if (credentialProviderSdkCache !== undefined) { return credentialProviderSdkCache;
} try {
credentialProviderSdkCache =
(await import("@aws-sdk/credential-provider-node")) as unknown as AwsCredentialProviderSdk;
} catch {
credentialProviderSdkCache = null;
} return credentialProviderSdkCache;
}
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.1Bemerkung:
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.