/** * ⌃K: one filterable list of everything the console can do * (operator-console/AC-39..AC-41, operator-console/AC-44, operator-console/AC-55). * * Pure. Command entries are generated from `ROSTER`, so a command added to the roster * appears here with no other change. An autopilot or roadmap action that has a key * runs as that key would, so ⌃K and the key ask the same `y`/`n` and act on the same * selected row. * * @module */ import type { MenuEntry } from '../../menu/roster.js'; import { type Harness } from '../harness.js'; import type { Effect, KeyName } from './model.js'; export type PaletteKind = 'command' | 'autopilot' | 'roadmap' | 'agent' | 'console'; export interface PaletteEntry { kind: PaletteKind; label: string; /** What it is, in the words someone would type: the command, or the key that does it. */ hint: string; action: { effect: Effect; } | { key: KeyName; }; } /** Every entry, in the order the list shows them when nothing is typed (operator-console/AC-39). */ export declare function paletteEntries(roster: readonly MenuEntry[], agent: Harness): PaletteEntry[]; /** * The entries matching `query`: every word must appear, in any case, in the label, * hint or kind. Text that matches nothing becomes one entry that sends it to the * agent (operator-console/AC-41). */ export declare function filterPalette(entries: readonly PaletteEntry[], query: string, agent: Harness): PaletteEntry[]; //# sourceMappingURL=palette.d.ts.map