"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 }; }