export type WorkflowEventType = 'WORKFLOW_EXECUTION_STARTED' | 'WORKFLOW_EXECUTION_COMPLETED' | 'WORKFLOW_EXECUTION_FAILED' | 'WORKFLOW_EXECUTION_CANCELED' | 'WORKFLOW_EXECUTION_CONTINUED_AS_NEW' | 'WORKFLOW_TASK_TIMED_OUT' | 'WORKFLOW_TASK_FAILED' | 'CUSTOM_TASK_STARTED' | 'CUSTOM_TASK_IN_PROGRESS' | 'CUSTOM_TASK_COMPLETED' | 'CUSTOM_TASK_FAILED' | 'CUSTOM_TASK_TIMED_OUT' | 'CUSTOM_TASK_CANCELED' | 'ACTIVITY_TASK_STARTED' | 'ACTIVITY_TASK_COMPLETED' | 'ACTIVITY_TASK_RETRYING' | 'ACTIVITY_TASK_FAILED'; export type GetApiV1WorkflowsEventsStreamArgs = {scope?: ('activity' | 'workflow' | '*') | undefined, activity_name?: string | undefined, activity_id?: string | undefined, workflow_name?: string | undefined, workflow_exec_id?: string | undefined, root_workflow_exec_id?: string | undefined, parent_workflow_exec_id?: string | undefined, stream?: string | undefined, start_seq?: number | undefined, metadata_filters?: ({[key: string]: unknown} | null) | undefined, workflow_event_types?: (Array | null) | undefined, 'last-event-id'?: (string | null) | undefined}; export type GetApiV1WorkflowsEventsStreamOptions = {baseUrl?: string | undefined, ApiKey?: string | undefined, fetch?: typeof fetch | undefined}; /** * Get Stream Events * * GET /v1/workflows/events/stream */ export const getApiV1WorkflowsEventsStream = async (args: GetApiV1WorkflowsEventsStreamArgs, options?: GetApiV1WorkflowsEventsStreamOptions) => { const {baseUrl = "https://api.mistral.ai", fetch: fetchFn = fetch, ApiKey} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "text/event-stream") if (args.scope != null) query.append("scope", String(args.scope)) if (args.activity_name != null) query.append("activity_name", String(args.activity_name)) if (args.activity_id != null) query.append("activity_id", String(args.activity_id)) if (args.workflow_name != null) query.append("workflow_name", String(args.workflow_name)) if (args.workflow_exec_id != null) query.append("workflow_exec_id", String(args.workflow_exec_id)) if (args.root_workflow_exec_id != null) query.append("root_workflow_exec_id", String(args.root_workflow_exec_id)) if (args.parent_workflow_exec_id != null) query.append("parent_workflow_exec_id", String(args.parent_workflow_exec_id)) if (args.stream != null) query.append("stream", String(args.stream)) if (args.start_seq != null) query.append("start_seq", String(args.start_seq)) if (args.metadata_filters != null) query.append("metadata_filters", JSON.stringify(args.metadata_filters)) for (const item of args.workflow_event_types ?? []) query.append("workflow_event_types", String(item)) if (args['last-event-id'] != null) headers.set("last-event-id", String(args['last-event-id'])) if (ApiKey !== undefined) headers.set('authorization', `Bearer ${ApiKey}`) const url = `${baseUrl.replace(/\/+$/, '')}/v1/workflows/events/stream${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return res.text() };