naftiko: 1.0.0-alpha2 info: label: LangSmith — runs description: 'LangSmith — runs. 7 operations. Lead operation: Create a Run. Self-contained Naftiko capability covering one Langsmith business surface.' tags: - Langsmith - runs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: LANGSMITH_API_KEY: LANGSMITH_API_KEY capability: consumes: - type: http namespace: langsmith-runs baseUri: '' description: LangSmith — runs business capability. Self-contained, no shared references. resources: - name: runs path: /runs operations: - name: post method: POST description: Create a Run outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: runs-batch path: /runs/batch operations: - name: post method: POST description: Ingest Runs (Batch JSON) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: runs-multipart path: /runs/multipart operations: - name: post method: POST description: Ingest Runs (Multipart) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: runs-run_id path: /runs/{run_id} operations: - name: patch method: PATCH description: Update a Run outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: run_id in: path type: string description: Run ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v2-runs-query path: /v2/runs/query operations: - name: post method: POST description: Query runs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Accept in: header type: string description: application/json - name: Content-Type in: header type: string description: application/json (required for JSON body) - name: body in: body type: object description: Request body (JSON). required: true - name: v2-runs-run_id path: /v2/runs/{run_id} operations: - name: get method: GET description: Get a single run outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Accept in: header type: string description: application/json - name: run_id in: path type: string description: Run UUID required: true - name: project_id in: query type: string description: '`project_id` is the UUID of the tracing project that owns the run.' required: true - name: selects in: query type: array description: '`selects` lists which properties to include on the returned run (repeatable query parameter). Accepts any value of the `RunSelectField` enum. If omitted, only `' - name: start_time in: query type: string description: '`start_time` is the run''s `start_time` (RFC3339 date-time), used together with `project_id` to locate the run.' required: true - name: v2-traces-trace_id-runs path: /v2/traces/{trace_id}/runs operations: - name: get method: GET description: List runs in a trace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Accept in: header type: string description: application/json - name: trace_id in: path type: string description: Trace UUID required: true - name: filter in: query type: string description: '`filter` narrows which runs within this trace are returned, using a LangSmith filter expression evaluated against each run. For example: `eq(run_type, "llm")` f' - name: max_start_time in: query type: string description: '`max_start_time` is the inclusive upper bound for run `start_time` (RFC3339 date-time).' required: true - name: min_start_time in: query type: string description: '`min_start_time` is the inclusive lower bound for run `start_time` (RFC3339 date-time).' required: true - name: project_id in: query type: string description: '`project_id` is the UUID of the tracing project that owns the trace.' required: true - name: selects in: query type: array description: '`selects` lists which properties to include on each returned run (repeatable query parameter). Accepts any value of the `RunSelectField` enum. If omitted, only ' authentication: type: bearer token: '{{env.LANGSMITH_API_KEY}}' exposes: - type: rest namespace: langsmith-runs-rest port: 8080 description: REST adapter for LangSmith — runs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/runs name: runs description: REST surface for runs. operations: - method: POST name: post description: Create a Run call: langsmith-runs.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/runs/batch name: runs-batch description: REST surface for runs-batch. operations: - method: POST name: post description: Ingest Runs (Batch JSON) call: langsmith-runs.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/runs/multipart name: runs-multipart description: REST surface for runs-multipart. operations: - method: POST name: post description: Ingest Runs (Multipart) call: langsmith-runs.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/runs/{run-id} name: runs-run-id description: REST surface for runs-run_id. operations: - method: PATCH name: patch description: Update a Run call: langsmith-runs.patch with: run_id: rest.run_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v2/runs/query name: v2-runs-query description: REST surface for v2-runs-query. operations: - method: POST name: post description: Query runs call: langsmith-runs.post with: Accept: rest.Accept Content-Type: rest.Content-Type body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v2/runs/{run-id} name: v2-runs-run-id description: REST surface for v2-runs-run_id. operations: - method: GET name: get description: Get a single run call: langsmith-runs.get with: Accept: rest.Accept run_id: rest.run_id project_id: rest.project_id selects: rest.selects start_time: rest.start_time outputParameters: - type: object mapping: $. - path: /v1/v2/traces/{trace-id}/runs name: v2-traces-trace-id-runs description: REST surface for v2-traces-trace_id-runs. operations: - method: GET name: get description: List runs in a trace call: langsmith-runs.get with: Accept: rest.Accept trace_id: rest.trace_id filter: rest.filter max_start_time: rest.max_start_time min_start_time: rest.min_start_time project_id: rest.project_id selects: rest.selects outputParameters: - type: object mapping: $. - type: mcp namespace: langsmith-runs-mcp port: 9090 transport: http description: MCP adapter for LangSmith — runs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-run description: Create a Run hints: readOnly: false destructive: false idempotent: false call: langsmith-runs.post with: body: tools.body outputParameters: - type: object mapping: $. - name: ingest-runs-batch-json description: Ingest Runs (Batch JSON) hints: readOnly: false destructive: false idempotent: false call: langsmith-runs.post with: body: tools.body outputParameters: - type: object mapping: $. - name: ingest-runs-multipart description: Ingest Runs (Multipart) hints: readOnly: false destructive: false idempotent: false call: langsmith-runs.post with: body: tools.body outputParameters: - type: object mapping: $. - name: update-run description: Update a Run hints: readOnly: false destructive: false idempotent: true call: langsmith-runs.patch with: run_id: tools.run_id body: tools.body outputParameters: - type: object mapping: $. - name: query-runs description: Query runs hints: readOnly: true destructive: false idempotent: false call: langsmith-runs.post with: Accept: tools.Accept Content-Type: tools.Content-Type body: tools.body outputParameters: - type: object mapping: $. - name: get-single-run description: Get a single run hints: readOnly: true destructive: false idempotent: true call: langsmith-runs.get with: Accept: tools.Accept run_id: tools.run_id project_id: tools.project_id selects: tools.selects start_time: tools.start_time outputParameters: - type: object mapping: $. - name: list-runs-trace description: List runs in a trace hints: readOnly: true destructive: false idempotent: true call: langsmith-runs.get with: Accept: tools.Accept trace_id: tools.trace_id filter: tools.filter max_start_time: tools.max_start_time min_start_time: tools.min_start_time project_id: tools.project_id selects: tools.selects outputParameters: - type: object mapping: $.