Circle V2 API Docs
    Preparing search index...
    createResponseTrailInputSchema: ZodDiscriminatedUnion<
        [
            ZodObject<
                {
                    auditResponseId: ZodPipe<
                        ZodString,
                        ZodTransform<AuditResponseId, number>,
                    > & zIdInnerType<ZodString>;
                    comment: ZodOptional<ZodString>;
                    kind: ZodLiteral<"existing">;
                    markedAs: ZodEnum<
                        { fail: "fail"; not_applicable: "not_applicable"; pass: "pass" },
                    >;
                },
                $strip,
            >,
            ZodObject<
                {
                    auditQuestionId: ZodPipe<
                        ZodString,
                        ZodTransform<AuditQuestionId, number>,
                    > & zIdInnerType<ZodString>;
                    auditRunId: ZodPipe<ZodString, ZodTransform<AuditRunId, number>> & zIdInnerType<
                        ZodString,
                    >;
                    comment: ZodOptional<ZodString>;
                    kind: ZodLiteral<"manual">;
                    markedAs: ZodEnum<
                        { fail: "fail"; not_applicable: "not_applicable"; pass: "pass" },
                    >;
                },
                $strip,
            >,
        ],
        "kind",
    > = ...

    Two shapes:

    • { auditResponseId } — mark an existing row (AI overrides, edits to already-marked manual rows).
    • { auditRunId, auditQuestionId } — create-or-find a row for a manual question that hasn't been marked yet. Repo enforces that the referenced question has manual = true.