diff --git a/packages/contracts/src/events.ts b/packages/contracts/src/events.ts index efec3d86..75846732 100644 --- a/packages/contracts/src/events.ts +++ b/packages/contracts/src/events.ts @@ -1,6 +1,7 @@ import { z } from "zod"; import { AgentRunStatus, DecisionKind, DecisionStatus, Severity } from "./agent.ts"; import { Id, NonNegInt, Timestamp } from "./common.ts"; +import { EvidenceLevel } from "./identity.ts"; import { DownloadStatus, PauseReason, TaskKind, TaskStatus } from "./execution.ts"; import { OrganizationStatus } from "./organization.ts"; import { FeedHealth } from "./sources.ts"; @@ -41,6 +42,8 @@ export const EventType = { feedFetched: "feed.fetched", feedHealthChanged: "feed.health_changed", + releaseResolved: "release.resolved", + decisionCreated: "decision.created", decisionUpdated: "decision.updated", } as const; @@ -136,6 +139,15 @@ export const FeedHealthChangedPayload = z.object({ reason: z.string().nullable(), }); +/** 来源发布已识别到本地作品(W2-B 发出,W2-C 的 evaluateAcquisition 消费);歧义/无匹配走 decision.created */ +export const ReleaseResolvedPayload = z.object({ + sourceReleaseId: Id, + observationId: Id.nullable(), + mediaEntityId: Id, + contentUnitIds: z.array(Id), + evidenceLevel: EvidenceLevel, +}); + export const DecisionCreatedPayload = z.object({ decisionId: Id, kind: DecisionKind, @@ -163,6 +175,7 @@ export const EVENT_PAYLOADS = { "agent.tool_call": AgentToolCallPayload, "feed.fetched": FeedFetchedPayload, "feed.health_changed": FeedHealthChangedPayload, + "release.resolved": ReleaseResolvedPayload, "decision.created": DecisionCreatedPayload, "decision.updated": DecisionUpdatedPayload, } as const satisfies Record;