import type { DataOperation } from "./dataCapabilities.js"; import { REVIEW_PLAN_REPLAY_LIMITS, MAX_DIAGNOSTIC_JSON_DEPTH, MAX_DIAGNOSTIC_JSON_NODES } from "@actuarial-ts/core"; import { REVIEW_STUDY_COLLECTION_CONTRACT_VERSION, REVIEW_STUDY_COLLECTION_LIMITS } from "./reviewStudyTypes.js"; import { reviewStudyExecutionRequestSchema, validateReviewStudyExecutionRequest } from "./reviewStudies.js"; export function reviewStudyCapabilities(): readonly DataOperation[] { return [{ id: "review.study-collection", kind: "workflow", native: "createReviewStudyCollection", nativePackage: "@actuarial-ts/data", entry: "createReviewStudyCollectionFromInput", validator: "validateReviewStudyExecutionRequest", parser: "parseReviewStudyExecutionRequest", schemaName: "reviewStudyExecutionRequestSchema", schema: reviewStudyExecutionRequestSchema, input: "ReviewStudyExecutionRequest", output: "ReviewStudyCollection", contract: REVIEW_STUDY_COLLECTION_CONTRACT_VERSION, fields: ["request", "review"], limits: { ...REVIEW_STUDY_COLLECTION_LIMITS, maximumReviewInputCharacters: REVIEW_PLAN_REPLAY_LIMITS.maximumInputCharacters, maximumJsonDepth: MAX_DIAGNOSTIC_JSON_DEPTH, maximumJsonNodes: MAX_DIAGNOSTIC_JSON_NODES }, work: "source-preparation", checked: ["safe-json-and-exact-execution-schema", "saved-review-structure-references-compilation-and-dependencies", "native-attachment-envelope-and-reference-validation", "native-sensitivity-grid-and-diagnostic-request-validation", "declared-collection-and-nested-preflight-budgets", "complete-subject-declarations-and-retained-review-binding-equality"], deferred: ["saved-review-numerical-replay-and-live-receipt", "exact-native-study-numerical-replay-and-model-refits", "complete-output-evidence-budget", "diagnostic-gate-outcomes-and-coordinate-coverage", "source-authenticity", "cross-subject-comparability", "independent-validation", "causal-interpretation", "review-completeness-and-publication"], coordinates: ["attachment", "subject", "node", "path", "scenario", "model", "dataset"], source: "saved-review-and-explicit-native-study-results", replay: ["replayReviewStudyCollectionFromInput"], replayPackage: "@actuarial-ts/data", unitRule: "Native studies retain their own quantities, scales and missingness; a collection does not aggregate or convert them", populationRule: "Exact retained subject matches or explicit related-evidence declarations are required; common population membership is not inferred", financialRule: "Review and study contexts retain their declared financial bases; membership in a collection does not establish compatibility or remove overlap", options: [ { path: "request.attachments[].kind", choices: ["sensitivity", "sensitivity-grid", "diagnostic-suite"], default: null, description: "Required native saved study; every attachment is replayed before a collection is returned" }, { path: "request.attachments[].binding", choices: ["review-baseline", "review-model", "review-input", "declared-related"], default: null, description: "Use the binding shape required by the attachment kind. Related evidence requires explicit rationale and stays qualified" }, { path: "review", choices: ["saved-run-and-explicit-replay-limit"], default: null, description: "Supply saved review data. Execution replays it to acquire a current-process receipt; serialized receipt claims are not accepted" }, ], costQualification: "Preflight checks the saved graph, compiles native study requests and prepares diagnostic inputs without reserve fitting. The collection graph-run ceiling sums scenario-study declared maximumRuns; it excludes the parent review replay and diagnostic model refits. Diagnostic-row counts include loss/exposure rows; nested suites separately count expected cells. Component input and complete output character limits are distinct. No total instruction, latency, peak-memory or cancellation guarantee is supplied", limitations: [ "Preflight proves retained structural coherence and input eligibility only; it neither authenticates saved numerical claims nor issues a review replay receipt", "Execution reopens the review and replays every attachment with existing native engines. Rehashed false values remain subject to exact numerical comparison", "Binding equality in preflight compares retained data; final binding evidence is returned only after authentic review and study replay", "Declared-related subjects remain visibly qualified; no absence of findings certifies completeness, independent evidence, causal explanation or publication readiness", "Create and replay use different actual request schemas: replayReviewStudyCollectionFromInput expects collection plus review", ], evaluate: validateReviewStudyExecutionRequest, }]; }