endfield-mcp
Version:
MCP Server for Arknights: Endfield (TypeScript / stdio + Streamable HTTP)
36 lines (35 loc) • 1.54 kB
TypeScript
/**
* Worldview full-text search.
*
* Unlike the story domain (which ships a pre-built `search.json` of 9271
* scenes), the worldview corpus is small (~414 PRTS items) and its body
* text requires the TextTable bridge to resolve. So instead of a shipped
* index, we build the search corpus **eagerly at first query**: for each
* PRTS item, concatenate its resolved title + body into one searchable
* string. At ~414 items this is well under 100ms and avoids a mirror-side
* build step (one less thing to keep in sync).
*
* Search is regex (case-insensitive), matching the story domain's contract.
* Invalid patterns degrade to literal substring matching, same as story.
*
* Depends on `./worldviewCore.js` for the item catalog and content resolution.
*/
/** Reset the search corpus. Called by the barrel orchestrator on sync. */
export declare function clearWorldviewSearchCache(): void;
/** A search hit: the matching item id, its type, and a context snippet. */
export interface WorldviewSearchHit {
itemId: string;
/** Content kind: document / record / multi_media / text. */
type: string;
/** Resolved title of the matched item. */
title: string;
/** Snippet around the first match. */
snippet: string;
}
/**
* Full-text search across all PRTS documents.
*
* Searches each item's resolved title + body. Returns hits with a snippet
* around the first match, capped at `maxResults`.
*/
export declare function searchWorldview(pattern: string, maxResults?: number): WorldviewSearchHit[];