endfield-mcp
Version:
MCP Server for Arknights: Endfield (TypeScript / stdio + Streamable HTTP)
77 lines (76 loc) • 3.06 kB
TypeScript
/**
* Worldview document reading — single PRTS item and wiki entry reads.
*
* The "read" half of the worldview domain, mirroring `storyScenes.ts`'s role:
* turn a content id into a fully-resolved, human-readable document. This is
* where the TextTable bridge gets exercised — `resolveContent()` walks
* contentId → TextTable → i18n to produce the body text.
*
* Depends on `./worldviewCore.js` for catalog loaders and content resolution.
*/
/** A fully-resolved PRTS document, ready for tool output. */
export interface LoreDocumentView {
itemId: string;
/** Resolved display title. */
title: string;
/** Resolved body text (may be "" for multimedia without transcripts). */
body: string;
/** Content kind: document / record / multi_media / text. */
type: string;
/** Owning first-level group id. */
firstLvId: string;
/** Owning category id (derived via the group). */
categoryId: string;
order: number;
/** Resolved description, or "" if absent. */
description: string;
}
/** A fully-resolved wiki entry, ready for tool output. */
export interface WikiEntryView {
entryId: string;
/** Owning group id. */
groupId: string;
/** Resolved group display name (looked up via the category→group tree). */
groupName: string;
/** Associated PRTS document id (the lore cross-link), if any. */
prtsId: string | null;
order: number;
/** Resolved description, or "" if absent. */
description: string;
/** Reference into ItemTable (mechanics; surfaced verbatim, not resolved). */
refItemId: string | null;
/** Reference into EnemyTemplateTable (mechanics; surfaced verbatim). */
refMonsterTemplateId: string | null;
}
/** Reset the private caches. Called by the barrel orchestrator on sync. */
export declare function clearDocumentCaches(): void;
/**
* Read a single PRTS narrative item by id.
*
* Returns `null` when the id is unknown. The body text is resolved through
* the TextTable bridge (contentId → hash → i18n).
*/
export declare function readLoreDocument(itemId: string): LoreDocumentView | null;
/**
* List the narrative items belonging to a first-level group.
*
* Items are returned in their upstream `order`. Useful for browsing a
* multi-document group in sequence.
*/
export declare function listItemsByGroup(firstLvId: string): LoreDocumentView[];
/**
* Read a wiki entry by id, with its group name resolved.
*
* Returns `null` when the id is unknown. The `prtsId` cross-link is surfaced
* verbatim so the caller can feed it to `ef_read_lore_document` for the
* associated lore text.
*/
export declare function readWikiEntry(entryId: string): WikiEntryView | null;
/**
* Reverse-lookup: which wiki entries point at a given PRTS document?
*
* Used by `ef_read_lore_document` to surface "this document is referenced by
* these wiki entries". Returns entry ids only (the caller can expand them
* via `readWikiEntry` if needed).
*/
export declare function wikiEntriesForPrts(prtsId: string): string[];