Files
podman/shared/src/intervention.ts
T
Kartikeya 42c0de52b7 feat(shared): add core domain types
Pod/Engineer, EngineerContext (live pre-push signal), Collision, and
Intervention — the type contract between frontend and backend.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 14:07:11 -07:00

25 lines
774 B
TypeScript

export type InterventionKind = 'voice' | 'card';
export type InterventionStatus = 'pending' | 'delivered' | 'accepted' | 'dismissed';
export type SuggestedActionKind = 'open_sync_pr' | 'ping_teammate' | 'none';
/** What PodMan says/does about a collision — the product's hero output. */
export interface Intervention {
id: string;
collisionId: string;
podId: string;
kind: InterventionKind;
/** Spoken/displayed message, e.g. "Karti and Yahya are both in auth.ts...". */
message: string;
suggestedAction: SuggestedAction;
status: InterventionStatus;
createdAt: string;
}
export interface SuggestedAction {
kind: SuggestedActionKind;
/** Free-form payload for the action (e.g. branch names for a sync PR). */
params?: Record<string, unknown>;
}