NODEDC_1C/llm_normalizer/backend/dist/services/assistantProviderExecutionP...

60 lines
2.5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ASSISTANT_PROVIDER_EXECUTION_CONTRACT_SCHEMA_VERSION = void 0;
exports.createAssistantProviderExecutionPolicy = createAssistantProviderExecutionPolicy;
exports.ASSISTANT_PROVIDER_EXECUTION_CONTRACT_SCHEMA_VERSION = "assistant_provider_execution_contract_v1";
function createAssistantProviderExecutionPolicy() {
function normalizeProvider(value) {
return value === "local" ? "local" : value === "openai" ? "openai" : null;
}
function detectLlmRuntimeUnavailable(reason) {
const source = String(reason ?? "").trim();
if (!source) {
return false;
}
return /(?:openai\s+api\s+key\s+is\s+missing|api\s+key\s+is\s+missing|missing\s+api\s+key|authentication|unauthoriz(?:ed|ation)|401\b)/iu.test(source);
}
function resolveProviderExecutionState(input) {
const normalizedProvider = normalizeProvider(input?.llmProvider);
const useMock = Boolean(input?.useMock);
const baseUrlConfigured = String(input?.baseUrl ?? "").trim().length > 0;
const llmRuntimeUnavailableDetected = detectLlmRuntimeUnavailable(input?.llmPreDecomposeReason);
const reasonCodes = [];
if (useMock) {
reasonCodes.push("mock_mode_enabled");
}
if (normalizedProvider === "local") {
reasonCodes.push("provider_local");
}
else if (normalizedProvider === "openai") {
reasonCodes.push("provider_openai");
}
else {
reasonCodes.push("provider_unknown");
}
if (baseUrlConfigured) {
reasonCodes.push("base_url_configured");
}
if (llmRuntimeUnavailableDetected) {
reasonCodes.push("llm_runtime_unavailable");
}
return {
schema_version: exports.ASSISTANT_PROVIDER_EXECUTION_CONTRACT_SCHEMA_VERSION,
policy_owner: "assistantProviderExecutionPolicy",
provider_mode: useMock ? "mock" : normalizedProvider ?? "unknown",
normalized_provider: normalizedProvider,
use_mock: useMock,
base_url_configured: baseUrlConfigured,
llm_runtime_unavailable_detected: llmRuntimeUnavailableDetected,
living_mode_forced_deep: useMock,
living_mode_forced_reason: useMock ? "mock_mode_keeps_deep_pipeline" : null,
reason_codes: reasonCodes
};
}
return {
normalizeProvider,
detectLlmRuntimeUnavailable,
resolveProviderExecutionState
};
}