import { type ChatTools, type ResolvedToolContext, type ToolContext } from "../shared/agent/tool.factory.js"; import type { SystemDatabase, UserDatabase } from "../shared/interfaces/database.interface.js"; import type { ChatPersonaConfig } from "./chat.persona.js"; /** Public kickoff marker used by New Signal surfaces to enter guided intake. */ export { SIGNAL_NEW_SIGNAL_KICKOFF } from "./signal.prompt.js"; /** Stable persona id persisted for restricted Signal Agent conversations. */ export declare const SIGNAL_PERSONA_ID = "signal"; /** * Exact positive tool allowlist for Signal Agent. * * New tools added to the shared chat registry remain unavailable until they are * reviewed and explicitly added here. */ export declare const SIGNAL_TOOL_NAMES: readonly ["read_intents", "create_intent", "update_intent", "delete_intent", "search_intents", "read_intent_indexes", "create_intent_index", "delete_intent_index", "read_user_contexts", "preview_user_context", "confirm_user_context", "create_user_context", "update_user_context", "read_premises", "create_premise", "update_premise", "retract_premise", "read_networks", "read_network_memberships", "scrape_url", "ask_user_question"]; export interface SignalToolBoundary { context: ResolvedToolContext; userDb: UserDatabase; systemDb: SystemDatabase; } /** * Filters shared chat tools through Signal Agent's positive allowlist. * * @param tools - Shared context-bound chat tools * @returns Only explicitly approved Signal Agent tools */ export declare function filterSignalTools(tools: T[]): T[]; /** * Narrows schemas and handlers whose shared versions expose broader modes than * Signal Agent is allowed to use. * * @param allowed - Name-allowlisted shared chat tools * @param boundary - Authoritative context-bound databases for Signal-only checks * @returns Signal-safe tools with self-only reads and proposal-only creation */ export declare function narrowSignalTools(allowed: ChatTools, boundary: SignalToolBoundary): ChatTools; /** * Creates Signal Agent's context-bound restricted toolset. * * @param deps - Shared tool dependencies * @param preResolvedContext - Optional authoritative resolved context * @returns The allowlisted and schema-narrowed Signal Agent tools */ export declare function createSignalTools(deps: ToolContext, preResolvedContext?: ResolvedToolContext): Promise; /** Restricted Signal Agent persona on the persona-neutral chat runtime. */ export declare const SIGNAL_PERSONA: ChatPersonaConfig;