import { type EditorialPlan, type EditorialWorkflow, type OrganizationRule } from "../ai/editorial-plan.js"; import type { UxpWebSocketBridge } from "../bridge/uxp-websocket-bridge.js"; import { ProjectContextRepository } from "../context/project-context-store.js"; export interface EditorialPlanToolDependencies { repository?: ProjectContextRepository; uxpBridge?: UxpWebSocketBridge; } type OrganizationAction = "create_bin" | "move" | "set_color"; interface VerifiedOrganizationAction { recommendationId: string; action: OrganizationAction; projectItemId?: string; verified: true; } interface UnverifiedOrganizationAttempt { recommendationId: string; action: OrganizationAction; projectItemId?: string; verified: false; } export declare function getEditorialPlanTools(dependencies?: EditorialPlanToolDependencies): { create_editorial_plan: { description: string; parameters: { type: "object"; additionalProperties: boolean; properties: { project_id: { type: string; minLength: number; maxLength: number; description: string; }; workflow: { type: string; enum: string[]; description: string; }; intent: { type: string; minLength: number; maxLength: number; description: string; }; sequence_id: { type: string; minLength: number; maxLength: number; description: string; }; max_candidates: { type: string; minimum: number; maximum: number; description: string; }; organization_rules: { type: string; maxItems: number; description: string; items: { type: string; additionalProperties: boolean; properties: { name: { type: string; minLength: number; maxLength: number; }; keywords: { type: string; minItems: number; maxItems: number; items: { type: string; minLength: number; maxLength: number; }; }; color_index: { type: string; minimum: number; maximum: number; }; }; required: string[]; }; }; platform_targets: { type: string; minItems: number; maxItems: number; description: string; items: { type: string; additionalProperties: boolean; properties: { name: { type: string; minLength: number; maxLength: number; }; width: { type: string; minimum: number; maximum: number; }; height: { type: string; minimum: number; maximum: number; }; sequence_name: { type: string; minLength: number; maxLength: number; }; include_captions: { type: string; }; }; required: string[]; }; }; }; required: string[]; }; handler: (args: { project_id: string; workflow: EditorialWorkflow; intent: string; sequence_id?: string; max_candidates?: number; organization_rules?: OrganizationRule[]; platform_targets?: Array<{ name: string; width: number; height: number; sequence_name?: string; include_captions?: boolean; }>; }) => Promise<{ success: boolean; error: string; data?: undefined; } | { success: boolean; data: EditorialPlan; error?: undefined; }>; }; preview_editorial_plan: { description: string; parameters: { type: "object"; additionalProperties: boolean; properties: { plan: { type: string; description: string; }; }; required: string[]; }; handler: (args: { plan: unknown; }) => Promise<{ success: boolean; error: string; data?: undefined; } | { success: boolean; data: { applied: boolean; confirmationToken: string; workflow: EditorialWorkflow; expectedContextRevision: string; expectedTimelineRevision: string; recommendationCount: number; nextSteps: string[]; }; error?: undefined; }>; }; } | { apply_editorial_organization_plan: { description: string; operationalCapability: { backend: "orchestrator"; backends: "orchestrator"[]; status: "limited"; minimumPremiereVersion: string; authority: "edit"; verificationBoundary: "structured_uxp_readback"; hostVerificationRequired: boolean; notes: string[]; }; parameters: { type: "object"; additionalProperties: boolean; properties: { plan: { type: string; description: string; }; confirmation_token: { type: string; minLength: number; maxLength: number; description: string; }; operation_id: { type: string; minLength: number; maxLength: number; description: string; }; organization_operations: { type: string; minItems: number; maxItems: number; items: { type: string; additionalProperties: boolean; properties: { recommendation_id: { type: string; minLength: number; maxLength: number; }; destination_bin_id: { type: string; minLength: number; maxLength: number; description: string; }; parent_bin_id: { type: string; minLength: number; maxLength: number; description: string; }; source_guards: { type: string; minItems: number; maxItems: number; items: { type: string; additionalProperties: boolean; properties: { evidence_id: { type: string; minLength: number; maxLength: number; }; project_item_id: { type: string; minLength: number; maxLength: number; }; expected_parent_id: { type: string; minLength: number; maxLength: number; }; }; required: string[]; }; }; }; required: string[]; }; }; }; required: string[]; }; handler: (args: { plan: unknown; confirmation_token: unknown; operation_id: unknown; organization_operations: unknown; }) => Promise<{ success: boolean; error: string; data?: undefined; } | { success: boolean; data: { applied: boolean; outcome: string; verified: boolean; committedActions: VerifiedOrganizationAction[]; unverifiedAttempts: UnverifiedOrganizationAttempt[]; error: string; nextSteps: string[]; }; error?: undefined; } | { success: boolean; data: { applied: boolean; outcome: string; verified: boolean; committedActions: VerifiedOrganizationAction[]; nextSteps: string[]; unverifiedAttempts?: undefined; error?: undefined; }; error?: undefined; }>; }; create_editorial_plan: { description: string; parameters: { type: "object"; additionalProperties: boolean; properties: { project_id: { type: string; minLength: number; maxLength: number; description: string; }; workflow: { type: string; enum: string[]; description: string; }; intent: { type: string; minLength: number; maxLength: number; description: string; }; sequence_id: { type: string; minLength: number; maxLength: number; description: string; }; max_candidates: { type: string; minimum: number; maximum: number; description: string; }; organization_rules: { type: string; maxItems: number; description: string; items: { type: string; additionalProperties: boolean; properties: { name: { type: string; minLength: number; maxLength: number; }; keywords: { type: string; minItems: number; maxItems: number; items: { type: string; minLength: number; maxLength: number; }; }; color_index: { type: string; minimum: number; maximum: number; }; }; required: string[]; }; }; platform_targets: { type: string; minItems: number; maxItems: number; description: string; items: { type: string; additionalProperties: boolean; properties: { name: { type: string; minLength: number; maxLength: number; }; width: { type: string; minimum: number; maximum: number; }; height: { type: string; minimum: number; maximum: number; }; sequence_name: { type: string; minLength: number; maxLength: number; }; include_captions: { type: string; }; }; required: string[]; }; }; }; required: string[]; }; handler: (args: { project_id: string; workflow: EditorialWorkflow; intent: string; sequence_id?: string; max_candidates?: number; organization_rules?: OrganizationRule[]; platform_targets?: Array<{ name: string; width: number; height: number; sequence_name?: string; include_captions?: boolean; }>; }) => Promise<{ success: boolean; error: string; data?: undefined; } | { success: boolean; data: EditorialPlan; error?: undefined; }>; }; preview_editorial_plan: { description: string; parameters: { type: "object"; additionalProperties: boolean; properties: { plan: { type: string; description: string; }; }; required: string[]; }; handler: (args: { plan: unknown; }) => Promise<{ success: boolean; error: string; data?: undefined; } | { success: boolean; data: { applied: boolean; confirmationToken: string; workflow: EditorialWorkflow; expectedContextRevision: string; expectedTimelineRevision: string; recommendationCount: number; nextSteps: string[]; }; error?: undefined; }>; }; }; export {}; //# sourceMappingURL=editorial-plans.d.ts.map