| import type { OpenClawConfig } from "../config/types.js"; |
|
|
| export type CommandScope = "text" | "native" | "both"; |
|
|
| export type CommandCategory = |
| | "session" |
| | "options" |
| | "status" |
| | "management" |
| | "media" |
| | "tools" |
| | "docks"; |
|
|
| export type CommandArgType = "string" | "number" | "boolean"; |
|
|
| export type CommandArgChoiceContext = { |
| cfg?: OpenClawConfig; |
| provider?: string; |
| model?: string; |
| command: ChatCommandDefinition; |
| arg: CommandArgDefinition; |
| }; |
|
|
| export type CommandArgChoice = string | { value: string; label: string }; |
|
|
| export type CommandArgChoicesProvider = (context: CommandArgChoiceContext) => CommandArgChoice[]; |
|
|
| export type CommandArgDefinition = { |
| name: string; |
| description: string; |
| type: CommandArgType; |
| required?: boolean; |
| choices?: CommandArgChoice[] | CommandArgChoicesProvider; |
| preferAutocomplete?: boolean; |
| captureRemaining?: boolean; |
| }; |
|
|
| export type CommandArgMenuSpec = { |
| arg: string; |
| title?: string; |
| }; |
|
|
| export type CommandArgValue = string | number | boolean | bigint; |
| export type CommandArgValues = Record<string, CommandArgValue>; |
|
|
| export type CommandArgs = { |
| raw?: string; |
| values?: CommandArgValues; |
| }; |
|
|
| export type CommandArgsParsing = "none" | "positional"; |
|
|
| export type ChatCommandDefinition = { |
| key: string; |
| nativeName?: string; |
| description: string; |
| textAliases: string[]; |
| acceptsArgs?: boolean; |
| args?: CommandArgDefinition[]; |
| argsParsing?: CommandArgsParsing; |
| formatArgs?: (values: CommandArgValues) => string | undefined; |
| argsMenu?: CommandArgMenuSpec | "auto"; |
| scope: CommandScope; |
| category?: CommandCategory; |
| }; |
|
|
| export type NativeCommandSpec = { |
| name: string; |
| description: string; |
| acceptsArgs: boolean; |
| args?: CommandArgDefinition[]; |
| }; |
|
|
| export type CommandNormalizeOptions = { |
| botUsername?: string; |
| }; |
|
|
| export type CommandDetection = { |
| exact: Set<string>; |
| regex: RegExp; |
| }; |
|
|
| export type ShouldHandleTextCommandsParams = { |
| cfg: OpenClawConfig; |
| surface: string; |
| commandSource?: "text" | "native"; |
| }; |
|
|