MCPcopy Create free account
hub / github.com/compozy/agh / nativeAutonomyToolError

Function nativeAutonomyToolError

internal/daemon/native_tools.go:4670–4732  ·  view source on GitHub ↗
(id toolspkg.ToolID, err error)

Source from the content-addressed store, hash-verified

4668}
4669
4670func nativeAutonomyToolError(id toolspkg.ToolID, err error) error {
4671 if err == nil {
4672 return nil
4673 }
4674 if reason, ok := taskpkg.AutonomyReasonOf(err); ok {
4675 code, toolReason, cause := autonomyToolErrorCodeAndReason(reason)
4676 return toolspkg.NewToolError(
4677 code,
4678 id,
4679 taskpkg.RedactClaimTokens(err.Error()),
4680 fmt.Errorf("%w: %w", cause, err),
4681 toolReason,
4682 )
4683 }
4684 switch {
4685 case errors.Is(err, taskpkg.ErrValidation),
4686 errors.Is(err, taskpkg.ErrInvalidScopeBinding),
4687 errors.Is(err, taskpkg.ErrImmutableField):
4688 return toolspkg.NewToolError(
4689 toolspkg.ErrorCodeInvalidInput,
4690 id,
4691 taskpkg.RedactClaimTokens(err.Error()),
4692 fmt.Errorf("%w: %w", toolspkg.ErrToolInvalidInput, err),
4693 toolspkg.ReasonSchemaInvalid,
4694 )
4695 case errors.Is(err, taskpkg.ErrActiveRunLease):
4696 return toolspkg.NewToolError(
4697 toolspkg.ErrorCodeConflict,
4698 id,
4699 taskpkg.RedactClaimTokens(err.Error()),
4700 fmt.Errorf("%w: %w", toolspkg.ErrToolConflict, err),
4701 toolspkg.ReasonAutonomyLeaseAlreadyHeld,
4702 )
4703 case errors.Is(err, taskpkg.ErrPermissionDenied):
4704 return toolspkg.NewToolError(
4705 toolspkg.ErrorCodeDenied,
4706 id,
4707 taskpkg.RedactClaimTokens(err.Error()),
4708 fmt.Errorf("%w: %w", toolspkg.ErrToolDenied, err),
4709 toolspkg.ReasonSessionDenied,
4710 )
4711 case errors.Is(err, taskpkg.ErrInvalidClaimToken),
4712 errors.Is(err, taskpkg.ErrLeaseExpired):
4713 return toolspkg.NewToolError(
4714 toolspkg.ErrorCodeConflict,
4715 id,
4716 taskpkg.RedactClaimTokens(err.Error()),
4717 fmt.Errorf("%w: %w", toolspkg.ErrToolConflict, err),
4718 toolspkg.ReasonAutonomyLeaseExpired,
4719 )
4720 case errors.Is(err, taskpkg.ErrInvalidStatusTransition),
4721 errors.Is(err, taskpkg.ErrConflict),
4722 errors.Is(err, taskpkg.ErrHallucinatedTaskRefs):
4723 return toolspkg.NewToolError(
4724 toolspkg.ErrorCodeConflict,
4725 id,
4726 taskpkg.RedactClaimTokens(err.Error()),
4727 fmt.Errorf("%w: %w", toolspkg.ErrToolConflict, err),

Callers 8

autonomyClaimNextMethod · 0.85
autonomyHeartbeatMethod · 0.85
autonomyCompleteMethod · 0.85
autonomyFailMethod · 0.85
autonomyReleaseMethod · 0.85
nativeTaskToolErrorFunction · 0.85
autonomyActorContextFunction · 0.85
lookupAutonomyLeaseMethod · 0.85

Calls 3

ErrorMethod · 0.45
IsMethod · 0.45

Tested by

no test coverage detected