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

# Set a tool's applied extension combos

> Author all of a tool's extension combos through the pipeline: persist, reload,
and broadcast.

Owner resolution, the consolidation-conflict check, and the registry combo
validation all run BEFORE the pipeline (nothing persisted on a reject). The
mutator then upserts the providing config's ``extensions`` entry, and
ConfigService validates the whole document, persists, reloads locally, and
broadcasts the reload so every worker rebinds; the per-origin fleet report rides
the response as its ``fanout`` summary. The persist + local reload have already
landed, so re-running the apply (or a ``reload_config``) is the recovery for a
sibling that did not converge.



## OpenAPI

````yaml /openapi.json post /api/tools/{name}/extensions
openapi: 3.1.0
info:
  description: The operator HTTP surface served under /api/*.
  title: tai42-skeleton API
  version: 0.1.1
servers: []
security: []
paths:
  /api/tools/{name}/extensions:
    post:
      tags:
        - extensions
      summary: Set a tool's applied extension combos
      description: >-
        Author all of a tool's extension combos through the pipeline: persist,
        reload,

        and broadcast.


        Owner resolution, the consolidation-conflict check, and the registry
        combo

        validation all run BEFORE the pipeline (nothing persisted on a reject).
        The

        mutator then upserts the providing config's ``extensions`` entry, and

        ConfigService validates the whole document, persists, reloads locally,
        and

        broadcasts the reload so every worker rebinds; the per-origin fleet
        report rides

        the response as its ``fanout`` summary. The persist + local reload have
        already

        landed, so re-running the apply (or a ``reload_config``) is the recovery
        for a

        sibling that did not converge.
      operationId: post_api_tools_name_extensions
      parameters:
        - in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToolExtensionsUpdate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data: {}
                required:
                  - data
                type: object
          description: Success.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Malformed request.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Missing or invalid api key.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Conflict with the current resource state.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReloadingError'
          description: The server is applying a config reload; retry shortly.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
components:
  schemas:
    ToolExtensionsUpdate:
      description: >-
        Set a tool's applied extension combos — the full list of combos,
        authored

        losslessly. Each combo element is an extension name or a ``{"name",
        "config"}``

        mapping binding author config. An empty list clears them.
      properties:
        combos:
          items:
            items:
              anyOf:
                - type: string
                - additionalProperties: true
                  type: object
            type: array
          title: Combos
          type: array
      required:
        - combos
      title: ToolExtensionsUpdate
      type: object
    Error:
      properties:
        error:
          type: string
      required:
        - error
      type: object
    ReloadingError:
      properties:
        error:
          const: reloading — the server is applying a config reload; retry shortly
          type: string
        reloading:
          const: true
          type: boolean
      required:
        - error
        - reloading
      type: object
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: x-api-key
      type: apiKey

````