Add loose review request handoffs

This commit is contained in:
Dotta committed 2026-04-24 00:21:07 -05:00
1 parent 5e2d7bca4a
commit 681554cb45
12 files changed
+167 -2

No files matched your search

+1
View File
@@ -631,6 +631,7 @@ export {
updateIssueSchema,
issueExecutionPolicySchema,
issueExecutionStateSchema,
issueReviewRequestSchema,
issueExecutionWorkspaceSettingsSchema,
checkoutIssueSchema,
addIssueCommentSchema,
+1
View File
@@ -119,6 +119,7 @@ export type {
IssueExecutionStage,
IssueExecutionStageParticipant,
IssueExecutionStagePrincipal,
IssueReviewRequest,
IssueExecutionDecision,
IssueComment,
IssueThreadInteractionActorFields,
+5
View File
@@ -168,6 +168,10 @@ export interface IssueExecutionPolicy {
stages: IssueExecutionStage[];
}
export interface IssueReviewRequest {
instructions: string;
}
export interface IssueExecutionState {
status: IssueExecutionStateStatus;
currentStageId: string | null;
@@ -175,6 +179,7 @@ export interface IssueExecutionState {
currentStageType: IssueExecutionStageType | null;
currentParticipant: IssueExecutionStagePrincipal | null;
returnAssignee: IssueExecutionStagePrincipal | null;
reviewRequest: IssueReviewRequest | null;
completedStageIds: string[];
lastDecisionId: string | null;
lastDecisionOutcome: IssueExecutionDecisionOutcome | null;
+1
View File
@@ -151,6 +151,7 @@ export {
updateIssueSchema,
issueExecutionPolicySchema,
issueExecutionStateSchema,
issueReviewRequestSchema,
issueExecutionWorkspaceSettingsSchema,
checkoutIssueSchema,
addIssueCommentSchema,
+6
View File
@@ -105,6 +105,10 @@ export const issueExecutionPolicySchema = z.object({
stages: z.array(issueExecutionStageSchema).default([]),
});
export const issueReviewRequestSchema = z.object({
instructions: z.string().trim().min(1).max(20000),
}).strict();
export const issueExecutionStateSchema = z.object({
status: z.enum(ISSUE_EXECUTION_STATE_STATUSES),
currentStageId: z.string().uuid().nullable(),
@@ -112,6 +116,7 @@ export const issueExecutionStateSchema = z.object({
currentStageType: z.enum(ISSUE_EXECUTION_STAGE_TYPES).nullable(),
currentParticipant: issueExecutionStagePrincipalSchema.nullable(),
returnAssignee: issueExecutionStagePrincipalSchema.nullable(),
reviewRequest: issueReviewRequestSchema.nullable().optional().default(null),
completedStageIds: z.array(z.string().uuid()).default([]),
lastDecisionId: z.string().uuid().nullable(),
lastDecisionOutcome: z.enum(ISSUE_EXECUTION_DECISION_OUTCOMES).nullable(),
@@ -164,6 +169,7 @@ export type CreateIssueLabel = z.infer<typeof createIssueLabelSchema>;
export const updateIssueSchema = createIssueSchema.partial().extend({
assigneeAgentId: z.string().trim().min(1).optional().nullable(),
comment: z.string().min(1).optional(),
reviewRequest: issueReviewRequestSchema.optional().nullable(),
reopen: z.boolean().optional(),
interrupt: z.boolean().optional(),
hiddenAt: z.string().datetime().nullable().optional(),