@botconnector/bccli 0.4.0-beta.9 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +253 -0
- package/README.md +93 -6
- package/dist/abort.d.ts +5 -0
- package/dist/acp-3PHBAI64.js +182 -0
- package/dist/acp.d.ts +27 -0
- package/dist/agent.d.ts +143 -0
- package/dist/agents.d.ts +4 -0
- package/dist/args-W6BNKY7K.js +13 -0
- package/dist/args.d.ts +51 -0
- package/dist/budget.d.ts +23 -0
- package/dist/checkpoints.d.ts +34 -0
- package/dist/{chunk-BFZXRKW5.js → chunk-24JN75FZ.js} +29 -7
- package/dist/chunk-45SDLMTV.js +341 -0
- package/dist/chunk-75BECX4F.js +56 -0
- package/dist/{chunk-SJH3YLW4.js → chunk-BC7UXFE4.js} +69 -6
- package/dist/chunk-BGXNR74O.js +733 -0
- package/dist/chunk-BKGFA2PT.js +8 -0
- package/dist/{chunk-CLN4Z5E3.js → chunk-BLOYFIAD.js} +6 -3
- package/dist/chunk-BXQQCUAC.js +145 -0
- package/dist/chunk-FLQPE4S5.js +373 -0
- package/dist/chunk-GN4W3T6E.js +76 -0
- package/dist/{chunk-7S6JXQCH.js → chunk-JHPGOAXU.js} +2 -1
- package/dist/chunk-MFHCQQEN.js +201 -0
- package/dist/chunk-MHIYLXJC.js +143 -0
- package/dist/chunk-PSO7R5AD.js +10 -0
- package/dist/chunk-PZRKU4UM.js +2143 -0
- package/dist/chunk-QZKLZELZ.js +64 -0
- package/dist/chunk-R5RE46CW.js +231 -0
- package/dist/chunk-UZWJQF67.js +500 -0
- package/dist/{chunk-DX7CZTBB.js → chunk-WI22M2ID.js} +14 -9
- package/dist/chunk-WNACAUDK.js +946 -0
- package/dist/chunk-XV7ZVL4J.js +235 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +150 -1382
- package/dist/clipboardImage.d.ts +17 -0
- package/dist/commands.d.ts +16 -0
- package/dist/completion-HPPFDAPB.js +125 -0
- package/dist/completion.d.ts +14 -0
- package/dist/{config-YUNKPCNB.js → config-DIDLDONU.js} +5 -2
- package/dist/config-IU76CPK2.js +34 -0
- package/dist/config.d.ts +97 -0
- package/dist/context.d.ts +13 -0
- package/dist/contextWindow.d.ts +3 -0
- package/dist/diff.d.ts +7 -0
- package/dist/exit.d.ts +9 -0
- package/dist/extensions.d.ts +34 -0
- package/dist/ghBotCli-E3VPHNZY.js +677 -0
- package/dist/ghBotCli.d.ts +9 -0
- package/dist/ghBotDispatch.d.ts +68 -0
- package/dist/ghBotRunner.d.ts +82 -0
- package/dist/ghBotServe.d.ts +21 -0
- package/dist/ghBotWebhook.d.ts +45 -0
- package/dist/hooks.d.ts +27 -0
- package/dist/i18n/id.d.ts +1 -0
- package/dist/i18n.d.ts +16 -0
- package/dist/integrationCli-Q2YPDTPG.js +685 -0
- package/dist/integrationCli.d.ts +9 -0
- package/dist/keybinds.d.ts +22 -0
- package/dist/login-FP3BB44A.js +16 -0
- package/dist/login.d.ts +19 -0
- package/dist/lsp.d.ts +47 -0
- package/dist/mcp/catalog.d.ts +14 -0
- package/dist/mcp/config.d.ts +36 -0
- package/dist/mcp/manager.d.ts +34 -0
- package/dist/mcp/oauth.d.ts +82 -0
- package/dist/{mcpCli-DZWQPTOS.js → mcpCli-SNBDUWJN.js} +42 -9
- package/dist/mcpCli.d.ts +3 -0
- package/dist/mcpServer/serve.d.ts +8 -0
- package/dist/mcpServer/server.d.ts +19 -0
- package/dist/models.d.ts +13 -0
- package/dist/modelsCli-CZ2HNGKR.js +36 -0
- package/dist/modelsCli.d.ts +15 -0
- package/dist/npmRunner-LU43GM3W.js +46 -0
- package/dist/npmRunner.d.ts +21 -0
- package/dist/oauthLogin-6FWQABJ7.js +210 -0
- package/dist/oauthLogin.d.ts +47 -0
- package/dist/permissions.d.ts +30 -0
- package/dist/pluginSpec.d.ts +25 -0
- package/dist/plugins.d.ts +45 -0
- package/dist/pluginsCli-LPIUUDWB.js +284 -0
- package/dist/pluginsCli.d.ts +16 -0
- package/dist/prCli-5IMV3VNQ.js +78 -0
- package/dist/prCli.d.ts +33 -0
- package/dist/presets.d.ts +8 -0
- package/dist/print.d.ts +14 -0
- package/dist/provider.d.ts +140 -0
- package/dist/providerCli-NMUFXAAS.js +15 -0
- package/dist/providerCli.d.ts +17 -0
- package/dist/providers.d.ts +6 -0
- package/dist/reasoning.d.ts +12 -0
- package/dist/repomap.d.ts +10 -0
- package/dist/sdk.d.ts +57 -0
- package/dist/sdk.js +5571 -0
- package/dist/serve-KWOECK5W.js +178 -0
- package/dist/serve-X2ZV4S5U.js +521 -0
- package/dist/serve.d.ts +37 -0
- package/dist/serveHeartbeat.d.ts +14 -0
- package/dist/serveProtocol.d.ts +47 -0
- package/dist/session-GKEXDJKZ.js +12 -0
- package/dist/session.d.ts +30 -0
- package/dist/setup-OV3NWQN5.js +24 -0
- package/dist/setup.d.ts +74 -0
- package/dist/slash/copy.d.ts +1 -0
- package/dist/slash/diff.d.ts +1 -0
- package/dist/slash/doctor.d.ts +18 -0
- package/dist/slash/export.d.ts +2 -0
- package/dist/slash/info.d.ts +45 -0
- package/dist/slash/memory.d.ts +10 -0
- package/dist/statsCli-CF3R7ATL.js +353 -0
- package/dist/statsCli.d.ts +62 -0
- package/dist/textToolCalls.d.ts +6 -0
- package/dist/thinking.d.ts +17 -0
- package/dist/tokenBudget.d.ts +22 -0
- package/dist/tools/bash.d.ts +52 -0
- package/dist/tools/diagnostics.d.ts +5 -0
- package/dist/tools/edit.d.ts +7 -0
- package/dist/tools/fetch.d.ts +41 -0
- package/dist/tools/glob.d.ts +5 -0
- package/dist/tools/globSafety.d.ts +7 -0
- package/dist/tools/grep.d.ts +13 -0
- package/dist/tools/ignore.d.ts +2 -0
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/memory.d.ts +13 -0
- package/dist/tools/paths.d.ts +2 -0
- package/dist/tools/plan.d.ts +10 -0
- package/dist/tools/read.d.ts +16 -0
- package/dist/tools/repomap.d.ts +2 -0
- package/dist/tools/sandbox.d.ts +12 -0
- package/dist/tools/shell.d.ts +18 -0
- package/dist/tools/skill.d.ts +3 -0
- package/dist/tools/task.d.ts +28 -0
- package/dist/tools/todo.d.ts +13 -0
- package/dist/tools/types.d.ts +52 -0
- package/dist/tools/websearch.d.ts +9 -0
- package/dist/tools/write.d.ts +5 -0
- package/dist/transferCli-YUFPI6AH.js +71 -0
- package/dist/transferCli.d.ts +23 -0
- package/dist/ui/App.d.ts +7 -0
- package/dist/ui/DiffView.d.ts +3 -0
- package/dist/ui/EditableText.d.ts +7 -0
- package/dist/ui/LinePrompt.d.ts +6 -0
- package/dist/ui/ListPicker.d.ts +11 -0
- package/dist/ui/Markdown.d.ts +8 -0
- package/dist/ui/McpMenu.d.ts +11 -0
- package/dist/ui/ModelPicker.d.ts +6 -0
- package/dist/ui/PermissionPrompt.d.ts +5 -0
- package/dist/ui/PlanApproval.d.ts +5 -0
- package/dist/ui/PromptInput.d.ts +18 -0
- package/dist/ui/ProviderMenu.d.ts +10 -0
- package/dist/ui/Spinner.d.ts +4 -0
- package/dist/ui/StatusBar.d.ts +9 -0
- package/dist/ui/TodoList.d.ts +4 -0
- package/dist/ui/ToolBlock.d.ts +14 -0
- package/dist/ui/complete.d.ts +1 -0
- package/dist/ui/focusReport.d.ts +1 -0
- package/dist/ui/index.d.ts +7 -0
- package/dist/ui/lineEdit.d.ts +42 -0
- package/dist/ui/replay.d.ts +4 -0
- package/dist/ui/table.d.ts +20 -0
- package/dist/ui/theme.d.ts +5 -0
- package/dist/ui/thinkingMouse.d.ts +33 -0
- package/dist/ui/transcript.d.ts +55 -0
- package/dist/ui/vim.d.ts +26 -0
- package/dist/ui-IVIFNUCC.js +2367 -0
- package/dist/update-TZ2G6KQ3.js +145 -0
- package/dist/update.d.ts +30 -0
- package/dist/verify.d.ts +16 -0
- package/dist/version.d.ts +1 -0
- package/dist/webBudget.d.ts +25 -0
- package/dist/worktree.d.ts +12 -0
- package/package.json +42 -8
- package/dist/args-JPVSGCGY.js +0 -12
- package/dist/chunk-2MGINW4O.js +0 -114
- package/dist/chunk-ELML4KVQ.js +0 -76
- package/dist/chunk-ISGBGFSU.js +0 -52
- package/dist/chunk-KV27KTOX.js +0 -254
- package/dist/chunk-U7GK73CK.js +0 -341
- package/dist/chunk-ZYCYTEKD.js +0 -96
- package/dist/integrationCli-BGT5UZU4.js +0 -223
- package/dist/login-6K32PIXV.js +0 -9
- package/dist/providerCli-Q7LRM2NP.js +0 -12
- package/dist/session-7UB77CEG.js +0 -9
- package/dist/ui-6GTQUJOE.js +0 -1415
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface PromptInputProps {
|
|
2
|
+
disabled?: boolean;
|
|
3
|
+
history: string[];
|
|
4
|
+
cwd: string;
|
|
5
|
+
onSubmit(text: string): void;
|
|
6
|
+
extraCommands?: {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
}[];
|
|
10
|
+
/** Text inserted at the cursor from outside (e.g. a pasted clipboard image path); `n` triggers each insert. */
|
|
11
|
+
injected?: {
|
|
12
|
+
text: string;
|
|
13
|
+
n: number;
|
|
14
|
+
};
|
|
15
|
+
/** Vim editing: Esc enters normal mode (hjkl/w/b/0/$/x/dd/dw/i/a/A/o/O). */
|
|
16
|
+
vim?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function PromptInput({ disabled, history, cwd, onSubmit, extraCommands, injected, vim }: PromptInputProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ProviderEntry {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
ready: boolean;
|
|
5
|
+
baseURL: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function ProviderMenu({ entries, onPick }: {
|
|
8
|
+
entries: ProviderEntry[];
|
|
9
|
+
onPick(id: string | 'custom' | undefined): void;
|
|
10
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PermissionMode } from '../config';
|
|
2
|
+
import type { ReasoningLevel } from '../reasoning';
|
|
3
|
+
export declare function StatusBar({ mode, tokens, busy, model, reasoning }: {
|
|
4
|
+
mode: PermissionMode;
|
|
5
|
+
tokens: number;
|
|
6
|
+
busy: boolean;
|
|
7
|
+
model?: string;
|
|
8
|
+
reasoning?: ReasoningLevel;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { SubLine } from './transcript';
|
|
2
|
+
export interface ToolBlockProps {
|
|
3
|
+
tool: string;
|
|
4
|
+
target: string;
|
|
5
|
+
output?: string;
|
|
6
|
+
display?: string;
|
|
7
|
+
isError?: boolean;
|
|
8
|
+
done: boolean;
|
|
9
|
+
expanded?: boolean;
|
|
10
|
+
sub?: SubLine[];
|
|
11
|
+
/** Display spec of the "show full output" keybind, so the hint follows a rebound key. */
|
|
12
|
+
moreBind?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function ToolBlock({ tool, target, output, display, isError, done, expanded, sub, moreBind }: ToolBlockProps): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function completeFile(value: string, cwd: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isFocusReport: (input: string) => boolean;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface LineState {
|
|
2
|
+
value: string;
|
|
3
|
+
cursor: number;
|
|
4
|
+
}
|
|
5
|
+
export interface EditKey {
|
|
6
|
+
leftArrow?: boolean;
|
|
7
|
+
rightArrow?: boolean;
|
|
8
|
+
home?: boolean;
|
|
9
|
+
end?: boolean;
|
|
10
|
+
backspace?: boolean;
|
|
11
|
+
delete?: boolean;
|
|
12
|
+
ctrl?: boolean;
|
|
13
|
+
meta?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function prevBoundary(text: string, pos: number): number;
|
|
16
|
+
export declare function nextBoundary(text: string, pos: number): number;
|
|
17
|
+
/** Start of the word before the cursor: skips spaces, then the word itself. */
|
|
18
|
+
export declare function wordLeft(text: string, pos: number): number;
|
|
19
|
+
/** End of the word after the cursor: skips spaces, then the word itself. */
|
|
20
|
+
export declare function wordRight(text: string, pos: number): number;
|
|
21
|
+
export declare const lineStart: (text: string, pos: number) => number;
|
|
22
|
+
export declare function lineEnd(text: string, pos: number): number;
|
|
23
|
+
export declare const lineCount: (text: string) => number;
|
|
24
|
+
/** Moves to the same column one line up or down; undefined when there is no such line. */
|
|
25
|
+
export declare function moveLine(text: string, pos: number, direction: -1 | 1): number | undefined;
|
|
26
|
+
export declare const atEnd: (s: LineState) => boolean;
|
|
27
|
+
export declare function insert(s: LineState, text: string): LineState;
|
|
28
|
+
/**
|
|
29
|
+
* The result of an editing key, or undefined when the key is not one of them (Enter, Esc, Tab and the arrows that
|
|
30
|
+
* walk through history belong to the caller). Printable text goes through `insert`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function applyEditKey(s: LineState, input: string, key: EditKey): LineState | undefined;
|
|
33
|
+
/** What to draw: the text before the cursor, the character under it (a space at the end or on a line break), the rest. */
|
|
34
|
+
export declare function splitAtCursor(s: LineState): {
|
|
35
|
+
before: string;
|
|
36
|
+
at: string;
|
|
37
|
+
after: string;
|
|
38
|
+
};
|
|
39
|
+
/** The characters of a text as the user sees them. */
|
|
40
|
+
export declare const graphemes: (text: string) => string[];
|
|
41
|
+
/** The same cursor over a hidden text (an API key): one dot per character. */
|
|
42
|
+
export declare function masked(s: LineState): LineState;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ChatMessage } from '../provider';
|
|
2
|
+
import { type Entry } from './transcript';
|
|
3
|
+
/** The screen rows for a resumed conversation: a notice, then every user and assistant text message in order. */
|
|
4
|
+
export declare function replayEntries(history: ChatMessage[]): Entry[];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type Style = 'plain' | 'bold' | 'italic' | 'strike' | 'link' | 'code' | 'dim';
|
|
2
|
+
export interface Seg {
|
|
3
|
+
text: string;
|
|
4
|
+
style: Style;
|
|
5
|
+
}
|
|
6
|
+
export type Align = 'left' | 'center' | 'right';
|
|
7
|
+
export interface TableData {
|
|
8
|
+
header: Seg[][];
|
|
9
|
+
align: Align[];
|
|
10
|
+
rows: Seg[][][];
|
|
11
|
+
}
|
|
12
|
+
export declare function charWidth(cp: number): number;
|
|
13
|
+
export declare function displayWidth(text: string): number;
|
|
14
|
+
export declare function parseInline(text: string): Seg[];
|
|
15
|
+
/** A table starting at lines[start] (header row, separator row, body rows), or undefined. `end` is the next line to read. */
|
|
16
|
+
export declare function parseTable(lines: string[], start: number): {
|
|
17
|
+
table: TableData;
|
|
18
|
+
end: number;
|
|
19
|
+
} | undefined;
|
|
20
|
+
export declare function layoutTable(table: TableData, width: number): Seg[][];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const THEMES: readonly ['default', 'blue', 'amber', 'magenta', 'mono'];
|
|
2
|
+
export declare function setTheme(name: string): void;
|
|
3
|
+
export declare function currentTheme(): string;
|
|
4
|
+
export declare function color(name: string): string | undefined;
|
|
5
|
+
export declare const ACCENT = "green";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** SGR terminal mouse position (1-based), used only for the live Thinking status. */
|
|
2
|
+
export interface MousePress {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function parseMousePress(value: string): MousePress | undefined;
|
|
7
|
+
export declare function parseCursorPosition(value: string): {
|
|
8
|
+
row: number;
|
|
9
|
+
col: number;
|
|
10
|
+
} | undefined;
|
|
11
|
+
/** Ink returns local element positions, not viewport coordinates. The cursor rests after the live frame. */
|
|
12
|
+
export declare function clickedThinking(click: MousePress, cursorRow: number, rootHeight: number, target: {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
}): boolean;
|
|
18
|
+
/** Ink useInput receives these control reports too; they must not enter the prompt. */
|
|
19
|
+
export declare function isMouseControlInput(input: string): boolean;
|
|
20
|
+
/** Tokenize split/coalesced Windows ConPTY SGR presses and cursor reports. */
|
|
21
|
+
export declare function parseThinkingReports(value: string): {
|
|
22
|
+
events: Array<{
|
|
23
|
+
type: 'mouse';
|
|
24
|
+
press: MousePress;
|
|
25
|
+
} | {
|
|
26
|
+
type: 'cursor';
|
|
27
|
+
cursor: {
|
|
28
|
+
row: number;
|
|
29
|
+
col: number;
|
|
30
|
+
};
|
|
31
|
+
}>;
|
|
32
|
+
rest: string;
|
|
33
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { AgentEvent } from '../agent';
|
|
2
|
+
export interface SubLine {
|
|
3
|
+
id: string;
|
|
4
|
+
tool: string;
|
|
5
|
+
target: string;
|
|
6
|
+
done: boolean;
|
|
7
|
+
isError?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export type Entry = {
|
|
10
|
+
id: number;
|
|
11
|
+
} & ({
|
|
12
|
+
kind: 'header';
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'user';
|
|
15
|
+
text: string;
|
|
16
|
+
}
|
|
17
|
+
/** cont: continuation of the entry above (no bullet); flushed: chars of this completion already moved to scrollback. */
|
|
18
|
+
| {
|
|
19
|
+
kind: 'assistant';
|
|
20
|
+
text: string;
|
|
21
|
+
cont?: boolean;
|
|
22
|
+
flushed?: number;
|
|
23
|
+
}
|
|
24
|
+
/** open: fixed state for a reprint; otherwise follows the ctrl+t toggle. */
|
|
25
|
+
| {
|
|
26
|
+
kind: 'thinking';
|
|
27
|
+
text: string;
|
|
28
|
+
open?: boolean;
|
|
29
|
+
} | {
|
|
30
|
+
kind: 'tool';
|
|
31
|
+
callId: string;
|
|
32
|
+
tool: string;
|
|
33
|
+
target: string;
|
|
34
|
+
output?: string;
|
|
35
|
+
display?: string;
|
|
36
|
+
isError?: boolean;
|
|
37
|
+
done: boolean;
|
|
38
|
+
sub?: SubLine[];
|
|
39
|
+
} | {
|
|
40
|
+
kind: 'notice';
|
|
41
|
+
text: string;
|
|
42
|
+
tone: 'info' | 'warn' | 'error';
|
|
43
|
+
});
|
|
44
|
+
/** done = printed once to scrollback (Ink <Static>); live = still changing, redrawn every frame. */
|
|
45
|
+
export interface Transcript {
|
|
46
|
+
done: Entry[];
|
|
47
|
+
live: Entry[];
|
|
48
|
+
}
|
|
49
|
+
type EntryInput = Entry extends infer E ? (E extends {
|
|
50
|
+
id: number;
|
|
51
|
+
} ? Omit<E, 'id'> : never) : never;
|
|
52
|
+
export declare const entry: (e: EntryInput) => Entry;
|
|
53
|
+
export declare function endTurn(t: Transcript): Transcript;
|
|
54
|
+
export declare function applyEvent(t: Transcript, event: AgentEvent): Transcript;
|
|
55
|
+
export {};
|
package/dist/ui/vim.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type LineState } from './lineEdit';
|
|
2
|
+
export type VimMode = 'normal' | 'insert';
|
|
3
|
+
/** The subset of ink's key flags applyVim looks at (EditKey is too narrow for Esc/Enter/arrows). */
|
|
4
|
+
export interface VimKey {
|
|
5
|
+
escape?: boolean;
|
|
6
|
+
upArrow?: boolean;
|
|
7
|
+
downArrow?: boolean;
|
|
8
|
+
leftArrow?: boolean;
|
|
9
|
+
rightArrow?: boolean;
|
|
10
|
+
ctrl?: boolean;
|
|
11
|
+
meta?: boolean;
|
|
12
|
+
tab?: boolean;
|
|
13
|
+
return?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface VimResult {
|
|
16
|
+
state: LineState;
|
|
17
|
+
mode: VimMode;
|
|
18
|
+
/** Set by "d" so the next key picks the text object (dd, dw). */
|
|
19
|
+
pending?: string;
|
|
20
|
+
handled: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Vim key handling for the prompt. Returns handled=false for keys the host input loop
|
|
24
|
+
* should process itself (insert-mode typing, arrows, ctrl/meta combos, Enter).
|
|
25
|
+
*/
|
|
26
|
+
export declare function applyVim(s: LineState, mode: VimMode, input: string, key: VimKey, pending?: string): VimResult;
|