/** * prepare_change — single-round context aggregator for D365FO extension work. * * Gathers in one call everything an AI needs to safely extend an existing * D365FO object: * - exact method signature from the symbol index * - existing CoC wrappers (bridge-first via DYNAMICSXREFDB, index fallback) * - CoC/event-handler eligibility * - recommended extension strategy * - object naming validation for the proposed new name * - relevant code patterns * * Internally runs up to 5 index/bridge queries in parallel. Returns a * provenance token (SHA-256, 30-min TTL) that proves the model looked at * the real codebase before writing code. * * Fail-closed enforcement: when GROUNDING_ENFORCE=true, extension patterns * in generate_object(mode="pattern") and d365fo_file(action="create") require this token. */ import { z } from 'zod'; import type { XppServerContext } from '../../types/context.js'; export declare const prepareChangeArgsSchema: z.ZodObject<{ goal: z.ZodString; objectName: z.ZodString; methodName: z.ZodOptional; objectType: z.ZodOptional>; proposedName: z.ZodOptional; }, z.core.$strip>; export interface ResolvedObject { name: string; type: string; /** Other top-level types the same name resolves to, for the disclosure line. */ alsoTypes: string[]; /** True when the winner was picked because it DECLARES the requested method. */ byMethod: boolean; } /** * Hard character budget for the ranked-context block, dropped item by item. * * This is the lowest value-per-byte section prepare renders — its lines read * "keyword match, 1 intent term, member of CustTable (score 6.5)" — and it sits * LAST precisely so a cut lands here. Giving it its own budget means the cut is * made by something that knows where an item ends: whole items go, and the * count of what went is stated, rather than the generic capper slicing an entry * in half. * * Exported so prepare(create) budgets the same block the same way. */ export declare const RANKED_CONTEXT_BUDGET = 1200; export declare function budgetRankedContext(lines: string[], budget?: number): string[]; export declare function prepareChangeTool(request: any, context: XppServerContext): Promise; //# sourceMappingURL=prepareChange.d.ts.map