import type { ToolDefinition } from './contract.js'; import { METHOD_CONVENTIONS, METHOD_PRINCIPLES } from './methods.generated.js'; /** * What a method is to its system: the system's default method, a school that replaces it when the user names the school, * or a technique loaded beside the system method when its situation arises (推理时柱 when the birth hour is unknown). */ export type MethodKind = 'system' | 'school' | 'technique'; /** A method as written in skills/taibu-divination/methods: who reads, how to judge, which tools in what order, what to write. */ export interface MethodSource { name: string; title: string; kind: MethodKind; /** The first of `systems`; a technique may serve several */ system: string; systems: string[]; version: string; description: string; role: string; method: string; workflow: string; output: string; } /** A method and the Core tools of its systems, chart first; a method that needs no chart has none. */ export interface AnalysisMethod { id: string; title: string; kind: MethodKind; system: string; systems: string[]; version: string; description: string; tools: string[]; } /** An MCP prompt for one method; its only argument is the user's question. */ export interface MethodPrompt { name: string; title: string; description: string; arguments: [{ name: 'question'; description: string; required: false; }]; } /** A type alias rather than an interface, so it stays assignable to an MCP SDK result with an index signature. */ export type MethodPromptResult = { description: string; messages: [{ role: 'user'; content: { type: 'text'; text: string; }; }]; }; export { METHOD_CONVENTIONS, METHOD_PRINCIPLES }; export declare const METHOD_PROMPT_QUESTION = "\u8981\u95EE\u7684\u4E8B\u6216\u8981\u89E3\u7684\u68A6\uFF0C\u53EF\u9644\u51FA\u751F\u65F6\u95F4\u3001\u8D77\u5366\u65B9\u5F0F\u7B49\u8D44\u6599\uFF1B\u7559\u7A7A\u65F6\u5148\u8BE2\u95EE\u7528\u6237"; /** Every method: systems in registry order, each system's default method first. */ export declare function listAnalysisMethods(): AnalysisMethod[]; /** A method by its id or by one of its system's Core tools; undefined when neither names one. */ export declare function findAnalysisMethod(id: string): AnalysisMethod | undefined; /** The system a Core tool belongs to. */ export declare function getToolSystem(tool: string): string | undefined; /** The whole method, for a model that calls the tools itself. */ export declare function renderMethodGuide(id: string): string; /** * The method without its tool workflow, for a conversation that is given the chart instead of calling tools; * `brief` keeps only the role and the output rules, for a prompt that must leave room for several systems' data. */ export declare function renderMethodPersona(id: string, brief?: boolean): string; /** The method with the shared reading principles and tool conventions: what a model reads before it interprets. */ export declare function renderMethod(id: string): string; export declare const METHOD_TOOL_NAME = "load_analysis_method"; /** * The tool through which a model loads a method itself. MCP prompts are for the user to choose; a client that offers * the model only tools would otherwise leave it with the chart and no method. */ /** How a method is chosen, after its title in a catalogue line; a system's own method needs no note. */ export declare const METHOD_KIND_NOTES: Readonly>; /** How to choose among the methods, for a model that sees the whole catalogue. */ export declare const METHOD_CHOICE_RULE = "\u540C\u4E00\u4F53\u7CFB\u6709\u591A\u4E2A\u65B9\u6CD5\u65F6\u6309\u7528\u6237\u70B9\u540D\u7684\u6D41\u6D3E\u9009\uFF0C\u672A\u70B9\u540D\u7528\u4E0E\u4F53\u7CFB\u540C\u540D\u7684\u9ED8\u8BA4\u65B9\u6CD5\uFF1B\u6280\u6CD5\uFF08\u5982\u51FA\u751F\u65F6\u8FB0\u672A\u77E5\u65F6\u7684\u63A8\u7406\u65F6\u67F1\uFF09\u5728\u9047\u5230\u5176\u6240\u8FF0\u60C5\u5F62\u65F6\u53E6\u884C\u52A0\u8F7D\uFF0C\u4E0E\u4F53\u7CFB\u65B9\u6CD5\u540C\u7528\uFF0C\u4E0D\u4EE3\u66FF\u4F53\u7CFB\u65B9\u6CD5\u3002"; export declare function getMethodToolDefinition(): ToolDefinition; export declare function listMethodPrompts(): MethodPrompt[]; /** One user message: the method, the shared reading principles and tool conventions, then the question. */ export declare function renderMethodPrompt(name: string, question?: string): MethodPromptResult; //# sourceMappingURL=methods.d.ts.map