/** * Slash command registry for Franklin. * Extracted from loop.ts for maintainability. * * Two types of commands: * 1. "Handled" — execute directly, emit events, return { handled: true } * 2. "Rewrite" — transform input into a prompt for the agent, return { handled: false, rewritten } */ import type { ModelClient } from './llm.js'; import type { AgentConfig, Dialogue, StreamEvent } from './types.js'; import type { Registry } from '../skills/registry.js'; type EventEmitter = (event: StreamEvent) => void; interface CommandContext { history: Dialogue[]; config: AgentConfig; client: ModelClient; sessionId: string; onEvent: EventEmitter; /** Skills loaded for this session — see src/skills/. */ skillRegistry?: Registry; /** Runtime variables substituted into skill bodies before $ARGUMENTS. */ skillVars?: Record; } interface CommandResult { handled: boolean; rewritten?: string; } /** * Handle a slash command. Returns result indicating what happened. */ export declare function handleSlashCommand(input: string, ctx: CommandContext): Promise; export {};