Improve audit pipeline and outreach review
This commit is contained in:
@@ -38,6 +38,19 @@ const auditGenerationParsedJson = v.union(
|
||||
v.string(),
|
||||
v.record(v.string(), auditGenerationParsedValue),
|
||||
);
|
||||
const auditFindingEvidenceRef = v.object({
|
||||
id: v.string(),
|
||||
type: v.union(
|
||||
v.literal("crawl_page"),
|
||||
v.literal("technical_check"),
|
||||
v.literal("screenshot"),
|
||||
v.literal("pagespeed"),
|
||||
v.literal("jina_excerpt"),
|
||||
v.literal("generation_stage"),
|
||||
),
|
||||
label: v.string(),
|
||||
sourceUrl: v.optional(v.string()),
|
||||
});
|
||||
|
||||
type AuditGenerationLead = Pick<
|
||||
Doc<"leads">,
|
||||
@@ -569,6 +582,57 @@ export const persistAuditGenerationResult = internalMutation({
|
||||
},
|
||||
});
|
||||
|
||||
export const replaceAuditFindings = internalMutation({
|
||||
args: {
|
||||
auditId: v.id("audits"),
|
||||
runId: v.id("agentRuns"),
|
||||
findings: v.array(
|
||||
v.object({
|
||||
skillId: v.string(),
|
||||
claim: v.string(),
|
||||
recommendation: v.string(),
|
||||
customerBenefit: v.string(),
|
||||
severity: v.union(v.literal(1), v.literal(2), v.literal(3)),
|
||||
confidence: v.number(),
|
||||
evidenceRefs: v.array(auditFindingEvidenceRef),
|
||||
reviewStatus: v.union(
|
||||
v.literal("pending"),
|
||||
v.literal("accepted"),
|
||||
v.literal("rejected"),
|
||||
),
|
||||
}),
|
||||
),
|
||||
},
|
||||
handler: async (ctx, args) => {
|
||||
const existing = await ctx.db
|
||||
.query("auditFindings")
|
||||
.withIndex("by_auditId", (q) => q.eq("auditId", args.auditId))
|
||||
.collect();
|
||||
|
||||
for (const finding of existing) {
|
||||
await ctx.db.delete(finding._id);
|
||||
}
|
||||
|
||||
const now = Date.now();
|
||||
for (const finding of args.findings) {
|
||||
await ctx.db.insert("auditFindings", {
|
||||
auditId: args.auditId,
|
||||
runId: args.runId,
|
||||
skillId: finding.skillId,
|
||||
claim: finding.claim,
|
||||
recommendation: finding.recommendation,
|
||||
customerBenefit: finding.customerBenefit,
|
||||
severity: finding.severity,
|
||||
confidence: finding.confidence,
|
||||
evidenceRefs: finding.evidenceRefs,
|
||||
reviewStatus: finding.reviewStatus,
|
||||
createdAt: now,
|
||||
updatedAt: now,
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
export const persistExternalCaptureScreenshot = internalMutation({
|
||||
args: {
|
||||
leadId: v.id("leads"),
|
||||
|
||||
Reference in New Issue
Block a user