naftiko: 1.0.0-alpha2 info: label: LangSmith — optimization-jobs description: 'LangSmith — optimization-jobs. 9 operations. Lead operation: List Jobs. Self-contained Naftiko capability covering one Langchain business surface.' tags: - Langchain - optimization-jobs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: LANGCHAIN_API_KEY: LANGCHAIN_API_KEY capability: consumes: - type: http namespace: langchain-optimization-jobs baseUri: '' description: LangSmith — optimization-jobs business capability. Self-contained, no shared references. resources: - name: api-v1-repos-owner-repo-optimization-jobs path: /api/v1/repos/{owner}/{repo}/optimization-jobs operations: - name: listjobsapiv1reposownerrepooptimizationjobsget method: GET description: List Jobs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: repo in: path type: string required: true - name: createjobapiv1reposownerrepooptimizationjobspost method: POST description: Create Job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: repo in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v1-repos-owner-repo-optimization-jobs-job_id path: /api/v1/repos/{owner}/{repo}/optimization-jobs/{job_id} operations: - name: getjobapiv1reposownerrepooptimizationjobsjobidget method: GET description: Get Job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: job_id in: path type: string required: true - name: updatejobapiv1reposownerrepooptimizationjobsjobidpatch method: PATCH description: Update Job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: job_id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletejobapiv1reposownerrepooptimizationjobsjobiddelete method: DELETE description: Delete Job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: job_id in: path type: string required: true - name: api-v1-repos-owner-repo-optimization-jobs-job_id-logs path: /api/v1/repos/{owner}/{repo}/optimization-jobs/{job_id}/logs operations: - name: listjoblogsapiv1reposownerrepooptimizationjobsjobidlogsget method: GET description: List Job Logs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: job_id in: path type: string required: true - name: createlogapiv1reposownerrepooptimizationjobsjobidlogspost method: POST description: Create Log outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: job_id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v1-repos-owner-repo-optimization-jobs-job_id-logs-log_id path: /api/v1/repos/{owner}/{repo}/optimization-jobs/{job_id}/logs/{log_id} operations: - name: getlogapiv1reposownerrepooptimizationjobsjobidlogslogidget method: GET description: Get Log outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: log_id in: path type: string required: true - name: deletelogapiv1reposownerrepooptimizationjobsjobidlogslogiddelete method: DELETE description: Delete Log outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: log_id in: path type: string required: true authentication: type: bearer token: '{{env.LANGCHAIN_API_KEY}}' exposes: - type: rest namespace: langchain-optimization-jobs-rest port: 8080 description: REST adapter for LangSmith — optimization-jobs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v1/repos/{owner}/{repo}/optimization-jobs name: api-v1-repos-owner-repo-optimization-jobs description: REST surface for api-v1-repos-owner-repo-optimization-jobs. operations: - method: GET name: listjobsapiv1reposownerrepooptimizationjobsget description: List Jobs call: langchain-optimization-jobs.listjobsapiv1reposownerrepooptimizationjobsget with: repo: rest.repo outputParameters: - type: object mapping: $. - method: POST name: createjobapiv1reposownerrepooptimizationjobspost description: Create Job call: langchain-optimization-jobs.createjobapiv1reposownerrepooptimizationjobspost with: repo: rest.repo body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v1/repos/{owner}/{repo}/optimization-jobs/{job-id} name: api-v1-repos-owner-repo-optimization-jobs-job-id description: REST surface for api-v1-repos-owner-repo-optimization-jobs-job_id. operations: - method: GET name: getjobapiv1reposownerrepooptimizationjobsjobidget description: Get Job call: langchain-optimization-jobs.getjobapiv1reposownerrepooptimizationjobsjobidget with: job_id: rest.job_id outputParameters: - type: object mapping: $. - method: PATCH name: updatejobapiv1reposownerrepooptimizationjobsjobidpatch description: Update Job call: langchain-optimization-jobs.updatejobapiv1reposownerrepooptimizationjobsjobidpatch with: job_id: rest.job_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletejobapiv1reposownerrepooptimizationjobsjobiddelete description: Delete Job call: langchain-optimization-jobs.deletejobapiv1reposownerrepooptimizationjobsjobiddelete with: job_id: rest.job_id outputParameters: - type: object mapping: $. - path: /v1/api/v1/repos/{owner}/{repo}/optimization-jobs/{job-id}/logs name: api-v1-repos-owner-repo-optimization-jobs-job-id-logs description: REST surface for api-v1-repos-owner-repo-optimization-jobs-job_id-logs. operations: - method: GET name: listjoblogsapiv1reposownerrepooptimizationjobsjobidlogsget description: List Job Logs call: langchain-optimization-jobs.listjoblogsapiv1reposownerrepooptimizationjobsjobidlogsget with: job_id: rest.job_id outputParameters: - type: object mapping: $. - method: POST name: createlogapiv1reposownerrepooptimizationjobsjobidlogspost description: Create Log call: langchain-optimization-jobs.createlogapiv1reposownerrepooptimizationjobsjobidlogspost with: job_id: rest.job_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v1/repos/{owner}/{repo}/optimization-jobs/{job-id}/logs/{log-id} name: api-v1-repos-owner-repo-optimization-jobs-job-id-logs-log-id description: REST surface for api-v1-repos-owner-repo-optimization-jobs-job_id-logs-log_id. operations: - method: GET name: getlogapiv1reposownerrepooptimizationjobsjobidlogslogidget description: Get Log call: langchain-optimization-jobs.getlogapiv1reposownerrepooptimizationjobsjobidlogslogidget with: log_id: rest.log_id outputParameters: - type: object mapping: $. - method: DELETE name: deletelogapiv1reposownerrepooptimizationjobsjobidlogslogiddelete description: Delete Log call: langchain-optimization-jobs.deletelogapiv1reposownerrepooptimizationjobsjobidlogslogiddelete with: log_id: rest.log_id outputParameters: - type: object mapping: $. - type: mcp namespace: langchain-optimization-jobs-mcp port: 9090 transport: http description: MCP adapter for LangSmith — optimization-jobs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-jobs description: List Jobs hints: readOnly: true destructive: false idempotent: true call: langchain-optimization-jobs.listjobsapiv1reposownerrepooptimizationjobsget with: repo: tools.repo outputParameters: - type: object mapping: $. - name: create-job description: Create Job hints: readOnly: false destructive: false idempotent: false call: langchain-optimization-jobs.createjobapiv1reposownerrepooptimizationjobspost with: repo: tools.repo body: tools.body outputParameters: - type: object mapping: $. - name: get-job description: Get Job hints: readOnly: true destructive: false idempotent: true call: langchain-optimization-jobs.getjobapiv1reposownerrepooptimizationjobsjobidget with: job_id: tools.job_id outputParameters: - type: object mapping: $. - name: update-job description: Update Job hints: readOnly: false destructive: false idempotent: true call: langchain-optimization-jobs.updatejobapiv1reposownerrepooptimizationjobsjobidpatch with: job_id: tools.job_id body: tools.body outputParameters: - type: object mapping: $. - name: delete-job description: Delete Job hints: readOnly: false destructive: true idempotent: true call: langchain-optimization-jobs.deletejobapiv1reposownerrepooptimizationjobsjobiddelete with: job_id: tools.job_id outputParameters: - type: object mapping: $. - name: list-job-logs description: List Job Logs hints: readOnly: true destructive: false idempotent: true call: langchain-optimization-jobs.listjoblogsapiv1reposownerrepooptimizationjobsjobidlogsget with: job_id: tools.job_id outputParameters: - type: object mapping: $. - name: create-log description: Create Log hints: readOnly: false destructive: false idempotent: false call: langchain-optimization-jobs.createlogapiv1reposownerrepooptimizationjobsjobidlogspost with: job_id: tools.job_id body: tools.body outputParameters: - type: object mapping: $. - name: get-log description: Get Log hints: readOnly: true destructive: false idempotent: true call: langchain-optimization-jobs.getlogapiv1reposownerrepooptimizationjobsjobidlogslogidget with: log_id: tools.log_id outputParameters: - type: object mapping: $. - name: delete-log description: Delete Log hints: readOnly: false destructive: true idempotent: true call: langchain-optimization-jobs.deletelogapiv1reposownerrepooptimizationjobsjobidlogslogiddelete with: log_id: tools.log_id outputParameters: - type: object mapping: $.