/** * [WHO]: Args, Mode, parseArgs(), printHelp() * [FROM]: Depends on agent-core, chalk, config.ts, core/tools * [TO]: Consumed by main.ts, cli/session-start.ts, cli/session-options.ts, core/model-resolver.ts * [HERE]: cli/args.ts - CLI argument parsing and help display (incl. remote serve flags: --serve/--port/--host/--tunnel) */ import { type AgentLoopFrameworkInput, type AgentLoopPolicyOptions, type ThinkingLevel } from "@catui/agent-core"; import { type ToolName } from "../core/tools/index.js"; export type Mode = "text" | "json" | "rpc"; export interface Args { cwd?: string; provider?: string; model?: string; apiKey?: string; systemPrompt?: string; appendSystemPrompt?: string; thinking?: ThinkingLevel; continue?: boolean; resume?: boolean; help?: boolean; version?: boolean; mode?: Mode; noSession?: boolean; session?: string; sessionDir?: string; models?: string[]; tools?: ToolName[]; noTools?: boolean; extensions?: string[]; noExtensions?: boolean; print?: boolean; /** In text print mode, emit the final agent loop result as stderr JSON. */ printLoopResult?: boolean; /** In text print mode, emit PawBench-readable transcript events as stderr NDJSON. */ printTranscript?: boolean; /** In print mode, exit non-zero when the final agent result is an error. */ failOnAgentError?: boolean; /** In print mode, exit non-zero when any tool permission denial occurred. */ failOnToolDenial?: boolean; /** Non-persistent agent loop framework override for this process/session. */ agentLoopFramework?: AgentLoopFrameworkInput; /** Non-persistent loop policy overrides for this process/session. */ loopPolicy?: Pick; export?: string; noSkills?: boolean; skills?: string[]; promptTemplates?: string[]; noPromptTemplates?: boolean; themes?: string[]; noThemes?: boolean; listModels?: string | true; refreshModels?: boolean; offline?: boolean; /** Disable MCP (Model Context Protocol). Default: false (MCP enabled) */ noMcp?: boolean; verbose?: boolean; /** @deprecated Accepted for compatibility; NanoSoul is already suspended. */ disableSoul?: boolean; /** Enable ACP (Agent Client Protocol) mode for editor integration */ acp?: boolean; /** Enable remote serve mode: HTTP + WebSocket server for mobile/browser clients */ serve?: boolean; /** Port for remote serve mode (default: 8787) */ port?: number; /** Bind address for remote serve mode (default: 0.0.0.0) */ host?: string; /** Spawn a cloudflared quick tunnel for external access in serve mode */ tunnel?: boolean; /** Fixed pairing token for serve mode (unattended setups, e.g. behind frp). Default: random per run */ serveToken?: string; /** Advertised WebSocket endpoint for serve mode QR/deep link (e.g. ws://frp-host:8787/ws) */ advertiseUrl?: string; /** Multi-Agent: ID of the agent to use. Default: "default" */ agent?: string; messages: string[]; fileArgs: string[]; /** Unknown flags (potentially extension flags) - map of flag name to value */ unknownFlags: Map; } export declare function isValidThinkingLevel(level: string): level is ThinkingLevel; export declare function parseArgs(args: string[], extensionFlags?: Map): Args; export declare function printHelp(): void;