import type { ModelAliasIndex } from "../../agents/model-selection.js"; import type { BotConfig } from "../../config/config.js"; import type { SessionEntry } from "../../config/sessions.js"; import type { MsgContext } from "../templating.js"; import type { InlineDirectives } from "./directive-handling.parse.js"; import type { ElevatedLevel, ReasoningLevel, ThinkLevel, VerboseLevel } from "./directives.js"; export type HandleDirectiveOnlyCoreParams = { cfg: BotConfig; directives: InlineDirectives; sessionEntry: SessionEntry; sessionStore: Record; sessionKey: string; storePath?: string; elevatedEnabled: boolean; elevatedAllowed: boolean; elevatedFailures?: Array<{ gate: string; key: string; }>; messageProviderKey?: string; defaultProvider: string; defaultModel: string; aliasIndex: ModelAliasIndex; allowedModelKeys: Set; allowedModelCatalog: Awaited>; resetModelOverride: boolean; provider: string; model: string; initialModelLabel: string; formatModelSwitchEvent: (label: string, alias?: string) => string; }; export type HandleDirectiveOnlyParams = HandleDirectiveOnlyCoreParams & { currentThinkLevel?: ThinkLevel; currentVerboseLevel?: VerboseLevel; currentReasoningLevel?: ReasoningLevel; currentElevatedLevel?: ElevatedLevel; surface?: string; }; export type ApplyInlineDirectivesFastLaneParams = HandleDirectiveOnlyCoreParams & { commandAuthorized: boolean; ctx: MsgContext; agentId?: string; isGroup: boolean; agentCfg?: NonNullable["defaults"]; modelState: { resolveDefaultThinkingLevel: () => Promise; allowedModelKeys: Set; allowedModelCatalog: Awaited>; resetModelOverride: boolean; }; };