{
  "name": "github.com/l1fe-labs/forge-go/auth",
  "language": "go",
  "version": "module source snapshot",
  "description": "Go auth package.",
  "manifest": "forge-go/go.mod",
  "manifestSha256": "dee97864d07a64c4c93c79104137d155f0cbae6962945f3b56ceb7744a03cc82",
  "status": "source-reference",
  "registryPublicationVerified": false,
  "route": "/libraries/go/auth",
  "features": {},
  "files": [
    {
      "path": "forge-go/auth/capability.go",
      "sha256": "9a863f35960b6ca003c4e5bec31a40ee12a5607ee9e51bd238a8c6e960508e5e",
      "artifactSha256": "9ec95234e6f096d4612cda96d61f80d87d8c1956afe9bf58c2f6cc8a1108b793",
      "url": "/reference/source/forge-go/auth/capability.go.txt",
      "declarations": [
        {
          "name": "type Scope struct",
          "line": 19,
          "signature": "type Scope struct",
          "documentation": ""
        },
        {
          "name": "func NewScope(s string) (Scope, error)",
          "line": 36,
          "signature": "func NewScope(s string) (Scope, error)",
          "documentation": ""
        },
        {
          "name": "func WildcardScope() Scope",
          "line": 56,
          "signature": "func WildcardScope() Scope",
          "documentation": ""
        },
        {
          "name": "func (s Scope) String() string",
          "line": 61,
          "signature": "func (s Scope) String() string",
          "documentation": ""
        },
        {
          "name": "func (s Scope) Implies(other Scope) bool",
          "line": 73,
          "signature": "func (s Scope) Implies(other Scope) bool",
          "documentation": ""
        },
        {
          "name": "type ScopeSet struct",
          "line": 83,
          "signature": "type ScopeSet struct",
          "documentation": ""
        },
        {
          "name": "func NewScopeSet(scopes ...Scope) ScopeSet",
          "line": 88,
          "signature": "func NewScopeSet(scopes ...Scope) ScopeSet",
          "documentation": ""
        },
        {
          "name": "func ParseScopeSet(scopeStrs ...string) (ScopeSet, error)",
          "line": 95,
          "signature": "func ParseScopeSet(scopeStrs ...string) (ScopeSet, error)",
          "documentation": ""
        },
        {
          "name": "func (ss ScopeSet) Allows(requested Scope) bool",
          "line": 110,
          "signature": "func (ss ScopeSet) Allows(requested Scope) bool",
          "documentation": ""
        },
        {
          "name": "func (ss ScopeSet) Strings() []string",
          "line": 120,
          "signature": "func (ss ScopeSet) Strings() []string",
          "documentation": ""
        },
        {
          "name": "func (ss ScopeSet) Len() int",
          "line": 129,
          "signature": "func (ss ScopeSet) Len() int",
          "documentation": ""
        },
        {
          "name": "func (ss ScopeSet) IsEmpty() bool",
          "line": 134,
          "signature": "func (ss ScopeSet) IsEmpty() bool",
          "documentation": ""
        },
        {
          "name": "func (ss ScopeSet) IsSubsetOf(other ScopeSet) bool",
          "line": 145,
          "signature": "func (ss ScopeSet) IsSubsetOf(other ScopeSet) bool",
          "documentation": ""
        },
        {
          "name": "type DelegationConstraints struct",
          "line": 160,
          "signature": "type DelegationConstraints struct",
          "documentation": ""
        },
        {
          "name": "type ArsenalACT struct",
          "line": 179,
          "signature": "type ArsenalACT struct",
          "documentation": ""
        },
        {
          "name": "func (a *ArsenalACT) IsExpired() bool",
          "line": 210,
          "signature": "func (a *ArsenalACT) IsExpired() bool",
          "documentation": ""
        },
        {
          "name": "func (a *ArsenalACT) IsNotYetValid() bool",
          "line": 215,
          "signature": "func (a *ArsenalACT) IsNotYetValid() bool",
          "documentation": ""
        },
        {
          "name": "func (a *ArsenalACT) TTLRemaining() time.Duration",
          "line": 221,
          "signature": "func (a *ArsenalACT) TTLRemaining() time.Duration",
          "documentation": ""
        },
        {
          "name": "func VerifyACT(act *ArsenalACT) error",
          "line": 251,
          "signature": "func VerifyACT(act *ArsenalACT) error",
          "documentation": ""
        },
        {
          "name": "func ExtractScopes(act *ArsenalACT) []string",
          "line": 297,
          "signature": "func ExtractScopes(act *ArsenalACT) []string",
          "documentation": ""
        },
        {
          "name": "func ACTAllowsScope(act *ArsenalACT, scope string) (bool, error)",
          "line": 320,
          "signature": "func ACTAllowsScope(act *ArsenalACT, scope string) (bool, error)",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/auth/delegation.go",
      "sha256": "e674b58b3046c610a5653e8b4d115ae0b363b671aea1091be99512606d9f8597",
      "artifactSha256": "d9d925e9d146a28d6b0b4291f2b4e57da549edb5074aed9499654bd0d4078e78",
      "url": "/reference/source/forge-go/auth/delegation.go.txt",
      "declarations": [
        {
          "name": "type DelegationRequest struct",
          "line": 20,
          "signature": "type DelegationRequest struct",
          "documentation": ""
        },
        {
          "name": "func DelegateCapabilities(req DelegationRequest) (*ArsenalACT, error)",
          "line": 62,
          "signature": "func DelegateCapabilities(req DelegationRequest) (*ArsenalACT, error)",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/auth/error.go",
      "sha256": "47419d6861b33db30aa64dd6fa1547b7082421bf208aabd5b07f0762533f3935",
      "artifactSha256": "40f1a9864ced9dc439a0a71c6cb432647aa23847e3af836bc092384b2c692a1b",
      "url": "/reference/source/forge-go/auth/error.go.txt",
      "declarations": [
        {
          "name": "type ErrKind string",
          "line": 21,
          "signature": "type ErrKind string\n\nconst (\n// ErrKindTokenExpired indicates that the ACT has expired.\nErrKindTokenExpired ErrKind;",
          "documentation": ""
        },
        {
          "name": "type AuthError struct",
          "line": 48,
          "signature": "type AuthError struct",
          "documentation": ""
        },
        {
          "name": "func (e *AuthError) Error() string",
          "line": 63,
          "signature": "func (e *AuthError) Error() string",
          "documentation": ""
        },
        {
          "name": "func (e *AuthError) Unwrap() error",
          "line": 71,
          "signature": "func (e *AuthError) Unwrap() error",
          "documentation": ""
        },
        {
          "name": "func (e *AuthError) Is(target error) bool",
          "line": 76,
          "signature": "func (e *AuthError) Is(target error) bool",
          "documentation": ""
        },
        {
          "name": "func (e *AuthError) IsExpired() bool",
          "line": 85,
          "signature": "func (e *AuthError) IsExpired() bool",
          "documentation": ""
        },
        {
          "name": "func (e *AuthError) IsInsufficientScope() bool",
          "line": 90,
          "signature": "func (e *AuthError) IsInsufficientScope() bool",
          "documentation": ""
        },
        {
          "name": "func (e *AuthError) IsCapabilityEscalation() bool",
          "line": 95,
          "signature": "func (e *AuthError) IsCapabilityEscalation() bool",
          "documentation": ""
        },
        {
          "name": "func (e *AuthError) IsDelegationDenied() bool",
          "line": 100,
          "signature": "func (e *AuthError) IsDelegationDenied() bool",
          "documentation": ""
        },
        {
          "name": "func (e *AuthError) IsInvalidToken() bool",
          "line": 105,
          "signature": "func (e *AuthError) IsInvalidToken() bool",
          "documentation": ""
        },
        {
          "name": "func (e *AuthError) ErrorCode() string",
          "line": 110,
          "signature": "func (e *AuthError) ErrorCode() string",
          "documentation": ""
        },
        {
          "name": "func NewTokenExpiredError(tokenID, agentDID, expiredAt string) *AuthError",
          "line": 150,
          "signature": "func NewTokenExpiredError(tokenID, agentDID, expiredAt string) *AuthError",
          "documentation": ""
        },
        {
          "name": "func NewInsufficientScopeError(agentDID, requiredScope string, availableScopes []string) *AuthError",
          "line": 169,
          "signature": "func NewInsufficientScopeError(agentDID, requiredScope string, availableScopes []string) *AuthError",
          "documentation": ""
        },
        {
          "name": "func NewCapabilityEscalationError(parentDID, childDID, requested string, available []string) *AuthError",
          "line": 187,
          "signature": "func NewCapabilityEscalationError(parentDID, childDID, requested string, available []string) *AuthError",
          "documentation": ""
        },
        {
          "name": "func NewDelegationDeniedError(parentDID, childDID, reason string) *AuthError",
          "line": 206,
          "signature": "func NewDelegationDeniedError(parentDID, childDID, reason string) *AuthError",
          "documentation": ""
        },
        {
          "name": "func NewInvalidTokenError(reason string) *AuthError",
          "line": 225,
          "signature": "func NewInvalidTokenError(reason string) *AuthError",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/auth/tool_auth.go",
      "sha256": "1e7d3c45176f39c794243c244343e3377cf7c8a631058ca2c42a73b450d541dc",
      "artifactSha256": "7f516d45d86ea47afdf5ea50690df876058aff840e1c1b35ce6a36d0c831e6ec",
      "url": "/reference/source/forge-go/auth/tool_auth.go.txt",
      "declarations": [
        {
          "name": "type ToolTier int",
          "line": 11,
          "signature": "type ToolTier int\n\nconst (\n// ToolTierPlatform (Tier 1) tools run inside the sandbox and are always\n// available without authorization.\nToolTierPlatform ToolTier;",
          "documentation": ""
        },
        {
          "name": "func (t ToolTier) String() string",
          "line": 28,
          "signature": "func (t ToolTier) String() string",
          "documentation": ""
        },
        {
          "name": "func (t ToolTier) RequiresAuthorization() bool",
          "line": 45,
          "signature": "func (t ToolTier) RequiresAuthorization() bool",
          "documentation": ""
        },
        {
          "name": "type ToolAuthorizationRequest struct",
          "line": 53,
          "signature": "type ToolAuthorizationRequest struct",
          "documentation": ""
        },
        {
          "name": "type ToolAuthorizationDecision int",
          "line": 71,
          "signature": "type ToolAuthorizationDecision int\n\nconst (\n// Allowed indicates the tool invocation is authorized.\nAllowed ToolAuthorizationDecision;",
          "documentation": ""
        },
        {
          "name": "func (d ToolAuthorizationDecision) String() string",
          "line": 86,
          "signature": "func (d ToolAuthorizationDecision) String() string",
          "documentation": ""
        },
        {
          "name": "type ToolAuthorizationResult struct",
          "line": 101,
          "signature": "type ToolAuthorizationResult struct",
          "documentation": ""
        },
        {
          "name": "func AuthorizeToolInvocation(req ToolAuthorizationRequest) (*ToolAuthorizationResult, error)",
          "line": 132,
          "signature": "func AuthorizeToolInvocation(req ToolAuthorizationRequest) (*ToolAuthorizationResult, error)",
          "documentation": ""
        },
        {
          "name": "func BuildToolScope(toolName string) string",
          "line": 194,
          "signature": "func BuildToolScope(toolName string) string",
          "documentation": ""
        }
      ]
    }
  ]
}
