import {z} from 'zod' export type GetApiApiMyWorkflowsWorkflowIdRunsRunIdArgs = {workflowId: string, runId: string, Authorization?: string | undefined, 'Credimi-Api-Key'?: string | undefined}; export type GetApiApiMyWorkflowsWorkflowIdRunsRunIdOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; export const handlersFailure: z.ZodType = z.object({cause: z.lazy(() => handlersFailure.optional()), failureInfo: z.record(z.string(), z.string()).optional(), message: z.string().optional(), source: z.string().optional(), stackTrace: z.string().optional()}); export const handlersPayload = z.object({data: z.string().nullable().optional(), metadata: z.record(z.string(), z.string()).optional()}); export const handlersCallbackInfo = z.object({callback: handlersPayload.optional(), registrationTime: z.string().optional()}); export const handlersCallback = z.object({attempt: z.number().int().optional(), lastAttemptCompleteTime: z.string().optional(), lastAttemptFailure: handlersFailure.optional(), nextAttemptScheduleTime: z.string().optional(), publicInfo: handlersCallbackInfo.optional(), state: z.string().optional(), trigger: handlersCallbackInfo.optional()}); export const handlersCallbacks = z.object({callbacks: z.array(handlersCallback).optional()}); export const handlersPipelineExecutionDevice = z.object({device_id: z.string().optional(), live_view: z.boolean().optional(), name: z.string().optional()}); export const handlersDuration = z.object({nanos: z.number().int().optional(), seconds: z.number().int().optional()}); export const handlersTaskQueue = z.object({kind: z.string().optional(), name: z.string().optional(), normalName: z.string().optional()}); export const handlersUserMetadata = z.object({details: handlersPayload.optional(), summary: handlersPayload.optional()}); export const handlersWorkflowExecutionConfigWithMetadata = z.object({defaultWorkflowTaskTimeout: handlersDuration.optional(), taskQueue: handlersTaskQueue.optional(), userMetadata: handlersUserMetadata.optional(), workflowExecutionTimeout: handlersDuration.optional(), workflowRunTimeout: handlersDuration.optional()}); export const handlersActivityType = z.object({name: z.string().optional()}); export const handlersPayloads = z.array(handlersPayload).nullable(); export const handlersPendingActivityInfo = z.object({activityId: z.string().optional(), activityType: handlersActivityType.optional(), assignedBuildId: z.string().optional(), attempt: z.number().int().optional(), expirationTime: z.string().optional(), heartbeatDetails: handlersPayloads.optional(), lastFailure: handlersFailure.optional(), lastHeartbeatTime: z.string().optional(), lastStartedTime: z.string().optional(), lastWorkerIdentity: z.string().optional(), maximumAttempts: z.number().int().optional(), scheduledTime: z.string().optional(), state: z.string().optional()}); export const handlersPendingChildren = z.object({initiatedId: z.string().optional(), parentClosePolicy: z.string().optional(), runId: z.string().optional(), workflowId: z.string().optional(), workflowTypeName: z.string().optional()}); export const handlersPendingNexusOperation = z.object({attempt: z.number().int().optional(), endpoint: z.string().optional(), lastAttemptCompleteTime: z.string().optional(), lastAttemptFailure: handlersFailure.optional(), nextAttemptScheduleTime: z.string().optional(), operation: z.string().optional(), operationId: z.string().optional(), scheduledEventId: z.string().optional(), service: z.string().optional(), state: z.string().optional()}); export const handlersPendingWorkflowTaskInfo = z.object({attempt: z.number().int().optional(), lastFailure: handlersFailure.optional(), originalScheduledTime: z.string().optional(), scheduledTime: z.string().optional(), startedTime: z.string().optional(), state: z.string().optional()}); export const handlersWorkflowIdentifier = z.object({runId: z.string().optional(), workflowId: z.string().optional()}); export const handlersMemo = z.object({fields: z.record(z.string(), handlersPayload).optional()}); export const handlersWorkflowSearchAttributes = z.record(z.string(), z.unknown()).nullable(); export const handlersWorkflowType = z.object({name: z.string().optional()}); export const handlersVersioningInfo = z.object({useVersioning: z.boolean().nullable().optional()}); export const handlersWorkflowExecutionInfo = z.object({assignedBuildId: z.string().optional(), closeTime: z.string().optional(), execution: handlersWorkflowIdentifier.optional(), executionTime: z.string().optional(), historyLength: z.string().optional(), historySizeBytes: z.string().optional(), memo: handlersMemo.optional(), searchAttributes: handlersWorkflowSearchAttributes.optional(), startTime: z.string().optional(), stateTransitionCount: z.string().optional(), status: z.string().optional(), type: handlersWorkflowType.optional(), versioningInfo: handlersVersioningInfo.optional()}); export const handlersGetMyWorkflowRunResponse = z.object({callbacks: handlersCallbacks.optional(), devices: z.array(handlersPipelineExecutionDevice).optional(), executionConfig: handlersWorkflowExecutionConfigWithMetadata.optional(), failure_reason: z.string().nullable().optional(), pendingActivities: z.array(handlersPendingActivityInfo).optional(), pendingChildren: z.array(handlersPendingChildren).optional(), pendingNexusOperations: z.array(handlersPendingNexusOperation).optional(), pendingWorkflowTask: handlersPendingWorkflowTaskInfo.optional(), workflowExecutionInfo: handlersWorkflowExecutionInfo.optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Get details of a specific run for a workflow * * GET /api/my/workflows/{workflowId}/runs/{runId} */ export const getApiApiMyWorkflowsWorkflowIdRunsRunId = async (args: GetApiApiMyWorkflowsWorkflowIdRunsRunIdArgs, options?: GetApiApiMyWorkflowsWorkflowIdRunsRunIdOptions) => { const {baseUrl = "https://credimi.io", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.Authorization != null) headers.set("Authorization", String(args.Authorization)) if (args['Credimi-Api-Key'] != null) headers.set("Credimi-Api-Key", String(args['Credimi-Api-Key'])) const url = `${baseUrl.replace(/\/+$/, '')}/api/my/workflows/${encodeURIComponent(String(args.workflowId))}/runs/${encodeURIComponent(String(args.runId))}${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 validateResponse(handlersGetMyWorkflowRunResponse, await res.json()) };