@struktoai/mirage-core
Version:
A Unified Virtual Filesystem For AI Agents
27 lines • 1.69 kB
TypeScript
import type { LinearAccessor } from '../../accessor/linear.ts';
import type { PathSpec } from '../../types.ts';
export declare const SEARCH_LIMIT = 250;
export declare const RECORD_KEYS: ReadonlySet<string>;
export declare const KEPT_DIRS: readonly string[];
/**
* The files under `under` that may hold `text`: the `issue.json` files
* Linear's search names or whose other fields hold it, and the member,
* project, cycle and document files whose text holds it.
*
* Linear searches an issue's title and description by word, so with
* `askLinear` each word is asked on its own, and an issue is read when each
* word is either named there or held by the text the listing kept
* (`unsearchedText`): the rest of its JSON (team, project, cycle, state,
* people, labels, dates, link), and the words of those two the search may
* split otherwise. The text goes through `recordQueries` for its key names and
* escapes. Every issue is read without `askLinear`, when the text cannot be
* searched, a search fails or answers a full page, or nothing is found, since
* Linear indexes a write some time after it lands. A member, project, cycle or
* document file is read when the text its row kept (`keptText`) holds `text`
* in any case, or when it was too large to keep. The walk lists each directory
* from Linear, so the kept text is checked against the records as they are
* now. null for a text that is not ASCII or a scope inside an issue. Mirrors
* Python's `files_containing`.
*/
export declare function filesContaining(accessor: LinearAccessor, text: string, under: readonly PathSpec[], askLinear: boolean): Promise<PathSpec[] | null>;
//# sourceMappingURL=search.d.ts.map