diff --git a/internal/infra/errs/errs.go b/internal/infra/errs/errs.go index b4dc80e..24de03c 100644 --- a/internal/infra/errs/errs.go +++ b/internal/infra/errs/errs.go @@ -73,6 +73,19 @@ const ( CodeJobPayloadInvalid Code = "job.payload_invalid" CodeJobPayloadTooLarge Code = "job.payload_too_large" CodeWebhookNotConfigured Code = "webhook.not_configured" + + // ACP 域 + CodeAcpAgentKindNotFound Code = "acp.agent_kind_not_found" + CodeAcpAgentKindDisabled Code = "acp.agent_kind_disabled" + CodeAcpAgentKindInUse Code = "acp.agent_kind_in_use" + CodeAcpSessionNotFound Code = "acp.session_not_found" + CodeAcpSessionQuotaExceeded Code = "acp.session_quota_exceeded" + CodeAcpSessionNotOwned Code = "acp.session_not_owned" + CodeAcpSessionTerminated Code = "acp.session_terminated" + CodeAcpSessionBranchConflict Code = "acp.session_branch_conflict" + CodeAcpSpawnFailed Code = "acp.spawn_failed" + CodeAcpHandshakeTimeout Code = "acp.handshake_timeout" + CodeAcpFsPathOutsideWorktree Code = "acp.fs_path_outside_worktree" ) // AppError is the application's structured error type. It carries a stable @@ -182,6 +195,19 @@ func HTTPStatus(code Code) int { return http.StatusNotFound case CodeJobInvalidType, CodeJobPayloadInvalid, CodeJobPayloadTooLarge: return http.StatusBadRequest + case CodeAcpAgentKindNotFound, CodeAcpSessionNotFound: + return http.StatusNotFound + case CodeAcpAgentKindDisabled, CodeAcpAgentKindInUse, + CodeAcpSessionTerminated, CodeAcpSessionBranchConflict: + return http.StatusConflict + case CodeAcpSessionQuotaExceeded: + return http.StatusTooManyRequests + case CodeAcpSessionNotOwned: + return http.StatusForbidden + case CodeAcpSpawnFailed, CodeAcpHandshakeTimeout: + return http.StatusBadGateway + case CodeAcpFsPathOutsideWorktree: + return http.StatusInternalServerError case CodeWebhookNotConfigured: return http.StatusServiceUnavailable default: