|
1584 | 1584 | } |
1585 | 1585 | } |
1586 | 1586 | }, |
| 1587 | + "/v1/skills": { |
| 1588 | + "get": { |
| 1589 | + "tags": [ |
| 1590 | + "skills" |
| 1591 | + ], |
| 1592 | + "summary": "Skills Endpoint Handler", |
| 1593 | + "description": "Handle requests to the /skills endpoint.\n\nProcess GET requests to the /skills endpoint, returning a list of loaded\nagent skills with their metadata (name, description).\n\n### Parameters:\n- request: The incoming HTTP request (used by middleware).\n- auth: Authentication tuple from the auth dependency (used by middleware).\n\n### Raises:\n- HTTPException: with status 401 for unauthorized access.\n- HTTPException: with status 403 if permission is denied.\n- HTTPException: with status 500 and a detail object containing `response`\n and `cause` when service configuration is wrong or incomplete.\n\n### Returns:\n- SkillsResponse: An object containing the list of loaded skills.", |
| 1594 | + "operationId": "skills_endpoint_handler_v1_skills_get", |
| 1595 | + "responses": { |
| 1596 | + "200": { |
| 1597 | + "description": "Successful response", |
| 1598 | + "content": { |
| 1599 | + "application/json": { |
| 1600 | + "schema": { |
| 1601 | + "$ref": "#/components/schemas/SkillsResponse" |
| 1602 | + }, |
| 1603 | + "example": { |
| 1604 | + "skills": [ |
| 1605 | + { |
| 1606 | + "description": "Review code for quality and security", |
| 1607 | + "name": "code-review" |
| 1608 | + }, |
| 1609 | + { |
| 1610 | + "description": "Troubleshoot OpenShift cluster issues", |
| 1611 | + "name": "openshift-troubleshooting" |
| 1612 | + } |
| 1613 | + ] |
| 1614 | + } |
| 1615 | + } |
| 1616 | + } |
| 1617 | + }, |
| 1618 | + "401": { |
| 1619 | + "description": "Unauthorized", |
| 1620 | + "content": { |
| 1621 | + "application/json": { |
| 1622 | + "schema": { |
| 1623 | + "$ref": "#/components/schemas/UnauthorizedResponse" |
| 1624 | + }, |
| 1625 | + "examples": { |
| 1626 | + "missing header": { |
| 1627 | + "value": { |
| 1628 | + "detail": { |
| 1629 | + "cause": "No Authorization header found", |
| 1630 | + "response": "Missing or invalid credentials provided by client" |
| 1631 | + } |
| 1632 | + } |
| 1633 | + }, |
| 1634 | + "missing token": { |
| 1635 | + "value": { |
| 1636 | + "detail": { |
| 1637 | + "cause": "No token found in Authorization header", |
| 1638 | + "response": "Missing or invalid credentials provided by client" |
| 1639 | + } |
| 1640 | + } |
| 1641 | + }, |
| 1642 | + "expired token": { |
| 1643 | + "value": { |
| 1644 | + "detail": { |
| 1645 | + "cause": "Token has expired", |
| 1646 | + "response": "Missing or invalid credentials provided by client" |
| 1647 | + } |
| 1648 | + } |
| 1649 | + }, |
| 1650 | + "invalid signature": { |
| 1651 | + "value": { |
| 1652 | + "detail": { |
| 1653 | + "cause": "Invalid token signature", |
| 1654 | + "response": "Missing or invalid credentials provided by client" |
| 1655 | + } |
| 1656 | + } |
| 1657 | + }, |
| 1658 | + "invalid key": { |
| 1659 | + "value": { |
| 1660 | + "detail": { |
| 1661 | + "cause": "Token signed by unknown key", |
| 1662 | + "response": "Missing or invalid credentials provided by client" |
| 1663 | + } |
| 1664 | + } |
| 1665 | + }, |
| 1666 | + "missing claim": { |
| 1667 | + "value": { |
| 1668 | + "detail": { |
| 1669 | + "cause": "Token missing claim: user_id", |
| 1670 | + "response": "Missing or invalid credentials provided by client" |
| 1671 | + } |
| 1672 | + } |
| 1673 | + }, |
| 1674 | + "invalid k8s token": { |
| 1675 | + "value": { |
| 1676 | + "detail": { |
| 1677 | + "cause": "Invalid or expired Kubernetes token", |
| 1678 | + "response": "Missing or invalid credentials provided by client" |
| 1679 | + } |
| 1680 | + } |
| 1681 | + }, |
| 1682 | + "invalid jwk token": { |
| 1683 | + "value": { |
| 1684 | + "detail": { |
| 1685 | + "cause": "Authentication key server returned invalid data", |
| 1686 | + "response": "Missing or invalid credentials provided by client" |
| 1687 | + } |
| 1688 | + } |
| 1689 | + } |
| 1690 | + } |
| 1691 | + } |
| 1692 | + } |
| 1693 | + }, |
| 1694 | + "403": { |
| 1695 | + "description": "Permission denied", |
| 1696 | + "content": { |
| 1697 | + "application/json": { |
| 1698 | + "schema": { |
| 1699 | + "$ref": "#/components/schemas/ForbiddenResponse" |
| 1700 | + }, |
| 1701 | + "examples": { |
| 1702 | + "endpoint": { |
| 1703 | + "value": { |
| 1704 | + "detail": { |
| 1705 | + "cause": "User 6789 is not authorized to access this endpoint.", |
| 1706 | + "response": "User does not have permission to access this endpoint" |
| 1707 | + } |
| 1708 | + } |
| 1709 | + } |
| 1710 | + } |
| 1711 | + } |
| 1712 | + } |
| 1713 | + }, |
| 1714 | + "500": { |
| 1715 | + "description": "Internal server error", |
| 1716 | + "content": { |
| 1717 | + "application/json": { |
| 1718 | + "schema": { |
| 1719 | + "$ref": "#/components/schemas/InternalServerErrorResponse" |
| 1720 | + }, |
| 1721 | + "examples": { |
| 1722 | + "configuration": { |
| 1723 | + "value": { |
| 1724 | + "detail": { |
| 1725 | + "cause": "Lightspeed Stack configuration has not been initialized.", |
| 1726 | + "response": "Configuration is not loaded" |
| 1727 | + } |
| 1728 | + } |
| 1729 | + } |
| 1730 | + } |
| 1731 | + } |
| 1732 | + } |
| 1733 | + } |
| 1734 | + } |
| 1735 | + } |
| 1736 | + }, |
1587 | 1737 | "/v1/providers": { |
1588 | 1738 | "get": { |
1589 | 1739 | "tags": [ |
|
11568 | 11718 | "feedback", |
11569 | 11719 | "get_models", |
11570 | 11720 | "get_tools", |
| 11721 | + "get_skills", |
11571 | 11722 | "get_shields", |
11572 | 11723 | "list_providers", |
11573 | 11724 | "get_provider", |
|
21257 | 21408 | } |
21258 | 21409 | ] |
21259 | 21410 | }, |
| 21411 | + "SkillMetadata": { |
| 21412 | + "properties": { |
| 21413 | + "name": { |
| 21414 | + "type": "string", |
| 21415 | + "title": "Name", |
| 21416 | + "description": "Unique name of the skill" |
| 21417 | + }, |
| 21418 | + "description": { |
| 21419 | + "type": "string", |
| 21420 | + "title": "Description", |
| 21421 | + "description": "Human readable description of what the skill does" |
| 21422 | + } |
| 21423 | + }, |
| 21424 | + "type": "object", |
| 21425 | + "required": [ |
| 21426 | + "name", |
| 21427 | + "description" |
| 21428 | + ], |
| 21429 | + "title": "SkillMetadata", |
| 21430 | + "description": "Metadata describing a single loaded agent skill.\n\nAttributes:\n name: Unique name of the skill.\n description: Human readable description of what the skill does." |
| 21431 | + }, |
21260 | 21432 | "SkillsConfiguration": { |
21261 | 21433 | "properties": { |
21262 | 21434 | "paths": { |
|
21274 | 21446 | "title": "SkillsConfiguration", |
21275 | 21447 | "description": "Agent skills configuration.\n\nSpecifies paths to skill directories. Skill metadata (name, description)\nis read from SKILL.md frontmatter at startup.\n\nEach path can point to either:\n- A directory containing a SKILL.md file (single skill)\n- A directory containing subdirectories with SKILL.md files (multiple skills)\n\nPaths are validated at startup to ensure they exist and contain valid SKILL.md files." |
21276 | 21448 | }, |
| 21449 | + "SkillsResponse": { |
| 21450 | + "properties": { |
| 21451 | + "skills": { |
| 21452 | + "items": { |
| 21453 | + "$ref": "#/components/schemas/SkillMetadata" |
| 21454 | + }, |
| 21455 | + "type": "array", |
| 21456 | + "title": "Skills", |
| 21457 | + "description": "List of loaded skills with metadata" |
| 21458 | + } |
| 21459 | + }, |
| 21460 | + "type": "object", |
| 21461 | + "required": [ |
| 21462 | + "skills" |
| 21463 | + ], |
| 21464 | + "title": "SkillsResponse", |
| 21465 | + "description": "Model representing a response to skills request.\n\nAttributes:\n skills: List of loaded skills with metadata (name and description).", |
| 21466 | + "examples": [ |
| 21467 | + { |
| 21468 | + "skills": [ |
| 21469 | + { |
| 21470 | + "description": "Review code for quality and security", |
| 21471 | + "name": "code-review" |
| 21472 | + }, |
| 21473 | + { |
| 21474 | + "description": "Troubleshoot OpenShift cluster issues", |
| 21475 | + "name": "openshift-troubleshooting" |
| 21476 | + } |
| 21477 | + ] |
| 21478 | + } |
| 21479 | + ] |
| 21480 | + }, |
21277 | 21481 | "SolrVectorSearchRequest": { |
21278 | 21482 | "properties": { |
21279 | 21483 | "mode": { |
|
22853 | 23057 | "name": "shields", |
22854 | 23058 | "description": "Safety shields." |
22855 | 23059 | }, |
| 23060 | + { |
| 23061 | + "name": "skills", |
| 23062 | + "description": "Agent skills." |
| 23063 | + }, |
22856 | 23064 | { |
22857 | 23065 | "name": "streaming_query", |
22858 | 23066 | "description": "Streaming query (SSE)." |
|
0 commit comments