endfield-mcp
Version:
MCP Server for Arknights: Endfield (TypeScript / stdio + Streamable HTTP)
66 lines (65 loc) • 2.29 kB
TypeScript
/**
* Character domain — operations facade (list / get / search projections).
*
* Thin layer over `./characterTable.js` (table cache + resolver) and
* `./characterEnums.js` (profession/charType/weaponType display names).
* Produces tool-friendly shapes (`CharacterListItem`, `CharacterInfo`)
* with names resolved through `./texts.ts` so callers get actual strings,
* not int64 hashes.
*
* Lifecycle + resolver symbols (`bindCharacterStore`, `clearCharacterCaches`,
* `resolveCharacterEntry`, `CharacterEntry`) are re-exported from
* `./characterTable.js` so existing consumers (server, startupSync,
* characterProfiles, tests, smoke scripts) keep importing from
* `./characters.js` unchanged.
*/
import { type LanguageCode } from "./texts.js";
export { bindCharacterStore, clearCharacterCaches, resolveCharacterEntry, } from "./characterTable.js";
export type { CharacterEntry } from "./characterTable.js";
/** Compact summary for list views. */
export interface CharacterListItem {
id: string;
name: string;
engName: string;
profession: string;
rarity: number;
charType: string;
department: string;
}
/** Detailed view for per-character lookup. */
export interface CharacterInfo {
id: string;
name: string;
engName: string;
phoneticName: string;
profession: string;
professionCode: number;
rarity: number;
department: string;
charType: string;
weaponType: string;
weaponTypeCode: number;
cvNames: {
chinese: string;
english: string;
japanese: string;
korean: string;
};
sortOrder: number;
defaultWeaponId: string;
}
/** List all characters with default-language names resolved. */
export declare function listCharacters(lang?: LanguageCode): CharacterListItem[];
export declare function getCharacterInfo(idOrName: string, lang?: LanguageCode): CharacterInfo | null;
/**
* Regex search across names and key fields.
*
* Searches resolved names (CN + engName), charId, profession, department,
* and charType. Returns compact matches with a snippet showing where the
* pattern hit.
*/
export declare function searchCharacters(pattern: string, maxResults?: number, lang?: LanguageCode): Array<{
id: string;
name: string;
snippet: string;
}>;