Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
48 lines
1.6 KiB
TypeScript
48 lines
1.6 KiB
TypeScript
import type {
|
|
AgentActivityEditRetryAvailability,
|
|
AgentActivityEditRetryRecoveryAction,
|
|
EditRetryOperationStatus
|
|
} from "@tutti-os/agent-activity-core";
|
|
|
|
export type AgentGUIEditRetryPresentationState =
|
|
| "ready"
|
|
| "processing"
|
|
| "needs_action";
|
|
|
|
export interface AgentGUIEditRetryPresentation {
|
|
state: AgentGUIEditRetryPresentationState;
|
|
editableTurnId: string | null;
|
|
operationId: string | null;
|
|
availableActions: readonly AgentActivityEditRetryRecoveryAction[];
|
|
reasonCode: AgentActivityEditRetryAvailability["reasonCode"] | null;
|
|
}
|
|
|
|
export function projectAgentGUIEditRetryPresentation(input: {
|
|
availability: AgentActivityEditRetryAvailability | null;
|
|
commandStatus: EditRetryOperationStatus;
|
|
}): AgentGUIEditRetryPresentation {
|
|
const availability = input.availability;
|
|
const processing =
|
|
input.commandStatus === "pending" ||
|
|
input.commandStatus === "reconciling" ||
|
|
availability?.recoveryState === "rolling_back";
|
|
const needsAction =
|
|
!processing &&
|
|
(availability?.recoveryState === "resend_pending" ||
|
|
availability?.recoveryState === "recovery_required" ||
|
|
(input.commandStatus === "failed" && availability?.eligible !== true));
|
|
return {
|
|
state: processing ? "processing" : needsAction ? "needs_action" : "ready",
|
|
editableTurnId:
|
|
!processing &&
|
|
!needsAction &&
|
|
availability?.supported === true &&
|
|
availability.eligible === true
|
|
? (availability.turnId ?? null)
|
|
: null,
|
|
operationId: availability?.operationId ?? null,
|
|
availableActions: availability?.availableActions ?? [],
|
|
reasonCode: availability?.reasonCode ?? null
|
|
};
|
|
}
|