87 lines
1.9 KiB
TypeScript
87 lines
1.9 KiB
TypeScript
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;
|
|
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";
|
|
};
|