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>
This commit is contained in:
Kartikeya
2026-06-27 14:07:11 -07:00
parent 7dd613d250
commit 42c0de52b7
8 changed files with 134 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
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>;
}