feat(errs): add 11 ACP error codes + HTTP mapping

This commit is contained in:
2026-05-07 10:32:36 +08:00
parent 4d939ddc05
commit c4ddfde0ff
+26
View File
@@ -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: