import type { ProgressStreamBlock } from "./engine.js"; import type { RuntimeProgressDispositions } from "../types.js"; export declare const DEEPSEEK_PROGRESS_TOOL_ALIASES: Set; export declare const DEEPSEEK_PROGRESS_SYSTEM_INSTRUCTION: string; export interface DeepseekProgressState { emitted: number; lastProgressKey: string | null; callIds: Set; limitReported: boolean; invalid: number; duplicate: number; overLimit: number; } export interface DeepseekProgressStartedResult { matched: boolean; block?: ProgressStreamBlock; limitExceeded?: true; } export interface ProgressMcpConfig { dir: string; path: string; } export interface ProgressMcpConfigOptions { /** undefined auto-discovers explicit/default config; null creates a progress-only config. */ baseConfigPath?: string | null; /** * undefined auto-detects the managed runtime boundary, null forces a private BYOA * config, and a path writes a sanitized runtime-readable config below that root. */ managedRoot?: string | null; /** Activation-scoped daemon socket exposed through the clean-env courseskills relay. */ courseSkillsSocketPath?: string; platform?: NodeJS.Platform; } export declare class ProgressMcpConfigError extends Error { constructor(message: string); } export declare function createDeepseekProgressState(): DeepseekProgressState; /** Return only adapter-side drops; emitted blocks are counted by RunDispatcher after reporting. */ export declare function deepseekProgressDispositions(state: DeepseekProgressState): RuntimeProgressDispositions | undefined; export declare function progressSystemContext(systemContext: string | undefined): string; /** * Recognize a progress tool start and emit only a typed, whitelisted block. Invalid, * duplicate, and over-budget calls remain handled so no generic tool card leaks arguments. */ export declare function adaptDeepseekProgressStarted(payload: unknown, seq: number, state: DeepseekProgressState): DeepseekProgressStartedResult; /** Suppress the result for a recognized progress call, including result envelopes with only ids. */ export declare function isDeepseekProgressCompletion(payload: unknown, state: DeepseekProgressState): boolean; /** * DeepSeek MCP auto-injection uses a stdio server launched through `env -i`, so it cannot * inherit Course or model credentials from the DeepSeek process. */ export declare function progressMcpAutoInjectionSupported(platform?: NodeJS.Platform): boolean; export declare function resolveExistingDeepseekMcpConfig(env?: NodeJS.ProcessEnv, home?: string): string | null; /** * Create an ephemeral DeepSeek MCP config. * * BYOA keeps the user's existing MCP settings in a private 0700/0600 directory. Managed * Agent Service sessions instead write a progress-only 0750/0640 handoff below the * supervisor-owned profile root so the separate runtime UID can read it without exposing * control-plane configuration. */ export declare function createProgressMcpConfig(options?: ProgressMcpConfigOptions): ProgressMcpConfig; export declare function cleanupProgressMcpConfig(config: ProgressMcpConfig | undefined): void;