feat: shared supervisor timeline, story assignment and time-spiral view
Each source version is extracted once for every review scope; events carry spans and projects from their sources, and attention density is counted from messages. After publication, events are assigned to project features and sub-threads (cross-project stories only when enabled), with user rename, merge, remove, move and undo. The story graph gains a lazily loaded Three.js time-spiral view. Includes the 3D concept demo, real-data DeepSeek check scripts and docs.
This commit is contained in:
@@ -252,11 +252,14 @@ export type SupervisionGraphRequest = z.infer<typeof supervisionGraphRequestSche
|
||||
|
||||
export const supervisionGraphViewSchema = z.object({
|
||||
storyLine: z.object({ id: z.string(), scope_json: z.string() }).nullable(),
|
||||
events: z.array(z.object({ id: z.string(), title: z.string(), description: z.string(), occurred_at: z.string() })),
|
||||
events: z.array(z.object({ id: z.string(), title: z.string(), description: z.string(), occurred_at: z.string(),
|
||||
project_id: z.string().nullish(), started_at: z.string().nullish(), ended_at: z.string().nullish() })),
|
||||
entities: z.array(z.object({ id: z.string(), canonical_label: z.string(), description: z.string(), confirmation_state: z.string() })),
|
||||
relations: z.array(z.object({ id: z.string(), from_entity_id: z.string(), to_entity_id: z.string(), relation_type: z.string(), reason: z.string(), confirmation_state: z.string() })),
|
||||
sources: z.array(z.object({ id: z.string(), title: z.string(), occurred_at: z.string() })),
|
||||
eventEntities: z.array(z.object({ event_id: z.string(), entity_id: z.string() })),
|
||||
eventSources: z.array(z.object({ event_id: z.string(), source_id: z.string() }))
|
||||
eventSources: z.array(z.object({ event_id: z.string(), source_id: z.string() })),
|
||||
attention: z.array(z.object({ start: z.string(), turns: z.number(), characters: z.number() })).optional()
|
||||
})
|
||||
export type SupervisionAttentionSlot = { start: string; turns: number; characters: number }
|
||||
export type SupervisionGraphView = z.infer<typeof supervisionGraphViewSchema>
|
||||
|
||||
Reference in New Issue
Block a user