[
  {
    "code": "cdek-logistics-shipment-create",
    "capabilityCode": "cdek-logistics-shipment-create",
    "providerCode": "cdek",
    "operationCode": "logistics.shipment.create",
    "title": "CDEK create shipment adapter",
    "summary": "Maps the universal shipment creation contract to CDEK /v2/orders.",
    "description": "Implemented in @opsregistry/adapter-cdek for logistics.shipment.create.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires OAuth clientId/clientSecret. Creates CDEK orders through POST /v2/orders; internet-shop order type is used by default and can be overridden by adapter metadata."
  },
  {
    "code": "cdek-logistics-shipment-quote",
    "capabilityCode": "cdek-logistics-shipment-quote",
    "providerCode": "cdek",
    "operationCode": "logistics.shipment.quote",
    "title": "CDEK shipment quote adapter",
    "summary": "Maps the universal shipment quote contract to the CDEK tariff calculator.",
    "description": "Implemented in @opsregistry/adapter-cdek for logistics.shipment.quote.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires authorized CDEK API access."
  },
  {
    "code": "cdek-logistics-shipment-track",
    "capabilityCode": "cdek-logistics-shipment-track",
    "providerCode": "cdek",
    "operationCode": "logistics.shipment.track",
    "title": "CDEK shipment tracking adapter",
    "summary": "Maps the universal shipment tracking contract to CDEK order status history.",
    "description": "Implemented in @opsregistry/adapter-cdek for logistics.shipment.track.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires authorized CDEK API access and a provider order UUID or compatible shipment identifier."
  },
  {
    "code": "cloudkassir-finance-fiscal-receipt-create",
    "capabilityCode": "cloudkassir-finance-fiscal-receipt-create",
    "providerCode": "cloudkassir",
    "operationCode": "finance.fiscalReceipt.create",
    "title": "CloudKassir create receipt adapter",
    "summary": "Maps finance.fiscalReceipt.create to CloudKassir fiscal receipt registration APIs.",
    "description": "Planned HTTP adapter for sending fiscal receipt data to CloudKassir after payment confirmation or refund.",
    "status": "draft",
    "implementationStatus": "partial",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-cloudkassir. Receipt field mapping must be confirmed on a CloudKassir sandbox or test cash register before production use."
  },
  {
    "code": "cloudkassir-finance-fiscal-receipt-get-status",
    "capabilityCode": "cloudkassir-finance-fiscal-receipt-get-status",
    "providerCode": "cloudkassir",
    "operationCode": "finance.fiscalReceipt.getStatus",
    "title": "CloudKassir get receipt status adapter",
    "summary": "Maps finance.fiscalReceipt.getStatus to CloudKassir receipt state reconciliation APIs.",
    "description": "Planned HTTP adapter for checking whether a CloudKassir fiscal receipt was processed successfully.",
    "status": "draft",
    "implementationStatus": "partial",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-cloudkassir. Receipt notifications should be supported in the runtime service; polling is for reconciliation."
  },
  {
    "code": "dellin-logistics-shipment-create",
    "capabilityCode": "dellin-logistics-shipment-create",
    "providerCode": "dellin",
    "operationCode": "logistics.shipment.create",
    "title": "Delovye Linii create shipment adapter",
    "summary": "Maps the universal shipment creation contract to Delovye Linii shipment APIs.",
    "description": "Planned adapter entry for creating Delovye Linii shipments through the logistics.shipment.create contract.",
    "status": "draft",
    "implementationStatus": "stub",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime implementation is not ready yet."
  },
  {
    "code": "dellin-logistics-shipment-list",
    "capabilityCode": "dellin-logistics-shipment-list",
    "providerCode": "dellin",
    "operationCode": "logistics.shipment.list",
    "title": "Delovye Linii shipment list adapter",
    "summary": "Maps the universal shipment list contract to Delovye Linii order journal.",
    "description": "Implemented in @opsregistry/adapter-dellin for logistics.shipment.list.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires appKey and an authorized user session, PAT or login/password. Uses /v3/orders.json."
  },
  {
    "code": "dellin-logistics-shipment-quote",
    "capabilityCode": "dellin-logistics-shipment-quote",
    "providerCode": "dellin",
    "operationCode": "logistics.shipment.quote",
    "title": "Delovye Linii shipment quote adapter",
    "summary": "Maps the universal shipment quote contract to the Delovye Linii calculator.",
    "description": "Implemented in @opsregistry/adapter-dellin for logistics.shipment.quote.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires appKey; optional customer session enables personal pricing."
  },
  {
    "code": "dellin-logistics-shipment-track",
    "capabilityCode": "dellin-logistics-shipment-track",
    "providerCode": "dellin",
    "operationCode": "logistics.shipment.track",
    "title": "Delovye Linii shipment tracking adapter",
    "summary": "Maps the universal shipment tracking contract to Delovye Linii order state APIs.",
    "description": "Implemented in @opsregistry/adapter-dellin for logistics.shipment.track.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires appKey and a customer session, PAT or login/password to obtain sessionID."
  },
  {
    "code": "nrgtk-logistics-shipment-create",
    "capabilityCode": "nrgtk-logistics-shipment-create",
    "providerCode": "nrgtk",
    "operationCode": "logistics.shipment.create",
    "title": "NRGTK create shipment adapter",
    "summary": "Maps the universal shipment creation contract to NRGTK shipment APIs.",
    "description": "Planned adapter entry for creating NRGTK shipments through the logistics.shipment.create contract.",
    "status": "draft",
    "implementationStatus": "stub",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime implementation is not ready yet."
  },
  {
    "code": "nrgtk-logistics-shipment-list",
    "capabilityCode": "nrgtk-logistics-shipment-list",
    "providerCode": "nrgtk",
    "operationCode": "logistics.shipment.list",
    "title": "TK Energia shipment list adapter",
    "summary": "Maps the universal shipment list contract to TK Energia /waybills.",
    "description": "Implemented in @opsregistry/adapter-nrgtk for logistics.shipment.list.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires a developer token and JWT session token accepted by the TK Energia account waybills endpoint."
  },
  {
    "code": "nrgtk-logistics-shipment-quote",
    "capabilityCode": "nrgtk-logistics-shipment-quote",
    "providerCode": "nrgtk",
    "operationCode": "logistics.shipment.quote",
    "title": "NRGTK shipment quote adapter",
    "summary": "Maps the universal shipment quote contract to the NRGTK price API.",
    "description": "Implemented in @opsregistry/adapter-nrgtk for logistics.shipment.quote.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires developer token; optional clientId enables customer-specific calculation."
  },
  {
    "code": "nrgtk-logistics-shipment-track",
    "capabilityCode": "nrgtk-logistics-shipment-track",
    "providerCode": "nrgtk",
    "operationCode": "logistics.shipment.track",
    "title": "TK Energia shipment tracking adapter",
    "summary": "Maps the universal shipment tracking contract to TK Energia waybill state endpoints.",
    "description": "Implemented in @opsregistry/adapter-nrgtk for logistics.shipment.track.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires a developer token. Tracking by waybill document number uses /waybills/states; history by internal waybill id requires a session token."
  },
  {
    "code": "pecom-logistics-pickup-create",
    "capabilityCode": "pecom-logistics-pickup-create",
    "providerCode": "pecom",
    "operationCode": "logistics.pickup.create",
    "title": "PEK pickup creation adapter",
    "summary": "Maps universal pickup creation to PEK cargo pickup requests.",
    "description": "Implemented in @opsregistry/adapter-pecom through /cargopickup/submit/.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "The PEK simplified pickup service must be enabled for the customer account."
  },
  {
    "code": "pecom-logistics-shipment-create",
    "capabilityCode": "pecom-logistics-shipment-create",
    "providerCode": "pecom",
    "operationCode": "logistics.shipment.create",
    "title": "PEK shipment creation adapter",
    "summary": "Maps universal shipment creation to PEK preregistration.",
    "description": "Implemented in @opsregistry/adapter-pecom through /preregistration/submit/.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Pickup is deliberately created through logistics.pickup.create."
  },
  {
    "code": "pecom-logistics-shipment-list",
    "capabilityCode": "pecom-logistics-shipment-list",
    "providerCode": "pecom",
    "operationCode": "logistics.shipment.list",
    "title": "PEK shipment list adapter",
    "summary": "Maps the universal shipment list contract to PEK /cargos/listallorderbylogin/.",
    "description": "Implemented in @opsregistry/adapter-pecom for logistics.shipment.list.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires PEK login and API key with personal account access to counterparties."
  },
  {
    "code": "pecom-logistics-shipment-quote",
    "capabilityCode": "pecom-logistics-shipment-quote",
    "providerCode": "pecom",
    "operationCode": "logistics.shipment.quote",
    "title": "PEK shipment quote adapter",
    "summary": "Maps universal shipment quote input to PEK calculators.",
    "description": "Implemented in @opsregistry/adapter-pecom for public and authorized logistics.shipment.quote.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "public",
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Public mode uses PEK calculator; authorized mode uses the customer API."
  },
  {
    "code": "pecom-logistics-shipment-track",
    "capabilityCode": "pecom-logistics-shipment-track",
    "providerCode": "pecom",
    "operationCode": "logistics.shipment.track",
    "title": "PEK shipment tracking adapter",
    "summary": "Maps the universal shipment tracking contract to PEK cargo status and full status history.",
    "description": "Implemented in @opsregistry/adapter-pecom for logistics.shipment.track.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires authorized PEK API access and a cargo code or compatible tracking identifier."
  },
  {
    "code": "polza-ai-documents-invoice-recognize",
    "providerCode": "polza-ai",
    "operationCode": "documents.invoice.recognize",
    "title": "Polza invoice recognition",
    "summary": "One stateless structured recognition request without tools.",
    "description": "Prepared pages, strict schema, budget callback before inference, no retries. Verified image accounting for GPT-5.4 Nano. Consumer reviews extracted fields before use.",
    "status": "draft",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "capabilityCode": "polza-ai-documents-invoice-recognize",
    "implementationStatus": "ready",
    "kind": "http",
    "notes": "Runtime @opsregistry/adapter-polza-ai 0.5.0; prepared page extraction in adapter-openai-compatible 0.4.0 requires Poppler for PDF. Credentials remain consumer-owned. Unknown charges retain consumer budget reservation."
  },
  {
    "code": "polza-ai-it-ai-response-create",
    "providerCode": "polza-ai",
    "operationCode": "it.aiResponse.create",
    "title": "Polza AI Responses adapter",
    "summary": "Bounded AI responses with server-owned MCP tool execution and approvals.",
    "description": "Stateless Responses API, consumer-owned history, local authenticated MCP loop, explicit write approvals and usage.cost_rub accounting. No ERP dependency.",
    "status": "draft",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "capabilityCode": "polza-ai-it-ai-response-create",
    "implementationStatus": "ready",
    "kind": "http",
    "notes": "Runtime @opsregistry/adapter-polza-ai@0.4.1. Consumer must bind state to principal and atomically claim continuations. Pending writes never execute before approval. No retries; unknown costs retain reservation."
  },
  {
    "code": "saby-documents-exchange-document-accept-cancellation",
    "capabilityCode": "saby-documents-exchange-document-accept-cancellation",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.acceptCancellation",
    "title": "Saby exchange document cancellation acceptance adapter",
    "summary": "Maps universal cancellation acceptance to a Saby workflow action.",
    "description": "Implemented in @opsregistry/adapter-saby by reading the current workflow stage and executing the matching cancellation acceptance action.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires explicit legal confirmation and rejects ambiguous workflow actions instead of guessing."
  },
  {
    "code": "saby-documents-exchange-document-accept",
    "capabilityCode": "saby-documents-exchange-document-accept",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.accept",
    "title": "Saby exchange document acceptance adapter",
    "summary": "Maps universal document acceptance to a Saby workflow action.",
    "description": "Implemented in @opsregistry/adapter-saby by reading the current workflow stage and calling СБИС.ВыполнитьДействие for the matching approval action.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires explicit legal confirmation. Supports package-wide and selected-attachment processing. The adapter rejects ambiguous workflow actions instead of guessing."
  },
  {
    "code": "saby-documents-exchange-document-complete-signing",
    "capabilityCode": "saby-documents-exchange-document-complete-signing",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.completeSigning",
    "title": "Saby external signing completion adapter",
    "summary": "Maps universal detached signatures to СБИС.ВыполнитьДействие.",
    "description": "Implemented in @opsregistry/adapter-saby by attaching Base64 signature files to exact Saby attachment identifiers and executing the prepared workflow action.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires explicit legal confirmation. Private keys and hardware-token PINs never reach the adapter."
  },
  {
    "code": "saby-documents-exchange-document-create",
    "capabilityCode": "saby-documents-exchange-document-create",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.create",
    "title": "Saby exchange document draft adapter",
    "summary": "Maps the universal draft contract to СБИС.ЗаписатьДокумент.",
    "description": "Implemented in @opsregistry/adapter-saby for documents.exchangeDocument.create.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Creates a draft only. Saby does not document an idempotency key, so the adapter rejects one instead of silently ignoring it."
  },
  {
    "code": "saby-documents-exchange-document-get",
    "capabilityCode": "saby-documents-exchange-document-get",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.get",
    "title": "Saby exchange document read adapter",
    "summary": "Maps the universal document read contract to СБИС.ПрочитатьДокумент.",
    "description": "Implemented in @opsregistry/adapter-saby for documents.exchangeDocument.get.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires Saby service application credentials. Temporary provider download URLs are returned with their original provider limitations documented by the adapter."
  },
  {
    "code": "saby-documents-exchange-document-list-changes",
    "capabilityCode": "saby-documents-exchange-document-list-changes",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.listChanges",
    "title": "Saby exchange document changes adapter",
    "summary": "Maps universal incremental document synchronization to СБИС.СписокИзменений.",
    "description": "Implemented in @opsregistry/adapter-saby for documents.exchangeDocument.listChanges.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires Saby service application credentials. The opaque cursor preserves provider event, document and timestamp coordinates required for safe polling."
  },
  {
    "code": "saby-documents-exchange-document-list",
    "capabilityCode": "saby-documents-exchange-document-list",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.list",
    "title": "Saby exchange document list adapter",
    "summary": "Maps typed journals and all-type incoming/outgoing registries to Saby document APIs.",
    "description": "Implemented in @opsregistry/adapter-saby for documents.exchangeDocument.list.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Service credentials required. With documentType uses СБИС.СписокДокументов; without type uses СБИС.СписокДокументовПоСобытиям and requires incoming/outgoing direction. Status filters apply per page; nextPageToken must be followed even after empty items. Pending signature/cancellation filters read ambiguous document workflows, at most five documents per page."
  },
  {
    "code": "saby-documents-exchange-document-prepare-signing",
    "capabilityCode": "saby-documents-exchange-document-prepare-signing",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.prepareSigning",
    "title": "Saby external signing preparation adapter",
    "summary": "Maps universal signing preparation to СБИС.ПодготовитьДействие.",
    "description": "Implemented in @opsregistry/adapter-saby with exact revision, stage, action, certificate thumbprint and optional attachment selection.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Returns only targets for which Saby supplied a cryptographic hash. Download links are temporary."
  },
  {
    "code": "saby-documents-exchange-document-reject-cancellation",
    "capabilityCode": "saby-documents-exchange-document-reject-cancellation",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.rejectCancellation",
    "title": "Saby exchange document cancellation rejection adapter",
    "summary": "Maps universal cancellation rejection to a Saby workflow action.",
    "description": "Implemented in @opsregistry/adapter-saby by reading the current workflow stage and executing the matching cancellation rejection action with a mandatory reason.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires explicit legal confirmation and rejects ambiguous workflow actions instead of guessing."
  },
  {
    "code": "saby-documents-exchange-document-reject",
    "capabilityCode": "saby-documents-exchange-document-reject",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.reject",
    "title": "Saby exchange document rejection adapter",
    "summary": "Maps universal document rejection to a Saby workflow action.",
    "description": "Implemented in @opsregistry/adapter-saby by reading the current workflow stage and calling СБИС.ВыполнитьДействие for the matching rejection action and reason.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires explicit legal confirmation and a rejection reason. Supports package-wide and selected-attachment processing. The adapter rejects ambiguous workflow actions instead of guessing."
  },
  {
    "code": "saby-documents-exchange-document-request-cancellation",
    "capabilityCode": "saby-documents-exchange-document-request-cancellation",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.requestCancellation",
    "title": "Saby exchange document cancellation request adapter",
    "summary": "Maps a universal cancellation request to the Saby cancellation workflow.",
    "description": "Implemented in @opsregistry/adapter-saby through СБИС.ВыполнитьДействие with the cancellation stage, reason, optional attachment selection and configured signature mode.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires explicit legal confirmation. Completion starts an agreement workflow and does not by itself mean that the document is cancelled."
  },
  {
    "code": "saby-documents-exchange-document-send",
    "capabilityCode": "saby-documents-exchange-document-send",
    "providerCode": "saby",
    "operationCode": "documents.exchangeDocument.send",
    "title": "Saby exchange document send adapter",
    "summary": "Maps the universal send contract to СБИС.ВыполнитьДействие.",
    "description": "Implemented in @opsregistry/adapter-saby for documents.exchangeDocument.send.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires explicit legal confirmation. Supports provider-managed and deferred signatures; unsigned delivery is rejected because the Saby workflow controls signature requirements."
  },
  {
    "code": "tbank-finance-bank-transfer-create-draft",
    "providerCode": "tbank",
    "operationCode": "finance.bankTransfer.createDraft",
    "title": "TBank corporate payment draft",
    "summary": "Creates a domestic RUB payment draft through T-API; authorization remains in the bank. Creation is not idempotent and is never automatically retried.",
    "description": "Creates a domestic RUB payment draft through T-API; authorization remains in the bank. Creation is not idempotent and is never automatically retried.",
    "status": "draft",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "capabilityCode": "tbank-finance-bank-transfer-create-draft",
    "implementationStatus": "implemented",
    "kind": "http",
    "notes": "Runtime: @opsregistry/adapter-tbank@0.2.1, createTbankBusinessAdapter. Tested against fixtures from official OpenAPI; not live-verified. Bank tokens are binding secrets. Creates a domestic RUB payment draft through T-API; authorization remains in the bank. Creation is not idempotent and is never automatically retried."
  },
  {
    "code": "tbank-finance-bank-transfer-get-status",
    "providerCode": "tbank",
    "operationCode": "finance.bankTransfer.getStatus",
    "title": "TBank corporate document status",
    "summary": "Reads the status of a T-API payment draft. Execution status alone does not verify unchanged amount and beneficiary; reconcile with bank evidence before marking an order paid.",
    "description": "Reads the status of a T-API payment draft. Execution status alone does not verify unchanged amount and beneficiary; reconcile with bank evidence before marking an order paid.",
    "status": "draft",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "capabilityCode": "tbank-finance-bank-transfer-get-status",
    "implementationStatus": "implemented",
    "kind": "http",
    "notes": "Runtime: @opsregistry/adapter-tbank@0.2.1, createTbankBusinessAdapter. Tested against fixtures from official OpenAPI; not live-verified. Bank tokens are binding secrets. Reads the status of a T-API payment draft. Execution status alone does not verify unchanged amount and beneficiary; reconcile with bank evidence before marking an order paid."
  },
  {
    "code": "tbank-finance-bank-transfer-verify-execution",
    "providerCode": "tbank",
    "operationCode": "finance.bankTransfer.verifyExecution",
    "title": "TBank outgoing payment execution verification",
    "summary": "Verify executed draft details against a uniquely referenced posted debit via T-API.",
    "description": "Reads document status, then paginated account operations. Requires a unique executionReference in purpose, complete matching RUB debit details and one candidate. Missing permissions, partial pages and ambiguous evidence cannot confirm payment.",
    "status": "draft",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "capabilityCode": "tbank-finance-bank-transfer-verify-execution",
    "implementationStatus": "implemented",
    "kind": "http",
    "notes": "Runtime: @opsregistry/adapter-tbank@0.3.0, createTbankBusinessAdapter.verifyExecution. Requires payment status and account operations scopes. Fixture-tested against official OpenAPI; not live-verified. No second payment is created. No VARM dependency."
  },
  {
    "code": "tbank-finance-fiscal-receipt-create-closing",
    "capabilityCode": "tbank-finance-fiscal-receipt-create-closing",
    "providerCode": "tbank",
    "operationCode": "finance.fiscalReceipt.createClosing",
    "title": "TBank create closing receipt adapter",
    "summary": "Maps finance.fiscalReceipt.createClosing to TBank Internet Acquiring /cashbox/SendClosingReceipt.",
    "description": "HTTP adapter for sending a closing fiscal receipt to TBank after an acquiring payment has been confirmed. The operation is used when the original payment receipt had PaymentMethod fullPrepayment, prepayment or advance and the merchant later transfers the goods or services.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-tbank. Maps providerPaymentId to TBank PaymentId and receipt data to Receipt. TBank requires the payment session to be CONFIRMED and the original payment to contain Receipt with at least one prepayment or advance item."
  },
  {
    "code": "tbank-finance-merchant-payment-cancel",
    "capabilityCode": "tbank-finance-merchant-payment-cancel",
    "providerCode": "tbank",
    "operationCode": "finance.merchantPayment.cancel",
    "title": "TBank cancel payment adapter",
    "summary": "Maps finance.merchantPayment.cancel to TBank Internet Acquiring cancellation or reversal APIs.",
    "description": "Planned HTTP adapter for cancelling unfinished payments or reversing completed payments when the provider state allows it.",
    "status": "draft",
    "implementationStatus": "implemented",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-tbank. Optional receipt data is mapped to TBank Cancel.Receipt for fiscalized partial cancellation and refund scenarios."
  },
  {
    "code": "tbank-finance-merchant-payment-create-qr",
    "capabilityCode": "tbank-finance-merchant-payment-create-qr",
    "providerCode": "tbank",
    "operationCode": "finance.merchantPayment.createQr",
    "title": "TBank create payment QR adapter",
    "summary": "Maps finance.merchantPayment.createQr to TBank Internet Acquiring GetQr for SBP QR payments.",
    "description": "Planned HTTP adapter for obtaining SBP QR data for a previously created TBank acquiring payment.",
    "status": "draft",
    "implementationStatus": "partial",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-tbank. The orchestrator should call finance.merchantPayment.create before requesting a QR code."
  },
  {
    "code": "tbank-finance-merchant-payment-create",
    "capabilityCode": "tbank-finance-merchant-payment-create",
    "providerCode": "tbank",
    "operationCode": "finance.merchantPayment.create",
    "title": "TBank create payment adapter",
    "summary": "Maps finance.merchantPayment.create to TBank Internet Acquiring Init.",
    "description": "HTTP adapter for creating a TBank acquiring payment attempt from the universal finance.merchantPayment.create contract.",
    "status": "draft",
    "implementationStatus": "implemented",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-tbank. The same operation is used for card and SBP QR payment initiation; QR payload creation is covered by finance.merchantPayment.createQr. Optional receipt data is mapped to TBank Init.Receipt for online cash register fiscalization."
  },
  {
    "code": "tbank-finance-merchant-payment-get-status",
    "capabilityCode": "tbank-finance-merchant-payment-get-status",
    "providerCode": "tbank",
    "operationCode": "finance.merchantPayment.getStatus",
    "title": "TBank get payment status adapter",
    "summary": "Maps finance.merchantPayment.getStatus to TBank Internet Acquiring payment state APIs.",
    "description": "Planned HTTP adapter for polling TBank acquiring payment status when webhook delivery is delayed or reconciliation is required.",
    "status": "draft",
    "implementationStatus": "partial",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-tbank. Payment notifications should still be the primary state transition source in the application runtime."
  },
  {
    "code": "timeweb-s3-storage-object-delete-file",
    "capabilityCode": "timeweb-s3-storage-object-delete-file",
    "providerCode": "timeweb-s3",
    "operationCode": "storage.object.deleteFile",
    "title": "Timeweb S3 delete file adapter",
    "summary": "Maps storage.object.deleteFile to S3 DeleteObject for Timeweb S3.",
    "description": "SDK adapter implementation for deleting objects from Timeweb S3 through the S3-compatible API.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "sdk",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-s3."
  },
  {
    "code": "timeweb-s3-storage-object-list",
    "capabilityCode": "timeweb-s3-storage-object-list",
    "providerCode": "timeweb-s3",
    "operationCode": "storage.object.list",
    "title": "Timeweb S3 list objects adapter",
    "summary": "Maps storage.object.list to S3 ListObjectsV2 for Timeweb S3.",
    "description": "SDK adapter implementation for listing objects in Timeweb S3 through the S3-compatible API.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "sdk",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-s3."
  },
  {
    "code": "timeweb-s3-storage-object-upload-file",
    "capabilityCode": "timeweb-s3-storage-object-upload-file",
    "providerCode": "timeweb-s3",
    "operationCode": "storage.object.uploadFile",
    "title": "Timeweb S3 upload file adapter",
    "summary": "Maps storage.object.uploadFile to S3 PutObject for Timeweb S3.",
    "description": "SDK adapter implementation for uploading objects to Timeweb S3 through the S3-compatible API.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "sdk",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-s3."
  },
  {
    "code": "tkkit-logistics-shipment-create",
    "capabilityCode": "tkkit-logistics-shipment-create",
    "providerCode": "tkkit",
    "operationCode": "logistics.shipment.create",
    "title": "TK KIT create shipment adapter",
    "summary": "Maps the universal shipment creation contract to TK KIT shipment APIs.",
    "description": "Planned adapter entry for creating TK KIT shipments through the logistics.shipment.create contract.",
    "status": "draft",
    "implementationStatus": "stub",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime implementation is not ready yet."
  },
  {
    "code": "tkkit-logistics-shipment-list",
    "capabilityCode": "tkkit-logistics-shipment-list",
    "providerCode": "tkkit",
    "operationCode": "logistics.shipment.list",
    "title": "TK KIT shipment list adapter",
    "summary": "Maps the universal shipment list contract to TK KIT /1.0/order/get-list.",
    "description": "Implemented in @opsregistry/adapter-tkkit for logistics.shipment.list.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires TK KIT Bearer token. TK KIT limits the order list period to 90 days."
  },
  {
    "code": "tkkit-logistics-shipment-quote",
    "capabilityCode": "tkkit-logistics-shipment-quote",
    "providerCode": "tkkit",
    "operationCode": "logistics.shipment.quote",
    "title": "TK KIT shipment quote adapter",
    "summary": "Maps the universal shipment quote contract to the TK KIT calculator.",
    "description": "Implemented in @opsregistry/adapter-tkkit for logistics.shipment.quote.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires authorized TK KIT API access."
  },
  {
    "code": "tkkit-logistics-shipment-track",
    "capabilityCode": "tkkit-logistics-shipment-track",
    "providerCode": "tkkit",
    "operationCode": "logistics.shipment.track",
    "title": "TK KIT shipment tracking adapter",
    "summary": "Maps the universal shipment tracking contract to TK KIT order status history.",
    "description": "Implemented in @opsregistry/adapter-tkkit for logistics.shipment.track.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "http",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Requires a TK KIT Bearer token and a cargo number."
  },
  {
    "code": "yandex-ai-it-ai-response-create",
    "providerCode": "yandex-ai",
    "operationCode": "it.aiResponse.create",
    "title": "Yandex AI Studio Responses adapter",
    "summary": "Generate text responses and continue MCP approval flows.",
    "description": "OpenAI SDK against the Yandex AI Studio endpoint, deferred MCP discovery and explicit per-call MCP headers. No application-specific dependencies.",
    "status": "draft",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "capabilityCode": "yandex-ai-it-ai-response-create",
    "implementationStatus": "ready",
    "kind": "http",
    "notes": "Runtime @opsregistry/adapter-yandex-ai@0.2.0. Fixture-tested. Application must bind response IDs and approvals to an authenticated principal. No automatic retries; no streaming/background support."
  },
  {
    "code": "yandex-s3-storage-object-delete-file",
    "capabilityCode": "yandex-s3-storage-object-delete-file",
    "providerCode": "yandex-s3",
    "operationCode": "storage.object.deleteFile",
    "title": "Yandex S3 delete file adapter",
    "summary": "Maps storage.object.deleteFile to S3 DeleteObject for Yandex Object Storage.",
    "description": "SDK adapter implementation for deleting objects from Yandex Object Storage through the S3-compatible API.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "sdk",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-s3."
  },
  {
    "code": "yandex-s3-storage-object-list",
    "capabilityCode": "yandex-s3-storage-object-list",
    "providerCode": "yandex-s3",
    "operationCode": "storage.object.list",
    "title": "Yandex S3 list objects adapter",
    "summary": "Maps storage.object.list to S3 ListObjectsV2 for Yandex Object Storage.",
    "description": "SDK adapter implementation for listing objects in Yandex Object Storage through the S3-compatible API.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "sdk",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-s3."
  },
  {
    "code": "yandex-s3-storage-object-upload-file",
    "capabilityCode": "yandex-s3-storage-object-upload-file",
    "providerCode": "yandex-s3",
    "operationCode": "storage.object.uploadFile",
    "title": "Yandex S3 upload file adapter",
    "summary": "Maps storage.object.uploadFile to S3 PutObject for Yandex Object Storage.",
    "description": "SDK adapter implementation for uploading objects to Yandex Object Storage through the S3-compatible API.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "sdk",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-s3."
  },
  {
    "code": "yandex-s3-storage-website-delete",
    "capabilityCode": "yandex-s3-storage-website-delete",
    "providerCode": "yandex-s3",
    "operationCode": "storage.website.delete",
    "title": "Yandex S3 delete website configuration adapter",
    "summary": "Maps storage.website.delete to S3 DeleteBucketWebsite for Yandex Object Storage.",
    "description": "SDK adapter implementation for removing static website hosting configuration from Yandex Object Storage.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "sdk",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-s3."
  },
  {
    "code": "yandex-s3-storage-website-get",
    "capabilityCode": "yandex-s3-storage-website-get",
    "providerCode": "yandex-s3",
    "operationCode": "storage.website.get",
    "title": "Yandex S3 get website configuration adapter",
    "summary": "Maps storage.website.get to S3 GetBucketWebsite for Yandex Object Storage.",
    "description": "SDK adapter implementation for reading static website hosting configuration from Yandex Object Storage.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "sdk",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-s3."
  },
  {
    "code": "yandex-s3-storage-website-put",
    "capabilityCode": "yandex-s3-storage-website-put",
    "providerCode": "yandex-s3",
    "operationCode": "storage.website.put",
    "title": "Yandex S3 put website configuration adapter",
    "summary": "Maps storage.website.put to S3 PutBucketWebsite for Yandex Object Storage.",
    "description": "SDK adapter implementation for applying static website hosting configuration and routing rules to Yandex Object Storage.",
    "status": "draft",
    "implementationStatus": "ready",
    "kind": "sdk",
    "authModes": [
      "authorized"
    ],
    "defaultAuthMode": "authorized",
    "notes": "Runtime package: @opsregistry/adapter-s3."
  }
]
