> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentvolumes.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Bibliotheca capability metadata

> Returns registry-level capability metadata, including capability schema/spec versions, HTTP API major family, and supported upload profiles such as the v0.1 `http-put` baseline.



## OpenAPI

````yaml /spec/0.1.0-rc.1/api-reference/bibliotheca.openapi.json get /api/v1/capabilities
openapi: 3.1.1
info:
  title: Agent Volumes Bibliotheca API
  version: 0.1.0-rc.1
servers: []
security: []
paths:
  /api/v1/capabilities:
    get:
      summary: Bibliotheca capability metadata
      description: >-
        Returns registry-level capability metadata, including capability
        schema/spec versions, HTTP API major family, and supported upload
        profiles such as the v0.1 `http-put` baseline.
      operationId: getCapabilityMetadata
      responses:
        '200':
          description: Capability metadata
          headers:
            Cache-Control:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/capability-metadata.schema'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    capability-metadata.schema:
      $schema: https://json-schema.org/draft/2020-12/schema
      $id: >-
        https://agentvolumes.org/spec/0.1.0-rc.1/schemas/capability-metadata.schema.json
      title: Agent Volumes Bibliotheca Capability Metadata
      $comment: >-
        Unknown peer fields are tolerated for forward compatibility, but
        portable non-core capability fields are canonically placed under
        extensions.
      type: object
      additionalProperties: true
      required:
        - schemaVersion
        - specVersion
        - apiVersion
        - scopePolicy
        - deliveryModes
        - apis
      properties:
        schemaVersion:
          type: string
          const: '1'
        specVersion:
          type: string
        compatibleSpecVersions:
          type: array
          description: >-
            Exact Agent Volumes spec versions the bibliotheca explicitly claims
            compatibility with. This is a set of exact versions, not a SemVer
            range expression.
          items:
            type: string
            pattern: >-
              ^[0-9]+\.[0-9]+\.[0-9]+(?:-[0-9A-Za-z]+(?:\.[0-9A-Za-z]+)*)?(?:\+[0-9A-Za-z]+(?:\.[0-9A-Za-z]+)*)?$
          uniqueItems: true
        apiVersion:
          type: string
          description: HTTP API major family advertised by this capability document.
          pattern: ^v[1-9][0-9]*$
        scopePolicy:
          type: object
          additionalProperties: true
          required:
            - scopesSupported
            - scopelessSupported
            - scopesRequired
          properties:
            scopesSupported:
              type: boolean
            scopelessSupported:
              type: boolean
            scopesRequired:
              type: boolean
            curatedScopelessModel:
              type: boolean
        deliveryModes:
          type: array
          description: >-
            Known v0.1 baseline values are cdn and git. Unknown values are
            tolerated and may be surfaced as diagnostics rather than validation
            failures.
          items:
            type: string
            pattern: ^(?!.*--)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$
          uniqueItems: true
        apis:
          type: object
          additionalProperties: true
          required:
            - trustMetadata
            - versionIndex
            - releaseUploads
            - trustUploads
            - advisories
          properties:
            trustMetadata:
              type: boolean
            versionIndex:
              type: boolean
            releaseUploads:
              type: boolean
            trustUploads:
              type: boolean
            advisories:
              type: boolean
        uploadProfiles:
          type: object
          description: >-
            Supported upload profiles by upload surface. Known v0.1 portable
            profile value is http-put. Unknown values are tolerated and may be
            surfaced as diagnostics rather than validation failures.
          additionalProperties: true
          properties:
            releaseUploads:
              type: array
              items:
                type: string
                pattern: ^(?!.*--)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$
              uniqueItems: true
            trustUploads:
              type: array
              items:
                type: string
                pattern: ^(?!.*--)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$
              uniqueItems: true
        extensions:
          type: object
          propertyNames:
            allOf:
              - pattern: ^(?!.*--)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$
              - not:
                  enum:
                    - agent-volumes
                    - core
                    - spec
          additionalProperties: true
        cache:
          type: object
          additionalProperties: true
          properties:
            maxAgeSeconds:
              type: integer
              minimum: 0
            revalidate:
              type: boolean
      allOf:
        - if:
            properties:
              apis:
                type: object
                properties:
                  releaseUploads:
                    const: true
                required:
                  - releaseUploads
            required:
              - apis
          then:
            required:
              - uploadProfiles
            properties:
              uploadProfiles:
                type: object
                required:
                  - releaseUploads
                properties:
                  releaseUploads:
                    type: array
                    contains:
                      const: http-put
        - if:
            properties:
              apis:
                type: object
                properties:
                  trustUploads:
                    const: true
                required:
                  - trustUploads
            required:
              - apis
          then:
            required:
              - uploadProfiles
            properties:
              uploadProfiles:
                type: object
                required:
                  - trustUploads
                properties:
                  trustUploads:
                    type: array
                    contains:
                      const: http-put
    ProblemDetails:
      oneOf:
        - $ref: '#/components/schemas/AuthenticationRequiredProblem'
        - $ref: '#/components/schemas/AuthorizationFailedProblem'
        - $ref: '#/components/schemas/NotFoundProblem'
        - $ref: '#/components/schemas/ValidationFailedProblem'
        - $ref: '#/components/schemas/InvalidManifestProblem'
        - $ref: '#/components/schemas/InvalidArchiveProblem'
        - $ref: '#/components/schemas/IdentityMismatchProblem'
        - $ref: '#/components/schemas/VersionConflictProblem'
        - $ref: '#/components/schemas/DigestMismatchProblem'
        - $ref: '#/components/schemas/SubjectBindingMismatchProblem'
        - $ref: '#/components/schemas/InconsistentRegistryStateProblem'
        - $ref: '#/components/schemas/UploadExpiredProblem'
        - $ref: '#/components/schemas/MissingUploadedBytesProblem'
        - $ref: '#/components/schemas/InvalidUploadStateProblem'
        - $ref: '#/components/schemas/IdempotencyConflictProblem'
        - $ref: '#/components/schemas/PayloadTooLargeProblem'
        - $ref: '#/components/schemas/UnsupportedMediaTypeProblem'
        - $ref: '#/components/schemas/PermissionEscalationProblem'
        - $ref: '#/components/schemas/RateLimitedProblem'
    AuthenticationRequiredProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/authentication-required
            status:
              const: 401
    AuthorizationFailedProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/authorization-failed
            status:
              const: 403
    NotFoundProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/not-found
            status:
              const: 404
    ValidationFailedProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/validation-failed
            status:
              const: 400
    InvalidManifestProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/invalid-manifest
            status:
              const: 400
    InvalidArchiveProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/invalid-archive
            status:
              const: 400
    IdentityMismatchProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/identity-mismatch
            status:
              const: 409
    VersionConflictProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/version-conflict
            status:
              const: 409
    DigestMismatchProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/digest-mismatch
            status:
              const: 400
    SubjectBindingMismatchProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/subject-binding-mismatch
            status:
              const: 400
    InconsistentRegistryStateProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/inconsistent-registry-state
            status:
              const: 409
    UploadExpiredProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/upload-expired
            status:
              const: 410
    MissingUploadedBytesProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/missing-uploaded-bytes
            status:
              const: 400
    InvalidUploadStateProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/invalid-upload-state
            status:
              const: 409
    IdempotencyConflictProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/idempotency-conflict
            status:
              const: 409
    PayloadTooLargeProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/payload-too-large
            status:
              const: 413
    UnsupportedMediaTypeProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/unsupported-media-type
            status:
              const: 415
    PermissionEscalationProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/permission-escalation
            status:
              const: 400
    RateLimitedProblem:
      allOf:
        - $ref: '#/components/schemas/ProblemDetailsBase'
        - type: object
          properties:
            type:
              const: https://agentvolumes.org/problems/rate-limited
            status:
              const: 429
    ProblemDetailsBase:
      type: object
      additionalProperties: true
      required:
        - type
        - title
        - status
      properties:
        type:
          type: string
        title:
          type: string
          minLength: 1
        status:
          type: integer
          minimum: 100
          maximum: 599
        detail:
          type: string
        instance:
          type: string
          format: uri-reference
  responses:
    TooManyRequests:
      description: Rate limited
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
          examples:
            rateLimited:
              value:
                type: https://agentvolumes.org/problems/rate-limited
                title: Rate limited
                status: 429

````