naftiko: 1.0.0-alpha2 info: label: LangSmith — gateway description: 'LangSmith — gateway. 4 operations. Lead operation: Proxy Anthropic Messages through the LLM Gateway. Self-contained Naftiko capability covering one Langsmith business surface.' tags: - Langsmith - gateway created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: LANGSMITH_API_KEY: LANGSMITH_API_KEY capability: consumes: - type: http namespace: langsmith-gateway baseUri: '' description: LangSmith — gateway business capability. Self-contained, no shared references. resources: - name: anthropic-v1-messages path: /anthropic/v1/messages operations: - name: post method: POST description: Proxy Anthropic Messages through the LLM Gateway outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: gemini-v1beta-models-model path: /gemini/v1beta/models/{model} operations: - name: post method: POST description: Proxy Google Gemini generateContent through the LLM Gateway outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: model in: path type: string description: Model + action, e.g. `gemini-2.0-flash:generateContent` or `gemini-2.0-flash:streamGenerateContent` required: true - name: body in: body type: object description: Request body (JSON). required: true - name: openai-v1-chat-completions path: /openai/v1/chat/completions operations: - name: post method: POST description: Proxy OpenAI Chat Completions through the LLM Gateway outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: openai-v1-responses path: /openai/v1/responses operations: - name: post method: POST description: Proxy OpenAI Responses through the LLM Gateway outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.LANGSMITH_API_KEY}}' exposes: - type: rest namespace: langsmith-gateway-rest port: 8080 description: REST adapter for LangSmith — gateway. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/anthropic/v1/messages name: anthropic-v1-messages description: REST surface for anthropic-v1-messages. operations: - method: POST name: post description: Proxy Anthropic Messages through the LLM Gateway call: langsmith-gateway.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/gemini/v1beta/models/{model} name: gemini-v1beta-models-model description: REST surface for gemini-v1beta-models-model. operations: - method: POST name: post description: Proxy Google Gemini generateContent through the LLM Gateway call: langsmith-gateway.post with: model: rest.model body: rest.body outputParameters: - type: object mapping: $. - path: /v1/openai/v1/chat/completions name: openai-v1-chat-completions description: REST surface for openai-v1-chat-completions. operations: - method: POST name: post description: Proxy OpenAI Chat Completions through the LLM Gateway call: langsmith-gateway.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/openai/v1/responses name: openai-v1-responses description: REST surface for openai-v1-responses. operations: - method: POST name: post description: Proxy OpenAI Responses through the LLM Gateway call: langsmith-gateway.post with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: langsmith-gateway-mcp port: 9090 transport: http description: MCP adapter for LangSmith — gateway. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: proxy-anthropic-messages-through-llm description: Proxy Anthropic Messages through the LLM Gateway hints: readOnly: false destructive: false idempotent: false call: langsmith-gateway.post with: body: tools.body outputParameters: - type: object mapping: $. - name: proxy-google-gemini-generatecontent-through description: Proxy Google Gemini generateContent through the LLM Gateway hints: readOnly: false destructive: false idempotent: false call: langsmith-gateway.post with: model: tools.model body: tools.body outputParameters: - type: object mapping: $. - name: proxy-openai-chat-completions-through description: Proxy OpenAI Chat Completions through the LLM Gateway hints: readOnly: false destructive: false idempotent: false call: langsmith-gateway.post with: body: tools.body outputParameters: - type: object mapping: $. - name: proxy-openai-responses-through-llm description: Proxy OpenAI Responses through the LLM Gateway hints: readOnly: false destructive: false idempotent: false call: langsmith-gateway.post with: body: tools.body outputParameters: - type: object mapping: $.