AppMage

SkillRpc

SkillRpc exposes RPC methods for working with skills, skill-related options, available tools, and skill job status. The methods in this class delegate to application services and tool manager data where available, and the request schemas shown below define the public JSON contract for each RPC method.

Endpoints

POST /api/rpc (Method: SkillRpc.isSpecialSubscription)

Checks whether the current subscription is allowed to publish global skills.

  • Request Body:

    {
      "method": "SkillRpc.isSpecialSubscription",
      "params": {}
    }
  • Parameters:

    Name Type Required Description
    None - No This method does not declare any request parameters.
  • Response:

    {
      "success": true,
      "data": {
        "isSpecial": true
      }
    }

The returned isSpecial value is produced by the underlying subscription check.

POST /api/rpc (Method: SkillRpc.listSkills)

Lists all available skills, including global and tenant-specific skills.

  • Request Body:

    {
      "method": "SkillRpc.listSkills",
      "params": {}
    }
  • Parameters:

    Name Type Required Description
    None - No This method does not declare any request parameters.
  • Response:

    {
      "success": true,
      "data": {
        "data": [
          {}
        ],
        "totalCount": 1
      }
    }

The response contains a data array and a totalCount value equal to the number of skills returned.

POST /api/rpc (Method: SkillRpc.getSkill)

Gets a specific skill by its ID.

  • Request Body:

    {
      "method": "SkillRpc.getSkill",
      "params": {
        "id": "skill-id"
      }
    }
  • Parameters:

    Name Type Required Description
    id String Yes The skill identifier.
  • Response:

    {
      "success": true,
      "data": {}
    }

The response is the direct result returned by the underlying skill lookup.

POST /api/rpc (Method: SkillRpc.create)

Creates a new skill.

  • Request Body:

    {
      "method": "SkillRpc.create",
      "params": {
        "any": "skill payload"
      }
    }
  • Parameters:

    Name Type Required Description
    data Any Yes The skill payload submitted for creation. The schema accepts any value.
  • Response:

    {
      "success": true,
      "data": {}
    }

The response is the direct result returned by the underlying skill creation operation.

POST /api/rpc (Method: SkillRpc.update)

Updates an existing skill.

  • Request Body:

    {
      "method": "SkillRpc.update",
      "params": {
        "_id": "skill-id",
        "any": "updated fields"
      }
    }
  • Parameters:

    Name Type Required Description
    data Any Yes The update payload. The method removes _id from this object and uses it to target the skill to update.
  • Response:

    {
      "success": true,
      "data": {}
    }

The response is the direct result returned by the underlying skill update operation.

POST /api/rpc (Method: SkillRpc.delete)

Deletes a skill.

  • Request Body:

    {
      "method": "SkillRpc.delete",
      "params": {
        "_id": "skill-id"
      }
    }
  • Parameters:

    Name Type Required Description
    _id String Yes The skill identifier.
  • Response:

    {
      "success": true,
      "data": {}
    }

The response is the direct result returned by the underlying skill deletion operation.

POST /api/rpc (Method: SkillRpc.getSkillOptions)

Gets a list of skills formatted for dropdown or tag selection.

  • Request Body:

    {
      "method": "SkillRpc.getSkillOptions",
      "params": {}
    }
  • Parameters:

    Name Type Required Description
    None - No This method does not declare any request parameters.
  • Response:

    {
      "success": true,
      "data": [
        {
          "value": "Skill Name",
          "label": "Skill Name"
        }
      ]
    }

Each option is built from the returned skills list using the skill name field for both value and label.

POST /api/rpc (Method: SkillRpc.getAvailableTools)

Gets a list of all available tools for skill configuration.

  • Request Body:

    {
      "method": "SkillRpc.getAvailableTools",
      "params": {}
    }
  • Parameters:

    Name Type Required Description
    None - No This method does not declare any request parameters.
  • Response:

    {
      "success": true,
      "data": [
        {
          "value": "tool.function.name",
          "label": "tool.function.name"
        }
      ]
    }

The response contains tool options derived from tool definitions that include a function name, sorted alphabetically by label.

POST /api/rpc (Method: SkillRpc.getJobStatus)

Gets the status and history of a running or completed skill job.

  • Request Body:

    {
      "method": "SkillRpc.getJobStatus",
      "params": {
        "jobId": "job-id"
      }
    }
  • Parameters:

    Name Type Required Description
    jobId String Yes The job identifier.
  • Response:

    {
      "success": true,
      "data": {}
    }

The response is the direct result returned by the underlying job status lookup.