@copilotkit/runtime
Version:
<div align="center"> <a href="https://copilotkit.ai" target="_blank"> <img src="https://github.com/copilotkit/copilotkit/raw/main/assets/banner.png" alt="CopilotKit Logo"> </a>
67 lines (55 loc) • 1.95 kB
text/typescript
import { GraphQLJSON } from "graphql-scalars";
import { Field, InterfaceType, ObjectType, createUnionType, registerEnumType } from "type-graphql";
export enum ResponseStatusCode {
Pending = "pending",
Success = "success",
Failed = "failed",
}
registerEnumType(ResponseStatusCode, {
name: "ResponseStatusCode",
});
({
resolveType(value) {
if (value.code === ResponseStatusCode.Success) {
return SuccessResponseStatus;
} else if (value.code === ResponseStatusCode.Failed) {
return FailedResponseStatus;
} else if (value.code === ResponseStatusCode.Pending) {
return PendingResponseStatus;
}
return undefined;
},
})
()
abstract class BaseResponseStatus {
(() => ResponseStatusCode)
code: ResponseStatusCode;
}
({ implements: BaseResponseStatus })
export class PendingResponseStatus extends BaseResponseStatus {
code: ResponseStatusCode = ResponseStatusCode.Pending;
}
({ implements: BaseResponseStatus })
export class SuccessResponseStatus extends BaseResponseStatus {
code: ResponseStatusCode = ResponseStatusCode.Success;
}
export enum FailedResponseStatusReason {
GUARDRAILS_VALIDATION_FAILED = "GUARDRAILS_VALIDATION_FAILED",
MESSAGE_STREAM_INTERRUPTED = "MESSAGE_STREAM_INTERRUPTED",
UNKNOWN_ERROR = "UNKNOWN_ERROR",
}
registerEnumType(FailedResponseStatusReason, {
name: "FailedResponseStatusReason",
});
({ implements: BaseResponseStatus })
export class FailedResponseStatus extends BaseResponseStatus {
code: ResponseStatusCode = ResponseStatusCode.Failed;
(() => FailedResponseStatusReason)
reason: FailedResponseStatusReason;
(() => GraphQLJSON, { nullable: true })
details?: Record<string, any> = null;
}
export const ResponseStatusUnion = createUnionType({
name: "ResponseStatus",
types: () => [PendingResponseStatus, SuccessResponseStatus, FailedResponseStatus] as const,
});