naftiko: 1.0.0-alpha2 info: label: QuantCDN API — AI Agents description: 'QuantCDN API — AI Agents. 9 operations. Lead operation: List AI Agents. Self-contained Naftiko capability covering one Quantcdn business surface.' tags: - Quantcdn - AI Agents created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: QUANTCDN_API_KEY: QUANTCDN_API_KEY capability: consumes: - type: http namespace: quantcdn-ai-agents baseUri: https://dashboard.quantcdn.io description: QuantCDN API — AI Agents business capability. Self-contained, no shared references. resources: - name: api-v3-organizations-organisation-ai-agents path: /api/v3/organizations/{organisation}/ai/agents operations: - name: listaiagents method: GET description: List AI Agents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: group in: query type: string description: Optional group filter (e.g., 'development', 'compliance') - name: createaiagent method: POST description: Create AI Agent outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v3-organizations-organisation-ai-agents-agentId path: /api/v3/organizations/{organisation}/ai/agents/{agentId} operations: - name: deleteaiagent method: DELETE description: Delete Agent outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: agentId in: path type: string description: The agent ID required: true - name: getaiagent method: GET description: Get Agent Details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: agentId in: path type: string description: The agent ID required: true - name: updateaiagent method: PUT description: Update Agent outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: agentId in: path type: string description: The agent ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v3-organizations-organisation-ai-agents-agentId-chat path: /api/v3/organizations/{organisation}/ai/agents/{agentId}/chat operations: - name: chatwithaiagent method: POST description: Chat with AI Agent outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: agentId in: path type: string description: The agent ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v3-organizations-organisation-ai-agents-agentId-overlay path: /api/v3/organizations/{organisation}/ai/agents/{agentId}/overlay operations: - name: deleteagentoverlay method: DELETE description: Delete Agent Overlay outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: agentId in: path type: string description: Global agent identifier required: true - name: getagentoverlay method: GET description: Get Agent Overlay outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: agentId in: path type: string description: Global agent identifier (e.g., 'quantgov-code') required: true - name: upsertagentoverlay method: PUT description: Upsert Agent Overlay outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: agentId in: path type: string description: Global agent identifier required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.QUANTCDN_API_KEY}}' exposes: - type: rest namespace: quantcdn-ai-agents-rest port: 8080 description: REST adapter for QuantCDN API — AI Agents. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v3/organizations/{organisation}/ai/agents name: api-v3-organizations-organisation-ai-agents description: REST surface for api-v3-organizations-organisation-ai-agents. operations: - method: GET name: listaiagents description: List AI Agents call: quantcdn-ai-agents.listaiagents with: organisation: rest.organisation group: rest.group outputParameters: - type: object mapping: $. - method: POST name: createaiagent description: Create AI Agent call: quantcdn-ai-agents.createaiagent with: organisation: rest.organisation body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v3/organizations/{organisation}/ai/agents/{agentid} name: api-v3-organizations-organisation-ai-agents-agentid description: REST surface for api-v3-organizations-organisation-ai-agents-agentId. operations: - method: DELETE name: deleteaiagent description: Delete Agent call: quantcdn-ai-agents.deleteaiagent with: organisation: rest.organisation agentId: rest.agentId outputParameters: - type: object mapping: $. - method: GET name: getaiagent description: Get Agent Details call: quantcdn-ai-agents.getaiagent with: organisation: rest.organisation agentId: rest.agentId outputParameters: - type: object mapping: $. - method: PUT name: updateaiagent description: Update Agent call: quantcdn-ai-agents.updateaiagent with: organisation: rest.organisation agentId: rest.agentId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v3/organizations/{organisation}/ai/agents/{agentid}/chat name: api-v3-organizations-organisation-ai-agents-agentid-chat description: REST surface for api-v3-organizations-organisation-ai-agents-agentId-chat. operations: - method: POST name: chatwithaiagent description: Chat with AI Agent call: quantcdn-ai-agents.chatwithaiagent with: organisation: rest.organisation agentId: rest.agentId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v3/organizations/{organisation}/ai/agents/{agentid}/overlay name: api-v3-organizations-organisation-ai-agents-agentid-overlay description: REST surface for api-v3-organizations-organisation-ai-agents-agentId-overlay. operations: - method: DELETE name: deleteagentoverlay description: Delete Agent Overlay call: quantcdn-ai-agents.deleteagentoverlay with: organisation: rest.organisation agentId: rest.agentId outputParameters: - type: object mapping: $. - method: GET name: getagentoverlay description: Get Agent Overlay call: quantcdn-ai-agents.getagentoverlay with: organisation: rest.organisation agentId: rest.agentId outputParameters: - type: object mapping: $. - method: PUT name: upsertagentoverlay description: Upsert Agent Overlay call: quantcdn-ai-agents.upsertagentoverlay with: organisation: rest.organisation agentId: rest.agentId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: quantcdn-ai-agents-mcp port: 9090 transport: http description: MCP adapter for QuantCDN API — AI Agents. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-ai-agents description: List AI Agents hints: readOnly: true destructive: false idempotent: true call: quantcdn-ai-agents.listaiagents with: organisation: tools.organisation group: tools.group outputParameters: - type: object mapping: $. - name: create-ai-agent description: Create AI Agent hints: readOnly: false destructive: false idempotent: false call: quantcdn-ai-agents.createaiagent with: organisation: tools.organisation body: tools.body outputParameters: - type: object mapping: $. - name: delete-agent description: Delete Agent hints: readOnly: false destructive: true idempotent: true call: quantcdn-ai-agents.deleteaiagent with: organisation: tools.organisation agentId: tools.agentId outputParameters: - type: object mapping: $. - name: get-agent-details description: Get Agent Details hints: readOnly: true destructive: false idempotent: true call: quantcdn-ai-agents.getaiagent with: organisation: tools.organisation agentId: tools.agentId outputParameters: - type: object mapping: $. - name: update-agent description: Update Agent hints: readOnly: false destructive: false idempotent: true call: quantcdn-ai-agents.updateaiagent with: organisation: tools.organisation agentId: tools.agentId body: tools.body outputParameters: - type: object mapping: $. - name: chat-ai-agent description: Chat with AI Agent hints: readOnly: false destructive: false idempotent: false call: quantcdn-ai-agents.chatwithaiagent with: organisation: tools.organisation agentId: tools.agentId body: tools.body outputParameters: - type: object mapping: $. - name: delete-agent-overlay description: Delete Agent Overlay hints: readOnly: false destructive: true idempotent: true call: quantcdn-ai-agents.deleteagentoverlay with: organisation: tools.organisation agentId: tools.agentId outputParameters: - type: object mapping: $. - name: get-agent-overlay description: Get Agent Overlay hints: readOnly: true destructive: false idempotent: true call: quantcdn-ai-agents.getagentoverlay with: organisation: tools.organisation agentId: tools.agentId outputParameters: - type: object mapping: $. - name: upsert-agent-overlay description: Upsert Agent Overlay hints: readOnly: false destructive: false idempotent: true call: quantcdn-ai-agents.upsertagentoverlay with: organisation: tools.organisation agentId: tools.agentId body: tools.body outputParameters: - type: object mapping: $.