import { type CodaliGatewayAgentCandidateDiagnostic, type CodaliGatewayAgentTierError } from "../gateway/AgentTierResolver.js"; import type { CodaliStorageExportKind, CodaliStorageExportLineage, CodaliStorageExportPrivacySummary, CodaliStorageObjectPrivacyFlags } from "../storage/CodaliStorageContracts.js"; import type { DatasetEligibilityGateAcceptedExample, DatasetEligibilityGateRejectedExample } from "./DatasetEligibilityGate.js"; import type { DatasetExportManifestReaderResult } from "./DatasetExportManifestReader.js"; export declare const CODALI_FINE_TUNE_JOB_PLANNER_SCHEMA_VERSION: "codali.improvement.fine_tune_job_planner.v1"; export declare const CODALI_FINE_TUNE_PROPOSAL_ARTIFACT: "fine-tune"; export declare const CODALI_FINE_TUNE_WORKER_ROLES: readonly ["extractor", "tool_router", "planner", "verifier", "query_expander", "repair", "context_refiner"]; export declare const CODALI_FINE_TUNE_FINAL_SYNTHESIZER_ROLE: "final_synthesizer"; export type CodaliFineTuneAllowedWorkerRole = (typeof CODALI_FINE_TUNE_WORKER_ROLES)[number]; export type CodaliFineTuneWorkerRole = CodaliFineTuneAllowedWorkerRole | typeof CODALI_FINE_TUNE_FINAL_SYNTHESIZER_ROLE; export type CodaliFineTuneProposalArtifact = typeof CODALI_FINE_TUNE_PROPOSAL_ARTIFACT; export type CodaliFineTuneJobKind = "sft" | "preference"; export type CodaliFineTuneCandidateKind = "fine_tune_job_spec"; export interface CodaliFineTuneObjectRefSummary { refId: string; kind: string; contentHash: string; byteSize: number; mimeType: string; deletionGroupId: string; privacyFlags: CodaliStorageObjectPrivacyFlags; uri?: string; mediaType?: string; metadataKeys: string[]; } export interface CodaliFineTuneScorecardMetricDelta { metric: string; before?: number; after?: number; delta?: number; } export interface CodaliFineTuneSourceScorecard { scorecardId: string; present: boolean; metricKeys: string[]; metricDeltas: CodaliFineTuneScorecardMetricDelta[]; } export interface CodaliFineTuneSourceExample { recordId: string; sourceGatewayRecordId?: string; artifactTypes: string[]; preferenceSignals: string[]; priorityScore: number; lineageKey: DatasetEligibilityGateAcceptedExample["lineageKey"]; privacy: { trainingAllowed: true; policyTags: string[]; containsPersonalData: boolean; containsTenantPrivateData: boolean; containsCustomerData: boolean; containsSourceCode: boolean; }; scorecard: CodaliFineTuneSourceScorecard; objectRefs: { inputRef?: CodaliFineTuneObjectRefSummary; outputRef?: CodaliFineTuneObjectRefSummary; evidenceRefs: CodaliFineTuneObjectRefSummary[]; }; tokenEstimate: number; metadataShape: { keys: string[]; scorecardKeys: string[]; }; } export interface CodaliFineTuneTrainingManifestRecord { recordId: string; sourceGatewayRecordId?: string; lineageKey: DatasetEligibilityGateAcceptedExample["lineageKey"]; scorecardId: string; objectRefHashes: string[]; tokenEstimate: number; preferenceSignals: string[]; priorityScore: number; } export interface CodaliFineTuneTrainingManifest { manifestId: string; jobKind: CodaliFineTuneJobKind; role: CodaliFineTuneWorkerRole; exportId: string; sourceManifestId: string; sourceChecksum: string; reproducibleFrom: { exportId: string; sourceManifestId: string; sourceChecksum: string; policyHash: string; role: CodaliFineTuneWorkerRole; }; records: CodaliFineTuneTrainingManifestRecord[]; rowCount: number; totalTokenEstimate: number; excludedTrainingBlockedRecordIds: string[]; } export interface CodaliFineTuneInventoryWarning { code: string; message: string; details?: Record; } export interface CodaliFineTuneInventorySource { source: "provided" | "command" | "not_provided"; command?: string; args?: string[]; status?: "succeeded" | "failed" | "not_run"; latencyMs?: number; inventoryCount?: number; errors?: string[]; } export interface CodaliFineTuneTargetAssignmentSummary { resolverRole: string; agentSlug: string; adapter: string; provider?: string; model: string; source: string; tier: string; runtimeHealth: { status: string; latencyMs?: number; }; capabilities: string[]; contextWindow?: number; costPerMillion?: number; score: number; reasons: string[]; } export interface CodaliFineTuneTargetResolution { source: CodaliFineTuneInventorySource; status: "resolved" | "unresolved"; resolverRole: string; inventorySnapshotHash?: string; inventoryCount: number; assignment?: CodaliFineTuneTargetAssignmentSummary; diagnostics: CodaliGatewayAgentCandidateDiagnostic[]; warnings: CodaliGatewayAgentTierError[]; errors: CodaliGatewayAgentTierError[]; refreshWarnings: CodaliFineTuneInventoryWarning[]; } export interface CodaliFineTuneScorecardSummary { required: true; bypassAllowed: false; examplesWithScorecards: number; missingRecordIds: string[]; scorecardIds: string[]; averageMetricDeltas: CodaliFineTuneScorecardMetricDelta[]; } export interface CodaliFineTuneEvalCommandSpec { commandId: string; command: "docdexd"; args: string[]; dryRunSafe: true; expectedScorecards: string[]; scorecardBypassAllowed: false; } export interface CodaliFineTuneEvalPlan { planId: string; scorecardRequired: true; bypassAllowed: false; scorecardIds: string[]; gates: Array<{ gateId: string; type: "scorecard" | "privacy" | "offline_eval" | "target_health"; required: true; passed: boolean; reasons: string[]; }>; commands: CodaliFineTuneEvalCommandSpec[]; } export interface CodaliFineTuneCostEstimate { source: "mcoda_inventory" | "not_available"; currency: "USD"; estimatedTrainingTokens: number; costPerMillionTokens?: number; estimatedProviderCostUsd?: number; notes: string[]; } export interface CodaliFineTuneRollbackPlan { planId: string; automaticProviderJobSubmitted: false; steps: string[]; triggers: string[]; } export interface CodaliFineTuneProviderSubmissionPolicy { automaticSubmission: false; approvalRequired: true; status: "not_submitted"; runnerStatus: "not_approved"; blocker: "provider_specific_runners_not_approved"; } export interface CodaliFineTuneJobSpec { jobSpecId: string; jobPlanId: string; status: "draft" | "blocked"; jobKind: CodaliFineTuneJobKind; role: CodaliFineTuneWorkerRole; targetResolution: CodaliFineTuneTargetResolution; trainingManifest: CodaliFineTuneTrainingManifest; datasetLineage: CodaliStorageExportLineage; privacySummary: CodaliStorageExportPrivacySummary; scorecardSummary: CodaliFineTuneScorecardSummary; evalPlan: CodaliFineTuneEvalPlan; costEstimate: CodaliFineTuneCostEstimate; rollbackPlan: CodaliFineTuneRollbackPlan; providerSubmission: CodaliFineTuneProviderSubmissionPolicy; } export interface CodaliFineTuneImprovementCandidateSummary { candidateId: string; candidateKind: CodaliFineTuneCandidateKind; status: "proposed" | "blocked"; role: CodaliFineTuneWorkerRole; jobKind: CodaliFineTuneJobKind; sourceExportIds: string[]; sourceRecordIds: string[]; artifactIds: string[]; exampleCount: number; objectBytes: number; jobSpecIds: string[]; blockedReasons: string[]; scorecardRequired: true; providerSubmissionEnabled: false; } export interface CodaliFineTuneJobPlannerBundle { schemaVersion: typeof CODALI_FINE_TUNE_JOB_PLANNER_SCHEMA_VERSION; artifact: CodaliFineTuneProposalArtifact; source: { exportId: string; manifestId: string; manifestPath: string; exportKind: CodaliStorageExportKind; checksum: string; recordCount: number; primaryArtifactRef: CodaliFineTuneObjectRefSummary; }; generationPolicy: { deterministic: true; modifiesRuntimePrompts: false; modifiesRuntimeCode: false; bodyPolicy: "object_refs_and_hashes_only"; uploadEnabled: false; providerSubmissionEnabled: false; scorecardRequired: true; scorecardBypassAllowed: false; finalSynthesizerFineTuning: false; }; expectedShape: { schemaVersion: typeof CODALI_FINE_TUNE_JOB_PLANNER_SCHEMA_VERSION; artifact: CodaliFineTuneProposalArtifact; requiredFields: string[]; jobSpecRequiredFields: string[]; }; rolePolicy: { role: CodaliFineTuneWorkerRole; resolverRole: string; allowedWorkerRole: boolean; supportedExportKinds: CodaliStorageExportKind[]; finalSynthesizerAllowed: false; providerAutoSubmitAllowed: false; }; sourceExamples: CodaliFineTuneSourceExample[]; trainingManifest: CodaliFineTuneTrainingManifest; targetResolution: CodaliFineTuneTargetResolution; scorecardSummary: CodaliFineTuneScorecardSummary; evalPlan: CodaliFineTuneEvalPlan; costEstimate: CodaliFineTuneCostEstimate; rollbackPlan: CodaliFineTuneRollbackPlan; providerSubmission: CodaliFineTuneProviderSubmissionPolicy; jobSpecs: CodaliFineTuneJobSpec[]; rejectedEvidence: DatasetEligibilityGateRejectedExample[]; candidates: CodaliFineTuneImprovementCandidateSummary[]; } export interface BuildCodaliFineTuneJobPlannerBundleInput { inspection: DatasetExportManifestReaderResult; role?: CodaliFineTuneWorkerRole; artifact?: CodaliFineTuneProposalArtifact; inventory?: unknown[]; inventorySource?: CodaliFineTuneInventorySource; inventoryWarnings?: CodaliFineTuneInventoryWarning[]; } export declare const normalizeCodaliFineTuneWorkerRole: (value: string) => CodaliFineTuneWorkerRole | undefined; export declare const fineTuneArtifactTypesForRole: (role: CodaliFineTuneWorkerRole) => string[]; export declare const buildCodaliFineTuneJobPlannerBundle: ({ inspection, role, artifact, ...input }: BuildCodaliFineTuneJobPlannerBundleInput) => CodaliFineTuneJobPlannerBundle; //# sourceMappingURL=FineTuneJobPlanner.d.ts.map