import { z } from "zod"; /** * Meta-tool: returns the canonical investigation sequence for a known * problem class. Lets a fresh LLM agent jump straight to the right pipeline * without rediscovering the order from tool descriptions. * * Each playbook is a versioned, declarative sequence of tool calls with a * stable `step` number, a `purpose` line, and `argsTemplate` showing which * args matter most. The agent fills in concrete values from the user's * context (file paths, class names, etc.). */ export declare const PlaybookKindEnum: z.ZodEnum<["memgraph-leak", "perf-hangs", "ui-jank", "app-launch-slow", "verify-fix"]>; export declare const getInvestigationPlaybookSchema: z.ZodObject<{ kind: z.ZodEnum<["memgraph-leak", "perf-hangs", "ui-jank", "app-launch-slow", "verify-fix"]>; }, "strip", z.ZodTypeAny, { kind: "memgraph-leak" | "perf-hangs" | "ui-jank" | "app-launch-slow" | "verify-fix"; }, { kind: "memgraph-leak" | "perf-hangs" | "ui-jank" | "app-launch-slow" | "verify-fix"; }>; export type GetInvestigationPlaybookInput = z.infer; export type PlaybookKind = z.infer; export interface PlaybookStep { step: number; tool: string; purpose: string; argsTemplate: Record; /** Optional notes about how to interpret the result before moving to the next step. */ resultGuidance?: string; } export interface PlaybookTroubleshooting { /** Tool whose failure this entry addresses. */ tool: string; /** * Stable identifier matching `workaroundNotice.issue` when the underlying * tool emits one. Lets the LLM agent branch deterministically. */ issueId?: string; /** One-line description of the symptom that triggers this entry. */ trigger: string; /** Ordered recovery steps the agent can take. */ recovery: string[]; } export interface Playbook { kind: PlaybookKind; summary: string; steps: PlaybookStep[]; /** Pointers to alternative playbooks the agent might want next. */ seeAlso?: PlaybookKind[]; /** Known failure modes for tools used in this playbook + recovery paths. */ troubleshooting?: PlaybookTroubleshooting[]; } declare const PLAYBOOKS: Record; export interface GetInvestigationPlaybookResult { ok: boolean; playbook: Playbook; } export declare function getInvestigationPlaybook(input: GetInvestigationPlaybookInput): Promise; /** Exposed for tests + the prompts surface. */ export declare const PLAYBOOK_KINDS: PlaybookKind[]; /** Exposed for the prompts surface (see src/runtime/prompts.ts). */ export { PLAYBOOKS };