import type { ModelCatalogEntry } from "../../agents/model-catalog.js"; import type { ModelAliasIndex } from "../../agents/model-selection.js"; import type { SessionEntry } from "../../config/sessions.js"; import type { OpenClawConfig } from "../../config/types.openclaw.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: OpenClawConfig; 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>; thinkingCatalog?: ModelCatalogEntry[]; resetModelOverride: boolean; provider: string; model: string; initialModelLabel: string; formatModelSwitchEvent: (label: string, alias?: string) => string; }; export type HandleDirectiveOnlyParams = HandleDirectiveOnlyCoreParams & { ctx?: MsgContext; messageProvider?: string; currentThinkLevel?: ThinkLevel; currentFastMode?: boolean; currentVerboseLevel?: VerboseLevel; currentReasoningLevel?: ReasoningLevel; currentElevatedLevel?: ElevatedLevel; workspaceDir?: string; surface?: string; gatewayClientScopes?: string[]; senderIsOwner?: boolean; }; export type ApplyInlineDirectivesFastLaneParams = HandleDirectiveOnlyCoreParams & { commandAuthorized: boolean; senderIsOwner: boolean; ctx: MsgContext; workspaceDir?: string; agentId?: string; isGroup: boolean; agentCfg?: NonNullable["defaults"]; modelState: { resolveDefaultThinkingLevel: () => Promise; resolveThinkingCatalog: () => Promise; allowedModelKeys: Set; allowedModelCatalog: Awaited>; resetModelOverride: boolean; }; };