/** * [WHO]: Factory functions that return the three goal LLM tools (GetGoal, CreateGoal, UpdateGoal) as ToolDefinition objects, plus a getter for the controller singleton map * [FROM]: Depends on @sinclair/typebox, @catui/agent-core, core/extensions-host/types, ./goal-controller, ./goal-types, ./goal-format, ./goal-prompts * [TO]: Consumed by ./index (registerTool); the controller map is shared with ./index via ./goal-runtime * [HERE]: extensions/builtin/goal/goal-tools.ts - LLM-facing tool boundary; no I/O beyond the controller */ import type { ToolDefinition } from "../../../core/extensions-host/types.js"; import type { GoalController } from "./goal-controller.js"; export interface GoalToolHost { getController(agentDir: string, threadId: string): GoalController | null; } export declare function createGetGoalTool(): ToolDefinition; export declare function createCreateGoalTool(): ToolDefinition; export declare function createUpdateGoalTool(): ToolDefinition; export declare function setGoalToolHost(h: GoalToolHost): void; export declare function buildAllGoalTools(): [ToolDefinition, ToolDefinition, ToolDefinition]; export declare const __test: { GetGoalInputSchema: import("@sinclair/typebox").TObject<{}>; CreateGoalInputSchema: import("@sinclair/typebox").TObject<{ objective: import("@sinclair/typebox").TString; token_budget: import("@sinclair/typebox").TOptional; }>; UpdateGoalInputSchema: import("@sinclair/typebox").TObject<{ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"complete">, import("@sinclair/typebox").TLiteral<"blocked">]>; }>; };