From cfbe8130d4104ae116ade49920f1c53a7581e6d3 Mon Sep 17 00:00:00 2001 From: filipweilid <4582583+filipweilid@users.noreply.github.com> Date: Tue, 8 Sep 2026 10:42:36 +0000 Subject: [PATCH] refactor(types): sync embedded types --- src/types/protocol.ts | 96 ++++++------------------------------------ src/types/responses.ts | 15 ++++++- 2 files changed, 26 insertions(+), 85 deletions(-) diff --git a/src/types/protocol.ts b/src/types/protocol.ts index fd90f6b..d546132 100644 --- a/src/types/protocol.ts +++ b/src/types/protocol.ts @@ -6,7 +6,11 @@ export type MessageType = "CORTI_EMBEDDED" | "CORTI_EMBEDDED_RESPONSE" | "CORTI_ export type DefaultMode = "virtual" | "in-person"; +// WARNING: "_init" is an internal-only action used by the embedded Assistant component +// for initialization handshake. External applications should NOT send _init messages. +// Use only public actions listed below. export type EmbeddedAction = + | "_init" // @internal - Internal-only handshake action | "auth" | "createInteraction" | "addFacts" @@ -22,19 +26,6 @@ export type EmbeddedAction = | "setCredentials" | "showDeviceLinkQR"; -export type DeprecatedEmbeddedEvent = - | "ready" - | "loaded" - | "recordingStarted" - | "recordingStopped" - | "documentGenerated" - | "documentUpdated" - | "documentSynced" - | "authChanged" - | "interactionCreated" - | "navigationChanged" - | "usage"; - // Base Message Types export interface BaseMessage { type: MessageType; @@ -59,20 +50,12 @@ export interface EmbeddedResponse extends BaseMessage { errorDetails?: unknown; } -interface BaseEventMessage extends BaseMessage { +export interface EmbeddedEventMessage extends BaseMessage { type: "CORTI_EMBEDDED_EVENT"; - event: string | DeprecatedEmbeddedEvent; - payload?: unknown; -} - -export interface DeprecatedEmbeddedEventMessage extends BaseEventMessage { - event: DeprecatedEmbeddedEvent; - deprecated: true; -} - -export interface EmbeddedEventMessage extends BaseEventMessage { + event: string; payload: null | Record; confidential: boolean; + deprecated?: boolean; } // Specific Request Types @@ -80,6 +63,10 @@ export interface AuthRequest extends EmbeddedRequest { action: "auth"; } +export interface InitRequest extends EmbeddedRequest { + action: "_init"; +} + export interface CreateInteractionRequest extends EmbeddedRequest { action: "createInteraction"; } @@ -132,53 +119,9 @@ export interface ShowDeviceLinkQRRequest extends EmbeddedRequest { action: "showDeviceLinkQR"; } -// Event Types -export interface ReadyEvent extends DeprecatedEmbeddedEventMessage { - event: "ready"; -} - -export interface LoadedEvent extends DeprecatedEmbeddedEventMessage { - event: "loaded"; -} - -export interface RecordingStartedEvent extends DeprecatedEmbeddedEventMessage { - event: "recordingStarted"; -} - -export interface RecordingStoppedEvent extends DeprecatedEmbeddedEventMessage { - event: "recordingStopped"; -} - -export interface DocumentGeneratedEvent extends DeprecatedEmbeddedEventMessage { - event: "documentGenerated"; -} - -export interface DocumentUpdatedEvent extends DeprecatedEmbeddedEventMessage { - event: "documentUpdated"; -} - -export interface DocumentSyncedEvent extends DeprecatedEmbeddedEventMessage { - event: "documentSynced"; -} - -export interface AuthChangedEvent extends DeprecatedEmbeddedEventMessage { - event: "authChanged"; -} - -export interface InteractionCreatedEvent extends DeprecatedEmbeddedEventMessage { - event: "interactionCreated"; -} - -export interface NavigationChangedEvent extends DeprecatedEmbeddedEventMessage { - event: "navigationChanged"; -} - -export interface UsageEvent extends DeprecatedEmbeddedEventMessage { - event: "usage"; -} - // Request/Response/Event type unions export type AnyEmbeddedRequest = + | InitRequest | AuthRequest | CreateInteractionRequest | AddFactsRequest @@ -196,19 +139,6 @@ export type AnyEmbeddedRequest = export type AnyEmbeddedResponse = EmbeddedResponse; -export type AnyDeprecatedEmbeddedEvent = - | ReadyEvent - | LoadedEvent - | RecordingStartedEvent - | RecordingStoppedEvent - | DocumentGeneratedEvent - | DocumentUpdatedEvent - | DocumentSyncedEvent - | AuthChangedEvent - | InteractionCreatedEvent - | NavigationChangedEvent - | UsageEvent; - -export type AnyEvent = EmbeddedEventMessage | AnyDeprecatedEmbeddedEvent; +export type AnyEvent = EmbeddedEventMessage; export type AnyEmbeddedMessage = AnyEmbeddedRequest | AnyEmbeddedResponse | AnyEvent; diff --git a/src/types/responses.ts b/src/types/responses.ts index 3b93bdc..12213b2 100644 --- a/src/types/responses.ts +++ b/src/types/responses.ts @@ -51,14 +51,25 @@ export interface EmbeddedTemplate { isCustom: boolean; } -export interface GetStatusResponse { +export interface MedicalDeviceMetadata { + buildDate: string; + deviceIdentifier: string; + udi: string; +} + +export type MedicalDeviceStatus = + | { isMedicalDevice: false; medicalDevice?: undefined } + | { isMedicalDevice: true; medicalDevice: MedicalDeviceMetadata }; + +export type GetStatusResponse = { auth: { isAuthenticated: boolean; user?: UserInfo; }; + applicationVersion: string; currentUrl: string; interaction: EmbeddedInterviewDetails | null; -} +} & MedicalDeviceStatus; export interface GetTemplatesResponse { templates: EmbeddedTemplate[];