{"schema_version":"webr.discovery.capabilities.v1","interface_version":"1.0","snapshot":{"schema_version":2,"snapshot_id":"1hp033r","generated_date":"2026-07-02"},"totals":{"capabilities":207,"invocable":207,"launch_ready":207,"registry_only":0,"status":{"agent-ready":207},"domain":{"analytics":2,"assist":2,"billing":15,"calendar":9,"core":68,"documents":15,"inbox":7,"intake":3,"integrations":13,"loop":3,"mdm":20,"media":6,"org":7,"phone":13,"platform":2,"skill":3,"studio":10,"wallet":2,"workspace":7}},"meta_tools":{"names":["search_capabilities","describe","invoke","dry_run"],"approximate_tokens":394},"access":{"register":{"method":"POST","path":"/register","idempotency_required":true,"idempotency":{"required":true,"format":"Idempotency-Key: String, 16-128 Zeichen, pro Mutation eindeutig (z.B. UUID)."},"fields":{"owner_email":"required","agent_email":"optional","app":"required"}},"organizations":{"method":"POST","path":"/organizations","idempotency_required":true,"idempotency":{"required":true,"format":"Idempotency-Key: String, 16-128 Zeichen, pro Mutation eindeutig (z.B. UUID)."},"authorization":"bootstrap_key","fields":{"owner_email":"required","agent_email":"optional","organization":"required"},"agent_otp_response_when_agent_email_is_set":{"correlation_id":"agent_otp_delivery.correlation_id","find_mail":"IMAP Subject contains 'Ref: <correlation_id>'","code_syntax":"Body line 'Code: <OTP>'"},"owner_otp_response":{"next_action":"Der Owner erhaelt einen Code per E-Mail. Sobald er ihn dir mitteilt, reiche ihn an POST /owner-otp/claim ein (Body {\"otp\":\"<code>\"}) mit deinem Installation-Key.","owner_mail":"The owner receives a copyable agent briefing containing Owner-Code: <OTP>, POST https://connect.webrichtung.de/owner-otp/claim and https://connect.webrichtung.de/llms.txt#owner-otp-claim."}},"owner_otp_claim":{"method":"POST","path":"/owner-otp/claim","idempotency_required":true,"idempotency":{"required":true,"format":"Idempotency-Key: String, 16-128 Zeichen, pro Mutation eindeutig (z.B. UUID)."},"authorization":"installation_key","fields":{"otp":"required"}},"agent_otp_verify":{"method":"POST","path":"/agent-otp/verify","idempotency_required":true,"idempotency":{"required":true,"format":"Idempotency-Key: String, 16-128 Zeichen, pro Mutation eindeutig (z.B. UUID)."},"authorization":"installation_key","required_when":"agent_email is set during register/bootstrap","fields":{"otp":"required"}},"agent_otp_resend":{"method":"POST","path":"/agent-otp/resend","idempotency_required":true,"idempotency":{"required":true,"format":"Idempotency-Key: String, 16-128 Zeichen, pro Mutation eindeutig (z.B. UUID)."},"authorization":"installation_key","required_when":"agent_email is set and the agent OTP is missing, expired or invalidated","response":{"correlation_id":"agent_otp_delivery.correlation_id","find_mail":"IMAP Subject contains 'Ref: <correlation_id>'","code_syntax":"Body line 'Code: <OTP>'"}},"owner_otp_resend":{"method":"POST","path":"/owner-otp/resend","idempotency_required":true,"idempotency":{"required":true,"format":"Idempotency-Key: String, 16-128 Zeichen, pro Mutation eindeutig (z.B. UUID)."},"authorization":"installation_key","response":{"next_action":"Der Owner erhaelt einen Code per E-Mail. Sobald er ihn dir mitteilt, reiche ihn an POST /owner-otp/claim ein (Body {\"otp\":\"<code>\"}) mit deinem Installation-Key."}}},"capabilities":[{"id":"analytics.events.read","domain":"analytics","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C8: bounded Rohereignis-Read fuer Website-Analytics, mit Property-/Zeit-/Fehlerfiltern; kein Ingest, keine Secrets.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract analytics.events.read v1.0.0","supabase ud_analytics_events.select under RLS"],"sources":["api","core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-04T12:00:00Z","summary":"Read raw Analytics events for the current organization.","description":"Lists recent rows from ud_analytics_events under RLS, optionally scoped to one property, time window, event name/category/source/outcome, errors only, or a text query. The gateway does not expose tracker ingest secrets and performs no writes.","keywords":["analytics","ereignisse","errors","events","read","traffic","website"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.analytics.events.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/analytics_events_read_v1_0_0Input","output":"#/components/schemas/analytics_events_read_v1_0_0Output"}},{"id":"analytics.stats.read","domain":"analytics","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C8: Besucher, Sessions, Seitenaufrufe, Events, Fehler, Top-Seiten und Serien als deterministische Gateway-Aggregation.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract analytics.stats.read v1.0.0","supabase ud_analytics_events.select under RLS"],"sources":["api","core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-04T12:00:00Z","summary":"Summarize website visitors, pageviews, events and errors.","description":"Reads a bounded Analytics event sample from ud_analytics_events under RLS and returns deterministic aggregates: visitors, sessions, pageviews, total events, errors, top pages, referrers, event names and a time series. For very high traffic windows the response marks truncated=true so agents know to narrow the window or increase sample_limit.","keywords":["analytics","besucher","errors","pageviews","seitenaufrufe","stats","traffic","visitors"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.analytics.stats.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/analytics_stats_read_v1_0_0Input","output":"#/components/schemas/analytics_stats_read_v1_0_0Output"}},{"id":"assist.artifact.list","domain":"assist","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C12: Chat-/Agent-Artefakte aus ud_artifacts org-/principal-sichtbar listen; read-only.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract assist.artifact.list v1.0.0","supabase ud_artifacts.select under RLS"],"sources":["agent","assist","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-04T12:00:00Z","summary":"List Assist chat artifacts visible to the principal.","description":"Lists non-archived chat/agent artifacts from ud_artifacts under RLS. Agents can filter by title/content query, artifact_type and source_type, and optionally include full content.","keywords":["artefakt","artifact","assist","briefvorlage","chat","templates","versions"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["assist:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.assist.artifact.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/assist_artifact_list_v1_0_0Input","output":"#/components/schemas/assist_artifact_list_v1_0_0Output"}},{"id":"assist.artifact.read","domain":"assist","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C12: einzelnes Assist-Artefakt inkl. Versionen lesen, z.B. Chat-erzeugte Briefvorlagen.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract assist.artifact.read v1.0.0","supabase ud_artifacts + ud_artifact_versions.select under RLS"],"sources":["agent","assist","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-04T12:00:00Z","summary":"Read one Assist artifact and optional versions.","description":"Reads one ud_artifacts row and, by default, its latest ud_artifact_versions rows under RLS. This exposes chat-created content such as letter templates without allowing mutation.","keywords":["artefakt","artifact","assist","briefvorlage","chat","templates","versions"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["assist:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.assist.artifact.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/assist_artifact_read_v1_0_0Input","output":"#/components/schemas/assist_artifact_read_v1_0_0Output"}},{"id":"billing.bank_account.save","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Save unter Prinzipal-JWT/RLS, Default-Reset wie UI.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_organization_bank_accounts.insert/update"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update an organization bank account.","description":"Saves one organization bank account under RLS for use in billing document profiles. If an active account is default, the previous default is cleared like in the current UI.","keywords":["account","bank","billing","iban","konto","save"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.bank_accounts:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.bank_account.save.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/billing_bank_account_save_v1_0_0Input","output":"#/components/schemas/billing_bank_account_save_v1_0_0Output"}},{"id":"billing.document.convert_order_to_invoice","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Draft-Konvertierung sales_order -> invoice ohne Finalisierung/Nummernvergabe.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase insert Beleg + Positionen"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Convert a sales-order draft into an invoice draft.","description":"Copies a sales order and its lines into a new invoice draft with payment_status=unpaid and balance=total. It never sends, finalizes, archives or assigns a final invoice number.","keywords":["billing","convert","document","draft","invoice","sales_order"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.documents:draft"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.document.convert_order_to_invoice.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Document conversion price from calibration stage 2.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/billing_document_convert_order_to_invoice_v1_0_0Input","output":"#/components/schemas/billing_document_convert_order_to_invoice_v1_0_0Output"}},{"id":"billing.document.convert_quote_to_order","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Draft-Konvertierung quote -> sales_order ohne Finalisierung/Nummernvergabe.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase insert Beleg + Positionen"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Convert a quote into a sales-order draft.","description":"Copies a quote and its lines into a new sales_order draft. Unlike the human UI finalization path, this agent capability does not require or create an accepted/final source status; it is a draft planning conversion only and never assigns a final number.","keywords":["billing","convert","document","draft","quote","sales_order"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.documents:draft"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.document.convert_quote_to_order.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Document conversion price from calibration stage 2.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/billing_document_convert_quote_to_order_v1_0_0Input","output":"#/components/schemas/billing_document_convert_quote_to_order_v1_0_0Output"}},{"id":"billing.document.create_draft","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; serverseitige Draft-/Steuerlogik, keine Finalisierung und keine Nummernvergabe.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_billing_documents.insert + lines"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create a quote, order or invoice draft without finalizing it.","description":"Creates exactly one draft billing document and its lines through Supabase RLS as the principal. The handler mirrors the current webr-core draft calculation: signed credit-note amounts, invoice/self-billing payment status, Reverse-Charge treatment for foreign EU customers with VAT ID, profile metadata in data, and number = null until a human finalizes the document.","keywords":["angebot","billing","document","draft","invoice","quote","rechnung","reverse-charge"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.documents:draft"],"approval":"conditional","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.document.create_draft.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Draft document price from final calibration.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/billing_document_create_draft_v1_0_0Input","output":"#/components/schemas/billing_document_create_draft_v1_0_0Output"}},{"id":"billing.document.facturx","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Preview via bestehendem Endpoint mit archive=false.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /billing/documents/facturx"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Render a Factur-X PDF preview for an invoice or credit note.","description":"Calls the existing /billing/documents/facturx endpoint with archive=false and the principal JWT. The upstream endpoint accepts invoices and credit notes; draft preview is allowed, finalization is not performed.","keywords":["billing","document","e-rechnung","facturx","invoice","zugferd"],"risk_level":"medium","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.documents:draft"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"billing_e_invoice_preview","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Final calibration: E-invoice preview costs 0.02 credits because the API output lacks an explicit draft-preview marker.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":45},"component_schemas":{"input":"#/components/schemas/billing_document_facturx_v1_0_0Input","output":"#/components/schemas/billing_document_facturx_v1_0_0Output"}},{"id":"billing.document.list","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Read-Companion mit UI-kompatiblen Filtern.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_billing_documents.select"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List billing documents visible to the installation organization.","description":"Lists quotes, sales orders, invoices, credit notes and self-billing invoices through Supabase RLS. Filters mirror the current finance UI list/search path and never mutate document status or numbers.","keywords":["belege","billing","document","list","rechnung","search"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.documents:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.document.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/billing_document_list_v1_0_0Input","output":"#/components/schemas/billing_document_list_v1_0_0Output"}},{"id":"billing.document.pdf","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Preview via bestehendem Endpoint mit archive=false.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /billing/documents/pdf"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Render a billing document PDF preview through the existing API.","description":"Calls the existing /billing/documents/pdf endpoint with archive=false and the principal JWT. Drafts are preview-only; archival and final status transitions stay outside this slice.","keywords":["beleg","billing","document","pdf","preview","render"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.documents:draft"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.document.pdf.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"PDF preview read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":45},"component_schemas":{"input":"#/components/schemas/billing_document_pdf_v1_0_0Input","output":"#/components/schemas/billing_document_pdf_v1_0_0Output"}},{"id":"billing.document.read","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; liest Beleg, Positionen und Zahlungen unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_billing_documents/-lines/-payments.select"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one billing document with lines and payments.","description":"Returns one billing document, its line items and recorded payments under the existing organization RLS policies. Missing or foreign-organization documents return not_found without leaking data.","keywords":["beleg","billing","document","lines","payments","read"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.documents:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.document.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/billing_document_read_v1_0_0Input","output":"#/components/schemas/billing_document_read_v1_0_0Output"}},{"id":"billing.document.search","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; alle 5 Belegtypen, Suche ueber Nummer/Titel/Gegenpartei.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_billing_documents.select"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search billing documents by number, title or counterparty.","description":"Searches the same RLS-protected billing document set as billing.document.list, with the search field mapped to number, title, counterparty name and counterparty email.","keywords":["angebot","billing","document","find","rechnung","search"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.documents:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.document.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/billing_document_search_v1_0_0Input","output":"#/components/schemas/billing_document_search_v1_0_0Output"}},{"id":"billing.document.xrechnung","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Preview via bestehendem Endpoint mit archive=false.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /billing/documents/xrechnung"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Render an XRechnung XML preview through the existing API.","description":"Calls the existing /billing/documents/xrechnung endpoint with archive=false and the principal JWT. The capability returns the XML as base64 plus validation summary; archival is intentionally not exposed.","keywords":["billing","document","e-rechnung","invoice","xml","xrechnung"],"risk_level":"medium","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.documents:draft"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"billing_e_invoice_preview","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Final calibration: E-invoice preview costs 0.02 credits because the API output lacks an explicit draft-preview marker.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":45},"component_schemas":{"input":"#/components/schemas/billing_document_xrechnung_v1_0_0Input","output":"#/components/schemas/billing_document_xrechnung_v1_0_0Output"}},{"id":"billing.item.search","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; read-only Item-Suche unter RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_billing_items.select"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search active billing items.","description":"Searches organization billing items by name, SKU or description under RLS. The capability is read-only and does not create or update item master data.","keywords":["billing","item","leistung","produkt","search","sku"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.items:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.item.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/billing_item_search_v1_0_0Input","output":"#/components/schemas/billing_item_search_v1_0_0Output"}},{"id":"billing.payment.list","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; read-only Zahlungsliste unter RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_billing_payments.select"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List billing payments for the organization or one document.","description":"Lists recorded billing payments visible under RLS. It is read-only and does not reconcile or modify document balances.","keywords":["billing","list","payment","payments","zahlung"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.payments:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.payment.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/billing_payment_list_v1_0_0Input","output":"#/components/schemas/billing_payment_list_v1_0_0Output"}},{"id":"billing.payment.record","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Zahlung erfassen + Balance/Payment-Status aktualisieren, kein Provider-Call.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_billing_payments.insert + Beleg-Update"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Record a completed payment for an invoice or self-billing invoice.","description":"Inserts one completed payment under RLS and recalculates the target document balance/payment_status from completed and imported payments. It records accounting state only; it does not call a payment provider and does not finalize a billing document.","keywords":["billing","invoice","paid","payment","record","zahlung"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.payments:record"],"approval":"conditional","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.payment.record.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Final calibration for payment.record.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/billing_payment_record_v1_0_0Input","output":"#/components/schemas/billing_payment_record_v1_0_0Output"}},{"id":"billing.profile.save","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Save unter Prinzipal-JWT/RLS, Default-Reset wie UI.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_billing_document_profiles.insert/update"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update a billing document profile.","description":"Saves one billing document profile under RLS. If is_default is true or omitted, the handler mirrors the UI by clearing the previous default profile in the same organization before saving this profile.","keywords":["billing","faktura","issuer","profile","save","settings"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.profile:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.profile.save.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/billing_profile_save_v1_0_0Input","output":"#/components/schemas/billing_profile_save_v1_0_0Output"}},{"id":"billing.reminder.list","domain":"billing","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; strikt read-only, kein Versand/keine Aussenwirkung.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_billing_reminders.select"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List imported billing reminders without sending anything.","description":"Reads billing reminder records under RLS. The capability is intentionally read-only: it never schedules, renders or sends reminder emails, letters or other outbound communication.","keywords":["billing","list","mahnung","read","reminder"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.reminders:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.billing.reminder.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/billing_reminder_list_v1_0_0Input","output":"#/components/schemas/billing_reminder_list_v1_0_0Output"}},{"id":"calendar.availability.manage","domain":"calendar","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; availability.get/replace ueber bestehende /calendar/availability-Endpunkte mit Prinzipal-JWT, Idempotency-Key, Dry-Run, Audit und Replace-Idempotenztest.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["GET/PUT /calendar/availability"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read or replace native calendar availability rules.","description":"Wraps the existing /calendar/availability GET and PUT endpoints. PUT is a full replace in the existing API and is idempotent for the same rule set; the gateway additionally requires an idempotency key for invoke.","keywords":["availability","calendar","replace","rules","verfuegbarkeit","zeiten"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["calendar:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.calendar.availability.manage.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Calendar write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/calendar_availability_manage_v1_0_0Input","output":"#/components/schemas/calendar_availability_manage_v1_0_0Output"}},{"id":"calendar.booking_link_template.manage","domain":"calendar","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; booking_link_template.list/create/update/archive ueber bestehende Endpunkte mit Prinzipal-JWT, Idempotency-Key, Dry-Run und Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["GET/POST /calendar/booking-link-templates","PATCH /calendar/booking-link-templates/:id"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List, create, update or archive booking-link templates.","description":"Wraps /calendar/booking-link-templates GET, POST and PATCH. Archive is represented as a PATCH to status=archived because the existing API has no DELETE endpoint.","keywords":["booking","booking_link","calendar","link","template","vorlage"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["calendar:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.calendar.booking_link_template.manage.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Calendar write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/calendar_booking_link_template_manage_v1_0_0Input","output":"#/components/schemas/calendar_booking_link_template_manage_v1_0_0Output"}},{"id":"calendar.booking_link.issue_secret","domain":"calendar","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; eigener risk-medium Contract fuer einmalige Klartext-Secret-Ausgabe. Audit-/Manage-Outputs redigieren secret/secret_hash; Test belegt kein Klartext-Secret im Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /calendar/booking-links/:id/issue-secret"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Issue a one-time cleartext secret for a booking link.","description":"Calls POST /calendar/booking-links/:id/issue-secret. The cleartext secret is returned only in this response and is never included in audit context, effects, warnings or raw upstream payloads.","keywords":["booking_link","calendar","copy","issue","secret","terminlink"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["calendar:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.calendar.booking_link.issue_secret.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Secret rotation price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/calendar_booking_link_issue_secret_v1_0_0Input","output":"#/components/schemas/calendar_booking_link_issue_secret_v1_0_0Output"}},{"id":"calendar.booking_link.manage","domain":"calendar","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; booking_link.list/create/update/revoke ueber bestehende Endpunkte mit Prinzipal-JWT, Idempotency-Key, Dry-Run, Audit und Secret-Redaktion. Bulk bleibt bewusst ausserhalb v1, weil der Bestand keinen Item-Dedupe-Contract hat.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["GET/POST/PATCH /calendar/booking-links(:id)"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List, create, update or revoke personalized booking links.","description":"Wraps /calendar/booking-links GET, POST and PATCH. Revoke is represented as status=revoked because the existing API has no DELETE endpoint. Secrets returned by the existing create endpoint are deliberately redacted from this manage contract; use calendar.booking_link.issue_secret for the one-time cleartext secret response.","keywords":["booking_link","calendar","link","recipient","revoke","terminlink"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["calendar:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.calendar.booking_link.manage.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Calendar write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/calendar_booking_link_manage_v1_0_0Input","output":"#/components/schemas/calendar_booking_link_manage_v1_0_0Output"}},{"id":"calendar.booking.manage","domain":"calendar","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; booking.list/update/cancel ueber bestehende /calendar/bookings-Endpunkte mit Prinzipal-JWT, Idempotency-Key, Dry-Run und Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["GET/POST /calendar/bookings","PATCH /calendar/bookings/:id"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List, update or cancel native calendar bookings.","description":"Wraps the existing /calendar/bookings GET and /calendar/bookings/:id PATCH endpoints. Update and cancel are idempotent through the gateway; list is included because the current registry groups booking read and write surfaces under one manage capability.","keywords":["booking","calendar","cancel","storno","termin","update"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["calendar:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.calendar.booking.manage.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Calendar write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/calendar_booking_manage_v1_0_0Input","output":"#/components/schemas/calendar_booking_manage_v1_0_0Output"}},{"id":"calendar.calendar.manage","domain":"calendar","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; calendar.list/create/update ueber bestehende Endpunkte mit Prinzipal-JWT, Idempotency-Key, Dry-Run und Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["GET/POST /calendar/calendars","PATCH /calendar/calendars/:id"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List, create or update native organization calendars.","description":"Wraps the existing /calendar/calendars GET, POST and PATCH endpoints. Organization calendar creation and updates stay in the existing API; the gateway adds strict schema validation, idempotency, dry-run and audit.","keywords":["calendar","calendars","kalender","manage","organization","resource"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["calendar:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.calendar.calendar.manage.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Calendar write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/calendar_calendar_manage_v1_0_0Input","output":"#/components/schemas/calendar_calendar_manage_v1_0_0Output"}},{"id":"calendar.event_type.book","domain":"calendar","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Live-Konformanz LAUF2 am 2026-07-03 bestanden: Slots, Einzelbuchung und Double-Booking-Race 200/409 mit Prinzipal-JWT, Idempotency-Key und Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["GET /calendar/event-types/:id/slots","POST /calendar/event-types/:id/book"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Book one available slot for a native calendar event type.","description":"Calls the existing /calendar/event-types/:id/book endpoint. The gateway requires an idempotency key so agent retries cannot create duplicate bookings; the existing endpoint verifies the selected slot immediately before insert.","keywords":["book","booking","calendar","idempotency","slot","termin"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["calendar:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.calendar.event_type.book.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Booking price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/calendar_event_type_book_v1_0_0Input","output":"#/components/schemas/calendar_event_type_book_v1_0_0Output"}},{"id":"calendar.event_type.manage","domain":"calendar","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; event_type.list/create/update ueber bestehende Endpunkte mit Prinzipal-JWT, Idempotency-Key fuer Mutationen, Dry-Run und Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["GET/POST /calendar/event-types","PATCH /calendar/event-types/:id"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List, create or update native calendar event types.","description":"Wraps the existing /calendar/event-types GET, POST and PATCH endpoints. Create and update operations are idempotent at the gateway layer; list is included because the current registry groups these surfaces under one manage capability.","keywords":["calendar","duration","event","event_type","slot","terminart"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["calendar:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.calendar.event_type.manage.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Calendar write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/calendar_event_type_manage_v1_0_0Input","output":"#/components/schemas/calendar_event_type_manage_v1_0_0Output"}},{"id":"calendar.slots.list","domain":"calendar","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v1.0.0 im Gateway; Slots fuer Event-Type ueber bestehenden Endpoint mit Prinzipal-JWT, Schema, Dry-Run und Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["GET /calendar/slots"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List available slots for a native calendar event type.","description":"Calls the existing /calendar/slots endpoint with event_type_id, from and to. The endpoint computes availability from native calendar rules, existing bookings and resource mappings.","keywords":["availability","calendar","event_type","frei","slots","termin"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["calendar:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.calendar.slots.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/calendar_slots_list_v1_0_0Input","output":"#/components/schemas/calendar_slots_list_v1_0_0Output"}},{"id":"core.account.read","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C9: Account-360 mit nicht-locked Account plus verknuepften Contacts/Deals, read-only unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.account.read v1.0.0","supabase ud_accounts/ud_contacts/ud_deals.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read a Core account 360 view with linked contacts and deals.","description":"Loads one non-locked ud_accounts row plus linked ud_contacts and ud_deals through the principal JWT. The result is a normalized 360-degree account view for agents.","keywords":["360","account","detail","firma","kunde","read"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.account.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_account_read_v1_0_0Input","output":"#/components/schemas/core_account_read_v1_0_0Output"}},{"id":"core.account.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C9: Account-Suche mit Query, account_type, Limit/Offset und locked-Filter analog Core-UI.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.account.search v1.0.0","supabase ud_accounts.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search visible Core accounts for the current organization.","description":"Lists non-locked ud_accounts through the principal JWT. The search mirrors the Core account list filters for account type and common company/address fields while RLS remains the final organization boundary.","keywords":["account","firma","konto","kunde","kunden","list","search","suchen","unternehmen"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.account.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_account_search_v1_0_0Input","output":"#/components/schemas/core_account_search_v1_0_0Output"}},{"id":"core.account.upsert","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 4 Core-CRM: Basis-Account-Write mit account_id-Update, external_ref-Upsert, Idempotency-Key, Dry-Run, Audit und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract core.account.upsert v1.0.0","supabase ud_accounts insert/update/upsert under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update a basic Core account record.","description":"Writes the same basic account fields used by the Core UI. account_id updates an existing account; external_ref uses the existing organization-scoped external id index for durable upserts.","keywords":["account","create","firma","kunde","update","upsert"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.account.upsert.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_account_upsert_v1_0_0Input","output":"#/components/schemas/core_account_upsert_v1_0_0Output"}},{"id":"core.activity.read","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Read-only Activity-Detail unter Prinzipal-JWT/RLS; keine Activity-Writes exponiert.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract core.activity.read v1.0.0","supabase ud_activities.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one historical Core activity.","description":"Loads one ud_activities row through the principal JWT. The table remains read-only for agents in this slice.","keywords":["activity","aktivitaet","detail","history","read"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.activity.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_activity_read_v1_0_0Input","output":"#/components/schemas/core_activity_read_v1_0_0Output"}},{"id":"core.activity.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Read-only Activity-Suche unter Prinzipal-JWT/RLS; Modul bleibt schreibgeschuetzt.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.activity.search v1.0.0","supabase ud_activities.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search historical Core activities.","description":"Lists ud_activities through the principal JWT. Activities are read-only in Core; no write capability is exposed in this slice.","keywords":["activity","aktivitaet","history","list","search"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.activity.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_activity_search_v1_0_0Input","output":"#/components/schemas/core_activity_search_v1_0_0Output"}},{"id":"core.contact.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Contact-Delete mit Idempotency-Key, Audit, organization_id-Filter und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.contact.delete v1.0.0","supabase ud_contacts.delete under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete one Core contact through RLS.","description":"Deletes one contact by id as the installation principal. The backing query is organization-scoped and still runs through RLS.","keywords":["contact","delete","kontakt","remove"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.contact.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_contact_delete_v1_0_0Input","output":"#/components/schemas/core_contact_delete_v1_0_0Output"}},{"id":"core.contact.read","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Contact-Detail unter Prinzipal-JWT/RLS; Deal-Hydration bleibt separater Deal-Contract.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.contact.read v1.0.0","supabase ud_contacts.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one Core contact by id.","description":"Loads one ud_contacts row as the installation principal. RLS and organization_id filtering prevent cross-organization disclosure.","keywords":["contact","detail","kontakt","read"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.contact.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_contact_read_v1_0_0Input","output":"#/components/schemas/core_contact_read_v1_0_0Output"}},{"id":"core.contact.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Contact-Suche mit optionalem account_id-Filter unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.contact.search v1.0.0","supabase ud_contacts.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search Core contacts visible to the current principal.","description":"Lists contacts from ud_contacts under the principal JWT. Optional account_id narrows the result to one customer account while RLS remains the final organization boundary.","keywords":["account","ansprechpartner","contact","kontakt","kunde","kunden","list","person","search","suchen"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.contact.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_contact_search_v1_0_0Input","output":"#/components/schemas/core_contact_search_v1_0_0Output"}},{"id":"core.contact.upsert","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 4 Core-CRM: Basis-Kontakt-Write mit contact_id-Update, external_ref-Upsert, Account-Name-Aufloesung unter RLS, Idempotency-Key, Dry-Run und Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.contact.upsert v1.0.0","supabase ud_contacts insert/update/upsert under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update a basic Core contact record.","description":"Writes the same basic contact fields used by the Core UI. contact_id updates an existing contact; external_ref uses the existing organization-scoped external id index for durable upserts. If account_id is supplied, account_name is resolved under RLS.","keywords":["contact","create","kontakt","person","update","upsert"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.contact.upsert.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_contact_upsert_v1_0_0Input","output":"#/components/schemas/core_contact_upsert_v1_0_0Output"}},{"id":"core.custom_entity_type.create","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Typanlage mit validiertem field_schema, reserviertem System-Slug-Schutz, Idempotency-Key, Dry-Run und Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.custom_entity_type.create v1.0.0","supabase ud_custom_entity_types.insert under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create a custom entity type with a validated field schema.","description":"Creates ud_custom_entity_types under RLS. The gateway validates every field definition, rejects duplicate field keys and keeps the system slug immobilienobjekte reserved.","keywords":["create","custom","entity","field","schema","type"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.custom_entity_type.create.invoke","price_currency":"credits","price_credits":"0.10","price_formula":null,"price_basis":"Session 1 proposal: Custom-Entity schema creation costs 0.10 credits once; final confirmation is tracked in open-decisions.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_custom_entity_type_create_v1_0_0Input","output":"#/components/schemas/core_custom_entity_type_create_v1_0_0Output"}},{"id":"core.custom_entity_type.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Loeschung unter RLS; bestehende DB-Kaskade auf Eintraege wird im Dry-Run ausgewiesen.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.custom_entity_type.delete v1.0.0","supabase ud_custom_entity_types.delete under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete a custom entity type through RLS.","description":"Deletes one ud_custom_entity_types row. Existing database cascade semantics remove its custom entries; agents must dry-run first to see this destructive effect.","keywords":["custom","delete","entity","remove","type"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.custom_entity_type.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_custom_entity_type_delete_v1_0_0Input","output":"#/components/schemas/core_custom_entity_type_delete_v1_0_0Output"}},{"id":"core.custom_entity_type.list","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Liste eigener Custom-Typen, systemverwalteter Immobilien-Slug ausgeblendet.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.custom_entity_type.list v1.0.0","supabase ud_custom_entity_types.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List custom entity types visible to the current organization.","description":"Reads ud_custom_entity_types through the principal JWT and hides the system-managed Immobilien object type from the custom type list.","keywords":["custom","entity","feldschema","list","schema","type"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.custom_entity_type.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_custom_entity_type_list_v1_0_0Input","output":"#/components/schemas/core_custom_entity_type_list_v1_0_0Output"}},{"id":"core.custom_entity_type.update","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Label/Icon/field_schema aktualisierbar, Slug bleibt gesperrt; field_schema wird vor dem Write validiert.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.custom_entity_type.update v1.0.0","supabase ud_custom_entity_types.update under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Update a custom entity type label, icon or field schema.","description":"Updates ud_custom_entity_types under RLS. The slug is intentionally not mutable. If field_schema is supplied, it is fully validated before the write.","keywords":["custom","entity","field","schema","type","update"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.custom_entity_type.update.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_custom_entity_type_update_v1_0_0Input","output":"#/components/schemas/core_custom_entity_type_update_v1_0_0Output"}},{"id":"core.custom_entry.create","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Create mit dynamischer data-Validierung gegen ud_custom_entity_types.field_schema.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.custom_entry.create v1.0.0","supabase ud_custom_entries.insert under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create a custom entry after validating dynamic fields.","description":"Creates ud_custom_entries under RLS. The gateway loads the custom entity type definition and rejects missing, unknown or wrongly typed data fields before writing.","keywords":["create","custom","entry","field","schema"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.custom_entry.create.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1; recurring storage is daily-billed separately.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_custom_entry_create_v1_0_0Input","output":"#/components/schemas/core_custom_entry_create_v1_0_0Output"}},{"id":"core.custom_entry.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Delete per entry_id unter RLS, Idempotency-Key, Dry-Run und Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.custom_entry.delete v1.0.0","supabase ud_custom_entries.delete under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete one custom entry through RLS.","description":"Deletes one ud_custom_entries row by id. RLS and organization filtering keep the operation inside the installation organization.","keywords":["custom","delete","entry","remove"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.custom_entry.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1; recurring storage stops in the daily collector.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_custom_entry_delete_v1_0_0Input","output":"#/components/schemas/core_custom_entry_delete_v1_0_0Output"}},{"id":"core.custom_entry.read","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Detail-Read per entry_id unter RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.custom_entry.read v1.0.0","supabase ud_custom_entries.select maybeSingle under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one custom entry through RLS.","description":"Reads one ud_custom_entries row by id as the principal JWT. RLS prevents cross-organization leakage.","keywords":["custom","detail","entry","read"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.custom_entry.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_custom_entry_read_v1_0_0Input","output":"#/components/schemas/core_custom_entry_read_v1_0_0Output"}},{"id":"core.custom_entry.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Suche je entity_type_id oder entity_type_slug mit RLS-Org-Grenze.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.custom_entry.search v1.0.0","supabase ud_custom_entries.select (ilike, range) under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search custom entries for a validated custom entity type.","description":"Searches ud_custom_entries through RLS. The agent supplies entity_type_id or entity_type_slug so the search remains schema-bounded.","keywords":["custom","entity","entry","list","search"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.custom_entry.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_custom_entry_search_v1_0_0Input","output":"#/components/schemas/core_custom_entry_search_v1_0_0Output"}},{"id":"core.custom_entry.update","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Update mit dynamischer data-Validierung gegen gespeichertes field_schema.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.custom_entry.update v1.0.0","supabase ud_custom_entries.update under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Update a custom entry after validating dynamic fields.","description":"Updates ud_custom_entries under RLS. If data is supplied, the gateway resolves the entry type and validates the patch against the stored field schema.","keywords":["custom","entry","field","schema","update"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.custom_entry.update.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_custom_entry_update_v1_0_0Input","output":"#/components/schemas/core_custom_entry_update_v1_0_0Output"}},{"id":"core.dashboard.overview","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: read-only Dashboard-Ueberblick mit Counts und letzten Deals/Kunden/Kontakten.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.dashboard.overview v1.0.0","supabase counts + ud_deals/-accounts/-contacts.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read the Core dashboard overview for the current organization.","description":"Returns the same high-level counts and recent Deals, Accounts and Contacts used by the Core dashboard. It is read-only and performs no tracking side effects.","keywords":["core","counts","dashboard","overview","recent"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.dashboard.overview.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_dashboard_overview_v1_0_0Input","output":"#/components/schemas/core_dashboard_overview_v1_0_0Output"}},{"id":"core.deadline.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 4 Core-CRM: strukturierter Delete-Contract mit Idempotency-Key, Dry-Run, Audit und Organisation/RLS-Grenze.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.deadline.delete v1.0.0","supabase ud_deadlines.delete under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete one Core deadline through RLS.","description":"Deletes a deadline by deadline_id as the installation principal. RLS and organization_id filtering prevent cross-organization deletion.","keywords":["deadline","delete","frist","remove"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.deadline.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_deadline_delete_v1_0_0Input","output":"#/components/schemas/core_deadline_delete_v1_0_0Output"}},{"id":"core.deadline.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 4 Core-CRM: Read-Contract fuer Fristenliste/-suche unter Prinzipal-JWT/RLS; ohne Dokument-Hydration.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.deadline.search v1.0.0","supabase ud_deadlines.select under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search deadlines visible in the current organization.","description":"Reads ud_deadlines as the principal JWT and keeps RLS as the final visibility boundary.","keywords":["deadline","faellig","frist","list","search"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.deadline.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_deadline_search_v1_0_0Input","output":"#/components/schemas/core_deadline_search_v1_0_0Output"}},{"id":"core.deadline.upsert","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 4 Core-CRM: Frist-Create/Update mit deadline_id oder external_ref auf bestehendem organization_id/ext_id-Index, Idempotency-Key, Dry-Run, Audit und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.deadline.upsert v1.0.0","supabase ud_deadlines insert/update/upsert under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update an idempotent Core deadline.","description":"Creates or updates ud_deadlines under RLS. A supplied external_ref is mapped to the existing organization_id/ext_id unique index, allowing agents to replay extracted deadlines without creating duplicates.","keywords":["create","deadline","document","frist","update","upsert"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.deadline.upsert.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Deadline write price from calibration stage 2.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_deadline_upsert_v1_0_0Input","output":"#/components/schemas/core_deadline_upsert_v1_0_0Output"}},{"id":"core.deal.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Deal-Delete mit Idempotency-Key, Audit, organization_id-Filter und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.deal.delete v1.0.0","supabase ud_deals.delete under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete one Core deal through RLS.","description":"Deletes one ud_deals row by id as the installation principal. The backing query is organization-scoped and still runs through RLS.","keywords":["chance","deal","delete","remove"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.deal.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_deal_delete_v1_0_0Input","output":"#/components/schemas/core_deal_delete_v1_0_0Output"}},{"id":"core.deal.lead_feedback.submit","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C10: Target-Tuner Lead-Feedback fuer is_webr_lead Deals; positive=L3, sale=L4+amount, negative=N1+reason, non-leads liefern sauberen precondition_failed.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract core.deal.lead_feedback.submit v1.0.0","rpc fn_submit_core_lead_feedback under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Submit Target-Tuner feedback for a webRichtung lead deal.","description":"Validates that the deal is a webRichtung lead, then calls the existing fn_submit_core_lead_feedback RPC as the installation principal. Positive maps to L3, sale maps to L4 with amount, negative maps to N1 with a reason.","keywords":["deal","feedback","l3","l4","lead","negative","target-tuner"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Feedback vent remains free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_deal_lead_feedback_submit_v1_0_0Input","output":"#/components/schemas/core_deal_lead_feedback_submit_v1_0_0Output"}},{"id":"core.deal.read","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Deal-Detail unter Prinzipal-JWT/RLS; Account-/Contact-Hydration laeuft ueber eigene Contracts.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.deal.read v1.0.0","supabase ud_deals.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one Core deal by id.","description":"Loads one ud_deals row as the installation principal. RLS and organization_id filtering prevent cross-organization disclosure.","keywords":["chance","deal","detail","read"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.deal.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_deal_read_v1_0_0Input","output":"#/components/schemas/core_deal_read_v1_0_0Output"}},{"id":"core.deal.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Deal-Suche unter Prinzipal-JWT/RLS; keine Kanban-Sonderlogik.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.deal.search v1.0.0","supabase ud_deals.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search Core deals visible to the current principal.","description":"Lists ud_deals in the current organization through RLS. The search covers deal name, next step and description.","keywords":["chance","deal","list","opportunity","search"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.deal.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_deal_search_v1_0_0Input","output":"#/components/schemas/core_deal_search_v1_0_0Output"}},{"id":"core.deal.upsert","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Deal-Create/Update mit deal_id-Update, Idempotency-Key, Dry-Run, Audit und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract core.deal.upsert v1.0.0","supabase ud_deals insert/update under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update a Core deal through an idempotent contract.","description":"Writes ud_deals as the principal JWT. deal_id updates an existing deal; omitting it creates a new opportunity in the current organization.","keywords":["chance","create","deal","opportunity","update","upsert"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.deal.upsert.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Deal write price from calibration stage 2.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_deal_upsert_v1_0_0Input","output":"#/components/schemas/core_deal_upsert_v1_0_0Output"}},{"id":"core.integration.analytics_goal.archive","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: Soft-Archive mit Idempotency, Audit, Dry-Run und core:write-Scope.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.integration.analytics_goal.archive v1.0.0","supabase ud_analytics_goals.update status=archived under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Archive one Analytics goal.","description":"Sets ud_analytics_goals.status to archived. This mirrors the UI's soft-delete behavior.","keywords":["analytics","archive","delete","goal"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.integration.analytics_goal.archive.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Analytics configuration write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_integration_analytics_goal_archive_v1_0_0Input","output":"#/components/schemas/core_integration_analytics_goal_archive_v1_0_0Output"}},{"id":"core.integration.analytics_goal.create","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: Goal-Create normalisiert event_name/page_path_contains wie der Core-UI-Service.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.integration.analytics_goal.create v1.0.0","supabase ud_analytics_goals.insert under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create one Analytics goal.","description":"Creates ud_analytics_goals for a property in the current organization. event_name and page_path_contains are normalized like the existing UI service.","keywords":["analytics","conversion","create","event","goal"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.integration.analytics_goal.create.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Analytics configuration write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_integration_analytics_goal_create_v1_0_0Input","output":"#/components/schemas/core_integration_analytics_goal_create_v1_0_0Output"}},{"id":"core.integration.analytics_goal.list","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: Read-only Goal-Liste, archived standardmaessig ausgeblendet.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.integration.analytics_goal.list v1.0.0","supabase ud_analytics_goals.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List Analytics goals for the current organization.","description":"Reads ud_analytics_goals under RLS. Results can be restricted to one property and archived goals are hidden by default.","keywords":["analytics","conversion","event","goal","list"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.integration.analytics_goal.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_integration_analytics_goal_list_v1_0_0Input","output":"#/components/schemas/core_integration_analytics_goal_list_v1_0_0Output"}},{"id":"core.integration.analytics_goal.update","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: Update editierbarer Goal-Felder; Property-Zuordnung bleibt serverseitig.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.integration.analytics_goal.update v1.0.0","supabase ud_analytics_goals.update under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Update one Analytics goal.","description":"Updates editable ud_analytics_goals fields under RLS. The goal remains attached to its original property.","keywords":["analytics","conversion","event","goal","update"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.integration.analytics_goal.update.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Analytics configuration write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_integration_analytics_goal_update_v1_0_0Input","output":"#/components/schemas/core_integration_analytics_goal_update_v1_0_0Output"}},{"id":"core.integration.analytics_property.archive","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: Soft-Archive statt Hard-Delete, analog UI.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.integration.analytics_property.archive v1.0.0","supabase ud_analytics_properties.update status=archived under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Archive one Analytics property.","description":"Sets ud_analytics_properties.status to archived. This follows the UI behavior and does not hard-delete tracking configuration.","keywords":["analytics","archive","delete","property"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.integration.analytics_property.archive.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Analytics configuration write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_integration_analytics_property_archive_v1_0_0Input","output":"#/components/schemas/core_integration_analytics_property_archive_v1_0_0Output"}},{"id":"core.integration.analytics_property.create","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: erzeugt cookieless Property mit serverseitigem wa_* public_key; Tracking-Snippet ableitbar.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.integration.analytics_property.create v1.0.0","supabase ud_analytics_properties.insert under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create one cookieless Analytics property.","description":"Creates ud_analytics_properties with the same normalization as the Core UI: domains are normalized, a wa_* public key is generated server-side and tracking_mode is cookieless.","keywords":["analytics","create","property","snippet","tracking"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.integration.analytics_property.create.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Analytics configuration write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_integration_analytics_property_create_v1_0_0Input","output":"#/components/schemas/core_integration_analytics_property_create_v1_0_0Output"}},{"id":"core.integration.analytics_property.list","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: Read-only Property-Liste, archived standardmaessig ausgeblendet.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.integration.analytics_property.list v1.0.0","supabase ud_analytics_properties.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List Analytics properties for the current organization.","description":"Reads ud_analytics_properties under RLS and mirrors the existing Integrations Analytics section. Archived properties are hidden by default.","keywords":["analytics","integration","list","property","tracking"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.integration.analytics_property.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_integration_analytics_property_list_v1_0_0Input","output":"#/components/schemas/core_integration_analytics_property_list_v1_0_0Output"}},{"id":"core.integration.analytics_property.update","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: Update editierbarer Property-Felder; public_key/tracking_mode bleiben serververwaltet.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.integration.analytics_property.update v1.0.0","supabase ud_analytics_properties.update under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Update one Analytics property.","description":"Updates editable ud_analytics_properties fields under RLS. public_key and tracking_mode stay server-owned and are not accepted as input.","keywords":["analytics","property","tracking","update"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.integration.analytics_property.update.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Analytics configuration write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_integration_analytics_property_update_v1_0_0Input","output":"#/components/schemas/core_integration_analytics_property_update_v1_0_0Output"}},{"id":"core.link.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Link-Delete mit Idempotency-Key, Audit, sb_user_id-Filter und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.link.delete v1.0.0","supabase ud_links.delete under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete one Core link through RLS.","description":"Deletes one ud_links row by id as the principal user. The backing query filters sb_user_id and still runs through RLS.","keywords":["delete","link","remove","url"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.link.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_link_delete_v1_0_0Input","output":"#/components/schemas/core_link_delete_v1_0_0Output"}},{"id":"core.link.read","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Link-Detail unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.link.read v1.0.0","supabase ud_links.select under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one Core link by id.","description":"Loads one ud_links row as the principal user. The backing query filters sb_user_id and still runs through RLS.","keywords":["detail","link","read","url"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.link.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_link_read_v1_0_0Input","output":"#/components/schemas/core_link_read_v1_0_0Output"}},{"id":"core.link.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Link-Suche unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.link.search v1.0.0","supabase ud_links.select under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search Core links visible to the current principal.","description":"Lists ud_links for the principal user through RLS. The search covers name, URL and description.","keywords":["link","list","search","url","website"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.link.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_link_search_v1_0_0Input","output":"#/components/schemas/core_link_search_v1_0_0Output"}},{"id":"core.link.upsert","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Link-Create/Update mit link_id-Update, URL-Schema-Validierung, Idempotency-Key, Dry-Run, Audit und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.link.upsert v1.0.0","supabase ud_links insert/update under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update a Core link through an idempotent contract.","description":"Writes ud_links as the principal JWT. link_id updates an existing link; omitting it creates a new link for the principal user. URL validation follows the existing UI guard: http, https, mailto or relative paths only.","keywords":["create","link","update","upsert","url","website"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.link.upsert.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_link_upsert_v1_0_0Input","output":"#/components/schemas/core_link_upsert_v1_0_0Output"}},{"id":"core.memo.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Memo-Delete mit Idempotency-Key, Audit, sb_user_id-Filter und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.memo.delete v1.0.0","supabase ud_memos.delete under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete one Core memo through RLS.","description":"Deletes one ud_memos row by id as the principal user. The backing query filters sb_user_id and still runs through RLS.","keywords":["delete","memo","merkzettel","remove"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.memo.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_memo_delete_v1_0_0Input","output":"#/components/schemas/core_memo_delete_v1_0_0Output"}},{"id":"core.memo.read","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Memo-Detail unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.memo.read v1.0.0","supabase ud_memos.select under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one Core memo by id.","description":"Loads one ud_memos row as the principal user. The backing query filters sb_user_id and still runs through RLS.","keywords":["detail","memo","merkzettel","read"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.memo.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_memo_read_v1_0_0Input","output":"#/components/schemas/core_memo_read_v1_0_0Output"}},{"id":"core.memo.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Memo-Suche unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.memo.search v1.0.0","supabase ud_memos.select under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search Core memos visible to the current principal.","description":"Lists ud_memos for the principal user through RLS. The search covers title and memo body.","keywords":["list","memo","merkzettel","search"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.memo.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_memo_search_v1_0_0Input","output":"#/components/schemas/core_memo_search_v1_0_0Output"}},{"id":"core.memo.upsert","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Memo-Create/Update mit memo_id-Update, Idempotency-Key, Dry-Run, Audit und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.memo.upsert v1.0.0","supabase ud_memos insert/update under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update a Core memo through an idempotent contract.","description":"Writes ud_memos as the principal JWT. memo_id updates an existing memo; omitting it creates a new memo for the principal user.","keywords":["create","memo","merkzettel","update","upsert"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.memo.upsert.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_memo_upsert_v1_0_0Input","output":"#/components/schemas/core_memo_upsert_v1_0_0Output"}},{"id":"core.note.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Note-Delete mit Idempotency-Key, Audit, organization_id-Filter und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.note.delete v1.0.0","supabase ud_notes.delete under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete one Core note through RLS.","description":"Deletes one ud_notes row by note_id using the principal JWT and organization-scoped RLS query.","keywords":["delete","note","notiz","remove"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.note.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_note_delete_v1_0_0Input","output":"#/components/schemas/core_note_delete_v1_0_0Output"}},{"id":"core.note.read","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Note-Detail unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.note.read v1.0.0","supabase ud_notes.select under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one Core note by note_id.","description":"Loads one ud_notes row through the principal JWT. The query is organization-scoped and remains subject to RLS.","keywords":["detail","note","notiz","read"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.note.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_note_read_v1_0_0Input","output":"#/components/schemas/core_note_read_v1_0_0Output"}},{"id":"core.note.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Note-Suche unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.note.search v1.0.0","supabase ud_notes.select under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search Core notes visible to the current principal.","description":"Lists ud_notes under the principal JWT and organization scope. The search covers title and note body.","keywords":["list","note","notiz","search"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.note.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_note_search_v1_0_0Input","output":"#/components/schemas/core_note_search_v1_0_0Output"}},{"id":"core.note.upsert","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Note-Create/Update mit note_id-Update, Idempotency-Key, Dry-Run, Audit und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.note.upsert v1.0.0","supabase ud_notes insert/update under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update a Core note through an idempotent contract.","description":"Writes ud_notes as the principal JWT. note_id updates an existing note; omitting it creates a new note with the current organization_id and principal user.","keywords":["create","markdown","note","notiz","update","upsert"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.note.upsert.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_note_upsert_v1_0_0Input","output":"#/components/schemas/core_note_upsert_v1_0_0Output"}},{"id":"core.org.billing_address.update","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: fokussierter Billing-Address-Contract fuer Banktransfer-Rechnungsdaten; org:manage-Scope.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.org.billing_address.update v1.0.0","supabase ud_organizations.update under RLS"],"sources":["core","documents","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Update the organization's billing address for wallet transfers.","description":"Updates the billing-address fields on ud_organizations exactly where the Core/Documents bank-transfer forms store invoice address data.","keywords":["address","banktransfer","billing","org","rechnung"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org:manage"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.org.billing_address.update.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Organization billing-address write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_org_billing_address_update_v1_0_0Input","output":"#/components/schemas/core_org_billing_address_update_v1_0_0Output"}},{"id":"core.org.configure","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 4 Core-CRM: Firmendaten, Rechnungsadresse, Ziele und KI-Kontext in einem idempotenten Configure-Contract mit Dry-Run, Audit und org:manage-Scope.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract core.org.configure v1.0.0","supabase ud_organizations.update under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Configure company master data and AI context for the current org.","description":"Updates the active installation organization with the same company fields and AI context used by the Core UI. The write runs with the principal JWT under RLS; no bootstrap, membership or billing side effects are performed.","keywords":["company","configure","firmendaten","ki-kontext","org","organization"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org:manage"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.org.configure.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Organization and AI-context configuration price from calibration stage 2.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_org_configure_v1_0_0Input","output":"#/components/schemas/core_org_configure_v1_0_0Output"}},{"id":"core.org.context.update","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: fokussierter KI-Kontext-Contract; breiter core.org.configure bleibt bestehen.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.org.context.update v1.0.0","supabase ud_organizations.update description under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Update the AI context text for the current organization.","description":"Updates ud_organizations.description for the installation organization. It is the focused contract for the Core UI's KI-Kontext field; broader company master data remains available through core.org.configure.","keywords":["ai","context","description","ki","kontext","org"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org:manage"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.org.context.update.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"AI-context update price from calibration stage 2.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_org_context_update_v1_0_0Input","output":"#/components/schemas/core_org_context_update_v1_0_0Output"}},{"id":"core.org.current.get","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Liest die an die Installation gebundene aktuelle Organisation und den Prinzipal-Kontext unter bestehender RLS; Live-Konformanz in TEST-AGENTREADY-LAUF2 am 2026-08-04 bestanden.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.org.current.get v1.0.0","supabase ud_organizations.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Return the current organization visible to the agent principal.","description":"Reads the active organization bound to the installation by using the principal JWT under the existing RLS model.","keywords":["current","org","organisation","organization","principal","rls"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent"],"required_scopes":["org:manage"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.org.current.get.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":5},"component_schemas":{"input":"#/components/schemas/core_org_current_get_v1_0_0Input","output":"#/components/schemas/core_org_current_get_v1_0_0Output"}},{"id":"core.org.member.invite","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: Invite nutzt bestehende Invite-Spalten; Versand laut ADR-0006 erlaubt, Mailadapter im Gateway noch adapter_pending und ohne Test-Egress.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.org.member.invite v1.0.0","supabase ud_organization_members.insert (pending) under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Invite one human member into the current organization.","description":"Creates a pending ud_organization_members invite for the installation organization through the existing invite columns. ADR-0006 allows invitation mail after owner unlock; this gateway contract records the invite intent and keeps tests free of external mail egress until the existing mail adapter is attached.","keywords":["einladung","invite","member","mitglied","org","user"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org.members:invite"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Final calibration: member invite is free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_org_member_invite_v1_0_0Input","output":"#/components/schemas/core_org_member_invite_v1_0_0Output"}},{"id":"core.org.member.reactivate","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: reaktiviert non-owner Member unter RLS; owner/owner_agent bleiben geschuetzt.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.org.member.reactivate v1.0.0","supabase ud_organization_members.update is_active=true under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Reactivate one previously revoked organization member.","description":"Sets is_active=true for a non-owner ud_organization_members row in the current organization. The write is organization-scoped and still guarded by existing RLS.","keywords":["aktivieren","member","org","reactivate","zugang"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org.members:invite"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.org.member.reactivate.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Member access write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_org_member_reactivate_v1_0_0Input","output":"#/components/schemas/core_org_member_reactivate_v1_0_0Output"}},{"id":"core.org.member.revoke","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Core-Verwaltung: entzieht Zugang fuer non-owner Member unter RLS; owner/owner_agent bleiben geschuetzt.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.org.member.revoke v1.0.0","supabase ud_organization_members.update is_active=false under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Revoke access for one organization member.","description":"Sets is_active=false for a non-owner ud_organization_members row in the current organization. Owner and owner_agent rows are intentionally not writable through this capability.","keywords":["deactivate","entziehen","member","org","revoke","zugang"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org.members:invite"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.org.member.revoke.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Member access write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_org_member_revoke_v1_0_0Input","output":"#/components/schemas/core_org_member_revoke_v1_0_0Output"}},{"id":"core.real_estate_object.create","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Immobilienobjekt-Create unter RLS mit Idempotency-Key, Dry-Run und Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.real_estate_object.create v1.0.0","supabase ud_real_estate_objects.insert under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create a real estate object through RLS.","description":"Creates ud_real_estate_objects using the fields from the Core UI. Optional initial links can be created through core.real_estate_object.link.create after the object exists.","keywords":["create","estate","immobilie","object","real"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.real_estate_object.create.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Real-estate object write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_real_estate_object_create_v1_0_0Input","output":"#/components/schemas/core_real_estate_object_create_v1_0_0Output"}},{"id":"core.real_estate_object.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: CRUD-Vollstaendigkeit fuer Immobilienobjekte; Delete ist high-risk, idempotent und dry-run-faehig.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.real_estate_object.delete v1.0.0","supabase ud_real_estate_objects.delete under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete a real estate object through RLS.","description":"Deletes one ud_real_estate_objects row by id. This destructive operation is exposed for CRUD completeness and must be run with an idempotency key.","keywords":["delete","estate","immobilie","object","real","remove"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.real_estate_object.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Real-estate object write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_real_estate_object_delete_v1_0_0Input","output":"#/components/schemas/core_real_estate_object_delete_v1_0_0Output"}},{"id":"core.real_estate_object.link.create","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Verknuepft Immobilienobjekte mit Account, Kontakt oder Deal ueber den bestehenden eindeutigen entity_links-Key.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.real_estate_object.link.create v1.0.0","supabase ud_entity_links insert/upsert under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Link a real estate object to an account, contact or deal.","description":"Creates or merges an ud_entity_links relation from a real estate object to an account, contact or deal under RLS.","keywords":["account","contact","deal","estate","immobilie","link","real"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.real_estate_object.link.create.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Entity link write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_real_estate_object_link_create_v1_0_0Input","output":"#/components/schemas/core_real_estate_object_link_create_v1_0_0Output"}},{"id":"core.real_estate_object.link.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Entfernt eine Immobilienobjekt-Verknuepfung unter RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.real_estate_object.link.delete v1.0.0","supabase ud_entity_links.delete under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete a real estate object entity link.","description":"Deletes one ud_entity_links row by id, constrained to the installation organization and real_estate_object source links.","keywords":["delete","estate","immobilie","link","real","unlink"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.real_estate_object.link.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Entity link write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_real_estate_object_link_delete_v1_0_0Input","output":"#/components/schemas/core_real_estate_object_link_delete_v1_0_0Output"}},{"id":"core.real_estate_object.read","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Detail-Read inklusive gespeicherter pricehubble-JSON-Zusammenfassung, ohne Provider-Aufruf.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.real_estate_object.read v1.0.0","supabase ud_real_estate_objects.select maybeSingle under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one real estate object through RLS.","description":"Reads one ud_real_estate_objects row by id. Stored PriceHubble summaries may be present in the pricehubble JSON field; no external provider is called.","keywords":["anzeigen","detail","estate","immobilie","immobilienobjekt","object","objekt","read","real"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.real_estate_object.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_real_estate_object_read_v1_0_0Input","output":"#/components/schemas/core_real_estate_object_read_v1_0_0Output"}},{"id":"core.real_estate_object.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Suche ueber Titel/Adressfelder mit Statusfilter und RLS-Org-Grenze.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.real_estate_object.search v1.0.0","supabase ud_real_estate_objects.select (ilike, range) under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search real estate objects visible to the current organization.","description":"Searches ud_real_estate_objects through RLS. The result can be filtered by status and query text over title and address fields.","keywords":["anzeigen","estate","immobilie","immobilien","immobilienobjekt","list","liste","object","objekt","real","search","suchen"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.real_estate_object.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_real_estate_object_search_v1_0_0Input","output":"#/components/schemas/core_real_estate_object_search_v1_0_0Output"}},{"id":"core.real_estate_object.update","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Entities: Update der UI-Felder; pricehubble-JSON bleibt ausschliesslich Provider-/Preflight-Thema.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.real_estate_object.update v1.0.0","supabase ud_real_estate_objects.update under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Update a real estate object through RLS.","description":"Updates ud_real_estate_objects by id. The PriceHubble result JSON is intentionally not writable through this generic update contract.","keywords":["estate","immobilie","object","real","update"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.real_estate_object.update.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Real-estate object write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_real_estate_object_update_v1_0_0Input","output":"#/components/schemas/core_real_estate_object_update_v1_0_0Output"}},{"id":"core.task.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 4 Core-CRM: strukturierter Delete-Contract mit Idempotency-Key, Dry-Run, Audit und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.task.delete v1.0.0","supabase ud_tasks.delete under RLS"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete one Core task through RLS.","description":"Deletes a task by task_id as the installation principal. RLS ensures that only tasks visible to the principal can be removed.","keywords":["aufgabe","delete","remove","task"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.task.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_task_delete_v1_0_0Input","output":"#/components/schemas/core_task_delete_v1_0_0Output"}},{"id":"core.task.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 4 Core-CRM: Read-Contract fuer Aufgabenliste/-suche; Account-Bezug nutzt vorhandenen Core-Endpunkt, sonst RLS-Read.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.task.search v1.0.0","supabase ud_tasks.select under RLS","POST /core/tasks/account/list"],"sources":["core","agent","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search Core tasks visible to the current principal.","description":"Lists visible tasks through RLS, or account-linked tasks through the existing /core/tasks/account/list endpoint when account_id is supplied.","keywords":["account","aufgabe","list","search","task"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.task.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_task_search_v1_0_0Input","output":"#/components/schemas/core_task_search_v1_0_0Output"}},{"id":"core.task.upsert","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 4 Core-CRM: Aufgabe-Create/Update mit Idempotency-Key; Account-verknuepfte Creates nutzen vorhandenen Core-Endpunkt, sonst RLS-Write mit Prinzipal-JWT.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.task.upsert v1.0.0","supabase ud_tasks insert/update under RLS","POST /core/tasks/account/create"],"sources":["core","agent","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update a Core task through an idempotent contract.","description":"Creates a new task when task_id is omitted, updates the existing task when task_id is present, and can create an account-linked task through the existing /core/tasks/account/create endpoint when account_id is supplied. Direct task writes use the principal JWT under RLS.","keywords":["account","aufgabe","create","task","update","upsert"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.task.upsert.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Task write price from calibration stage 2.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_task_upsert_v1_0_0Input","output":"#/components/schemas/core_task_upsert_v1_0_0Output"}},{"id":"core.vendor.delete","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Vendor-Delete mit Idempotency-Key, Audit, organization_id-Filter und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.vendor.delete v1.0.0","supabase ud_vendors.delete under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete one Core vendor through RLS.","description":"Deletes one ud_vendors row by id as the installation principal. The backing query is organization-scoped and still runs through RLS.","keywords":["delete","lieferant","remove","vendor"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.vendor.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_vendor_delete_v1_0_0Input","output":"#/components/schemas/core_vendor_delete_v1_0_0Output"}},{"id":"core.vendor.read","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Vendor-Detail unter Prinzipal-JWT/RLS; Contact-Hydration laeuft ueber Contact-Contracts.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.vendor.read v1.0.0","supabase ud_vendors.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one Core vendor by id.","description":"Loads one ud_vendors row as the installation principal. RLS and organization_id filtering prevent cross-organization disclosure.","keywords":["detail","lieferant","read","vendor"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.vendor.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_vendor_read_v1_0_0Input","output":"#/components/schemas/core_vendor_read_v1_0_0Output"}},{"id":"core.vendor.search","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Vendor-Suche mit optionalem active_only-Filter unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.vendor.search v1.0.0","supabase ud_vendors.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search Core vendors visible to the current principal.","description":"Lists ud_vendors in the current organization through RLS. The search covers name, contact person and email.","keywords":["lieferant","list","search","supplier","vendor"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.vendor.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/core_vendor_search_v1_0_0Input","output":"#/components/schemas/core_vendor_search_v1_0_0Output"}},{"id":"core.vendor.upsert","domain":"core","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Core-Collections: Vendor-Create/Update mit vendor_id-Update, Idempotency-Key, Dry-Run, Audit und Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract core.vendor.upsert v1.0.0","supabase ud_vendors insert/update under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update a Core vendor through an idempotent contract.","description":"Writes ud_vendors as the principal JWT. vendor_id updates an existing vendor; omitting it creates a new supplier in the current organization.","keywords":["create","lieferant","supplier","update","upsert","vendor"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.core.vendor.upsert.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/core_vendor_upsert_v1_0_0Input","output":"#/components/schemas/core_vendor_upsert_v1_0_0Output"}},{"id":"documents.capability.get","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Documents-Rest: canArchive-Gate ueber bestehenden Endpoint mit Prinzipal-JWT.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract documents.capability.get v1.0.0","POST /documents/capabilities"],"sources":["documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read Documents feature gates for the current organization.","description":"Calls /documents/capabilities with the principal JWT and returns the archive gate used by the existing Documents UI, including the paid-deposit requirement for long-term archiving.","keywords":["archive","canArchive","capability","deposit","document","gate"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.documents.capability.get.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/documents_capability_get_v1_0_0Input","output":"#/components/schemas/documents_capability_get_v1_0_0Output"}},{"id":"documents.document_asset.download_url","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Additive Read-Capability fuer eine kurzlebige Download-URL zu einem abgeleiteten visuellen Dokument-Asset; Organisation, Elterndokument, Interpretation und opaque asset_id werden serverseitig exakt gebunden.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract documents.document_asset.download_url v1.0.0","POST /documents/visual-asset/download-url"],"sources":["documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-20T23:30:00Z","summary":"Create a short-lived signed download URL for one visual document asset.","description":"Calls the canonical /documents/visual-asset/download-url endpoint with the principal JWT. The document, interpretation and opaque asset identifiers bind the request to one tenant-visible derived visual asset; storage buckets, object keys and unsigned URLs are never accepted or returned.","keywords":["document","download","grundriss","image","signed url","visual asset"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.documents.document_asset.download_url.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Visual document asset download URL price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/documents_document_asset_download_url_v1_0_0Input","output":"#/components/schemas/documents_document_asset_download_url_v1_0_0Output"}},{"id":"documents.document.archive","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Documents-Rest: GoBD-nahe Finalarchivierung mit risk=critical, dry_run required, Approval always, Billing-Estimate und Gateway-Idempotency; bestehende Backend-Pipeline bleibt fuehrend.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract documents.document.archive v1.0.0","POST /documents/classification","POST /documents/archive"],"sources":["documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Final-archive a document with GoBD-style retention protection.","description":"Persists the requested retention metadata through /documents/classification when supplied, then calls the existing /documents/archive endpoint with the principal JWT. Work-bucket documents are moved into the archive bucket, object-lock retention is applied, and the existing backend charges archive credits. Already archived documents use the same endpoint only to extend retention; retention is never removed or shortened.","keywords":["ablegen","archive","archivieren","document","dokument","gobd","object-lock","retention","revisionssicher"],"risk_level":"critical","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:write"],"approval":"always","dry_run":"required","billing":{"cost_class":"metered","preflight":"estimate","usage_event":"documents_archive_commit_credits","price_currency":"credits","price_credits":null,"price_formula":{"type":"tiered_per_event","default_credits":"0.49","tiers":[{"from_monthly_count":1,"credits":"0.49"},{"from_monthly_count":251,"credits":"0.29"},{"from_monthly_count":2500,"credits":"0.19"}]},"price_basis":"GoBD archive tiered price; preflight charges the default first-tier price until monthly tier counters are available.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/documents_document_archive_v1_0_0Input","output":"#/components/schemas/documents_document_archive_v1_0_0Output"}},{"id":"documents.document.classify","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Live-Konformanz LAUF2 am 2026-07-03 bestanden: Dokument nach Upload/List/Search erfolgreich als invoice klassifiziert.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /documents/classification"],"sources":["documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Update document classification and retention metadata.","description":"Calls the existing /documents/classification endpoint with the principal JWT. Archived documents keep the existing retention guard: retention may not be removed or shortened.","keywords":["aufbewahrung","classification","classify","document","retention"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.documents.document.classify.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Document classification price from calibration stage 2.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/documents_document_classify_v1_0_0Input","output":"#/components/schemas/documents_document_classify_v1_0_0Output"}},{"id":"documents.document.delete","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Documents-Rest: Delete nur fuer Work-Bucket-Dokumente; archivierte Dokumente werden vor Backend-Delete strukturiert abgelehnt, dry_run required und Approval always.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract documents.document.delete v1.0.0","POST /documents/delete"],"sources":["documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete a non-archived work-bucket document.","description":"Deletes a document through the existing /documents/delete endpoint with the principal JWT. The backend only allows work-bucket documents; archived documents are GoBD-protected and are rejected before deletion.","keywords":["delete","document","gobd","loeschen","remove","work-bucket"],"risk_level":"critical","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:write"],"approval":"always","dry_run":"required","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.documents.document.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"CRUD write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/documents_document_delete_v1_0_0Input","output":"#/components/schemas/documents_document_delete_v1_0_0Output"}},{"id":"documents.document.download_url","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Live-Konformanz LAUF2 am 2026-07-03 bestanden: signierte Download-URL fuer das Testdokument erzeugt, URL im Report redigiert.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /documents/download-url"],"sources":["core","documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create a short-lived signed download URL for a document.","description":"Calls the existing /documents/download-url endpoint with the principal JWT. The signed URL is short-lived and the endpoint first verifies document visibility in the effective organization.","keywords":["document","download","herunterladen","preview","signed","url"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.documents.document.download_url.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Download URL price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/documents_document_download_url_v1_0_0Input","output":"#/components/schemas/documents_document_download_url_v1_0_0Output"}},{"id":"documents.document.link","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Live-Konformanz LAUF2 am 2026-07-03 bestanden: Dokument unter Prinzipal-RLS mit Core-Account verlinkt.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_document_links.upsert"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Link a document to an existing business record under RLS.","description":"Upserts one row into ud_document_links as the principal JWT using the existing unique key organization_id, document_id, resource_kind, resource_id and role. It does not create new tables or bypass RLS.","keywords":["connect","document","link","record","resource","verknuepfen"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.documents.document.link.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Document link write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/documents_document_link_v1_0_0Input","output":"#/components/schemas/documents_document_link_v1_0_0Output"}},{"id":"documents.document.list","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v1.0.0 im Gateway; Live-Konformanz LAUF2 am 2026-07-03 bestanden: Dokumentliste unter Prinzipal-JWT liefert das erzeugte Testdokument.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /documents/list","rpc filter_documents"],"sources":["documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List documents visible to the current principal.","description":"Calls /documents/list with the principal JWT and returns the existing paged archive response. This is the read-contract companion to documents.document.search for agents that need deterministic pagination without a query.","keywords":["archive","browse","document","list","liste","paging"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.documents.document.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/documents_document_list_v1_0_0Input","output":"#/components/schemas/documents_document_list_v1_0_0Output"}},{"id":"documents.document.read","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v2.1.0 im Gateway: liest Volltext/OCR-Preview, Metadaten und streng begrenzte visuelle Asset-Referenzen eines einzelnen Dokuments unter Prinzipal-RLS; keine Storage-Locators oder direkten URLs.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_documents.select (RLS Prinzipal-JWT)"],"sources":["documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"2.1.0","published_at":"2026-07-20T23:30:00Z","summary":"Read canonical V2 OCR, understanding, validated facts and visual assets for one document.","description":"Calls the canonical /documents/read API under the principal JWT. The API owns tenant resolution, OCR source fallback and V2 interpretation selection; the gateway only applies a second bounded allowlist before returning OCR, visual understanding, validated facts and opaque visual-asset references. This additive contract assumes the canonical API exposes those references as understanding.visual_assets with bounded pagination metadata. It never exposes buckets, object keys or asset URLs. Documents without usable OCR or a completed V2 interpretation remain readable with text_source=none and understanding=null. Direct database projections and legacy read versions are not part of the runtime catalog.","keywords":["content","document","dokument","inhalt","lesen","ocr","read","text","unterlage","unterlagen"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.documents.document.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/documents_document_read_v2_1_0Input","output":"#/components/schemas/documents_document_read_v2_1_0Output"}},{"id":"documents.document.retention_extend","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Documents-Rest: Retention-Upgrade 6->8->10 Jahre mit Vorpruefung, dry_run required, Approval always und bestehendem Archive-Endpoint fuer Object-Lock-Verlaengerung.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract documents.document.retention_extend v1.0.0","POST /documents/classification","POST /documents/archive"],"sources":["documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Extend retention protection for an archived document.","description":"Updates an archived document to a longer retention class/date through /documents/classification and then calls /documents/archive so the existing backend extends object-lock retention on the archive objects. The handler rejects equal or shorter retention before invoking the backend when current document metadata is readable under RLS.","keywords":["archivschutz","document","extend","object-lock","retention","verlaengern"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:write"],"approval":"always","dry_run":"required","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Documents charges only the first archive move; retention extensions up to the supported ten-year maximum are free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/documents_document_retention_extend_v1_0_0Input","output":"#/components/schemas/documents_document_retention_extend_v1_0_0Output"}},{"id":"documents.document.search","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Live-Konformanz LAUF2 am 2026-07-03 bestanden: Suche findet das erzeugte Testdokument unter Prinzipal-JWT.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /documents/search","rpc filter_documents"],"sources":["core","documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.1.0","published_at":"2026-07-17T12:00:00Z","summary":"Search processed documents through the existing Documents search endpoint.","description":"Calls /documents/search with the principal JWT and the installation-bound organization. It normalizes the canonical paged response and legacy array responses while exposing stable pagination and source-aware visual-understanding metadata when the upstream search provides it.","keywords":["document","dokument","dokumente","durchsuchen","find","query","rag","search","suche","suchen","unterlage","unterlagen"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.documents.document.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/documents_document_search_v1_1_0Input","output":"#/components/schemas/documents_document_search_v1_1_0Output"}},{"id":"documents.document.upload","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Live-Konformanz LAUF2 am 2026-07-03 bestanden: Dry-Run, Upload und Job-Anlage erfolgreich; gemeldete Upload-Kosten 0.09 Credits.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /documents/upload","POST /documents/jobs"],"sources":["core","documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Upload a document into the existing Documents processing pipeline.","description":"Accepts one base64 encoded file, forwards it as multipart/form-data to the existing /documents/upload endpoint with the principal JWT, and returns either a created file job or the server-side duplicate match. The existing endpoint computes a SHA-256 content hash, deduplicates by organization, charges 0.09 credits only for new processing jobs, and prepares optional upload link context.","keywords":["dedupe","document","duplicate","file","hochladen","processing","upload"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:write"],"approval":"conditional","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"documents_upload_processing_credits","price_currency":"credits","price_credits":"0.09","price_formula":null,"price_basis":"Document upload and processing price from calibration stage 3.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/documents_document_upload_v1_0_0Input","output":"#/components/schemas/documents_document_upload_v1_0_0Output"}},{"id":"documents.job.list","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Documents-Rest: Job-Statusliste ueber bestehenden Endpoint mit normalisiertem Agent-Output.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract documents.job.list v1.0.0","POST /documents/jobs/list","supabase ud_file_jobs"],"sources":["documents","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List recent document processing jobs.","description":"Calls /documents/jobs/list with the principal JWT and normalizes the existing backend response into items, counts, total, limit and offset. The current backend supports a bounded recent-job list; filters are part of the agent contract and are forwarded defensively when the backend accepts them.","keywords":["document","job","jobs","poll","processing","status","verarbeitung"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.documents.job.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/documents_job_list_v1_0_0Input","output":"#/components/schemas/documents_job_list_v1_0_0Output"}},{"id":"documents.job.retry","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Documents-Rest: UI-only Retry als schmaler RLS-Store-Fallback; nur status=error wird auf pending gesetzt, Idempotency-Key und Audit ueber Gateway.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract documents.job.retry v1.0.0","supabase UPDATE ud_file_jobs (status=pending) under RLS"],"sources":["documents","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Retry a failed document processing job under RLS.","description":"Updates one ud_file_jobs row as the principal JWT from error back to pending and clears error_message, mirroring the existing UI-only retry action. No new processing pipeline is implemented in the gateway; the existing backend worker picks up the pending job.","keywords":["document","failed","job","pending","retry","verarbeitung","wiederholen"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Final calibration: retry is free; useless retries are blocked by capability logic.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/documents_job_retry_v1_0_0Input","output":"#/components/schemas/documents_job_retry_v1_0_0Output"}},{"id":"documents.transfer.credentials_view","domain":"documents","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 9 Documents-Import: liest organisationsbezogene Transfer-Zugangsdaten und Ordnerstruktur; Upload bleibt bewusst out-of-band ueber SFTP/FTPS/WebDAV.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract documents.transfer.credentials_view v1.0.0","supabase ud_organizations.short_id under RLS"],"sources":["documents","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read scanner and bulk-upload connection details for the current organization.","description":"Reads the organization short_id under the principal JWT and returns the human-facing connection information for the existing SFTP/FTPS/WebDAV bulk-upload path. The upload transport itself is intentionally not exposed as an invoke operation because files are transferred out-of-band to sftp.webrichtung.de or dav.webrichtung.de and then picked up by the existing Documents import pipeline.","keywords":["document","ftps","massenupload","scanner","sftp","transfer","webdav"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["documents:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.documents.transfer.credentials_view.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/documents_transfer_credentials_view_v1_0_0Input","output":"#/components/schemas/documents_transfer_credentials_view_v1_0_0Output"}},{"id":"inbox.folder.list","domain":"inbox","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Post-Deploy-Live-Konformanz in TEST-AGENTREADY-LAUF2 bestanden; listet Ordner eines organisationssichtbaren Inbox-Kontos ueber account_id und den aktuellen Comm-Adapter.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract inbox.folder.list v1.0.0","GET /core/comm/folders"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List folders for one accessible mailbox.","description":"Calls GET /core/comm/folders with the principal JWT and account id. The current Inbox adapter routes both legacy IMAP and current email-provider accounts and performs credential access checks.","keywords":["folder","imap","list","mail","ordner"],"risk_level":"medium","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mail:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.inbox.folder.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/inbox_folder_list_v1_0_0Input","output":"#/components/schemas/inbox_folder_list_v1_0_0Output"}},{"id":"inbox.mailbox.delete","domain":"inbox","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Live-Konformanzlauf live-konformanz-20260808205817-e07b58c9 in TEST-AGENTREADY-LAUF2 bestanden: ausschliesslich das zuvor angelegte Test-Credential ueber die bestehende RLS-RPC entfernt; Ursprungskonfiguration unveraendert.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["rpc delete_integration_credentials"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete one mailbox credential through the existing RPC.","description":"Calls delete_integration_credentials with the principal JWT. This removes the credential path used by the existing UI; it does not send any mail.","keywords":["credential","delete","loeschen","mail","mailbox","postfach"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mail:write"],"approval":"conditional","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.inbox.mailbox.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Mailbox write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/inbox_mailbox_delete_v1_0_0Input","output":"#/components/schemas/inbox_mailbox_delete_v1_0_0Output"}},{"id":"inbox.mailbox.list","domain":"inbox","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Post-Deploy-Live-Konformanz in TEST-AGENTREADY-LAUF2 bestanden; listet aktuelle email_api-/Unipile- und Legacy-IMAP-Konten ueber den Inbox-Adapter unter Prinzipal-JWT, ohne Secret-Ausgabe.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract inbox.mailbox.list v1.0.0","GET /core/comm/accounts"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List mailboxes accessible in the installation organization.","description":"Calls GET /core/comm/accounts with the principal JWT and installation organization, then returns the accessible email-channel accounts used by the current Inbox. Hidden system mailboxes remain filtered by the existing adapter.","keywords":["e-mail","imap","list","mail","mailbox","postfach"],"risk_level":"medium","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mail:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.inbox.mailbox.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/inbox_mailbox_list_v1_0_0Input","output":"#/components/schemas/inbox_mailbox_list_v1_0_0Output"}},{"id":"inbox.mailbox.save","domain":"inbox","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Live-Konformanzlauf live-konformanz-20260808205817-e07b58c9 in TEST-AGENTREADY-LAUF2 bestanden: temporaeres Credential mit reservierten .invalid-Zielen idempotent angelegt; kein Mailversand und danach vollstaendig entfernt.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["rpc save_integration_credentials","rpc update_mail_credential_sharing"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create one IMAP mailbox credential through the existing RPC path.","description":"Creates a mailbox credential via save_integration_credentials and applies visibility through update_mail_credential_sharing. Password is accepted only as input and is never returned.","keywords":["create","imap","mail","mailbox","postfach","save","smtp"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mail:write"],"approval":"conditional","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.inbox.mailbox.save.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Mailbox write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/inbox_mailbox_save_v1_0_0Input","output":"#/components/schemas/inbox_mailbox_save_v1_0_0Output"}},{"id":"inbox.mailbox.share","domain":"inbox","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Mutation v1.0.0 im Gateway; aktualisiert Visibility/shared_user_ids ueber bestehende RLS-RPC.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["rpc update_mail_credential_sharing"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Update mailbox visibility and direct shares.","description":"Calls update_mail_credential_sharing with the principal JWT. Organization-wide visibility clears direct shares, matching the existing UI behavior.","keywords":["mail","mailbox","postfach","share","teilen","visibility"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mail:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.inbox.mailbox.share.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Mailbox write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/inbox_mailbox_share_v1_0_0Input","output":"#/components/schemas/inbox_mailbox_share_v1_0_0Output"}},{"id":"inbox.message.list","domain":"inbox","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Post-Deploy-Live-Konformanz in TEST-AGENTREADY-LAUF2 bestanden; listet Nachrichten eines Inbox-Ordners ueber den aktuellen Comm-Adapter, ohne Flags, Seen-Aenderung oder Versand.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract inbox.message.list v1.0.0","GET /core/comm/envelopes"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List messages from one folder in an accessible mailbox.","description":"Calls GET /core/comm/envelopes with account, folder and paging. Optional from/to/search filters are applied to the returned page when the provider has no server-side search. This is read-only and never sends mail.","keywords":["email","inbox","list","mail","message","search"],"risk_level":"high","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mail:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.inbox.message.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/inbox_message_list_v1_0_0Input","output":"#/components/schemas/inbox_message_list_v1_0_0Output"}},{"id":"inbox.message.read","domain":"inbox","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Post-Deploy-Live-Konformanz in TEST-AGENTREADY-LAUF2 bestanden; liest eine Nachricht ueber die opaque Provider-Referenz des aktuellen Comm-Adapters, ohne Seen-Markierung.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract inbox.message.read v1.0.0","GET /core/comm/message"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one message from an accessible mailbox.","description":"Calls GET /core/comm/message with the principal JWT, account id and the opaque message reference returned by inbox.message.list. The legacy input field remains named uid for compatibility; current Inbox provider message ids are accepted. This read does not mark the message as seen.","keywords":["email","lesen","mail","message","open","read"],"risk_level":"high","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mail:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.inbox.message.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/inbox_message_read_v1_0_0Input","output":"#/components/schemas/inbox_message_read_v1_0_0Output"}},{"id":"intake.flow.complete","domain":"intake","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Fuehrt einen fertigen Intake idempotent ueber bestehende organisationsgebundene Child-Capabilities aus; Provider-Effekte bleiben im Testkontext stubbed.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract intake.flow.complete v1.0.0","Gateway child contracts for Core, Phone and Documents"],"sources":["core","documents","phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Convert the finished intake state into configuration tool calls.","description":"Executes the Agent-Ready intake orchestration once the conversation state is ready: organization profile via core.org.configure, photo interpretation context via org.media_interpretation_context.set, onboarding tasks through core.task.upsert, Phone wish/configuration through phone.agent_config.upsert and optional voice selection, plus Documents lookup for requested document categories. The parent call is idempotent and provider effects stay stubbed in tests.","keywords":["complete","configure","intake","onboarding","snapshot"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write","documents:read","org:manage","phone:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.intake.flow.complete.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Intake completion price from calibration stage 2.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/intake_flow_complete_v1_0_0Input","output":"#/components/schemas/intake_flow_complete_v1_0_0Output"}},{"id":"intake.flow.start","domain":"intake","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Startet den deterministischen, portablen Onboarding-Intake ohne LLM-Aufruf und ohne persistente Aenderung.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract intake.flow.start v1.0.0"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Start a deterministic onboarding intake conversation.","description":"Creates an in-memory conversation state for the Agent-Ready intake flow. The state is returned to the caller and must be supplied to subsequent intake.flow.step calls. No LLM is called; the fake-bar planner only decides the next question and target fields.","keywords":["conversation","fake-bar","intake","onboarding","start"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org:manage"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.intake.flow.start.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Deterministic intake start price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/intake_flow_start_v1_0_0Input","output":"#/components/schemas/intake_flow_start_v1_0_0Output"}},{"id":"intake.flow.step","domain":"intake","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Verarbeitet eine Antwort im portablen Intake-Zustand; kein LLM-Aufruf und keine persistente Aenderung.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract intake.flow.step v1.0.0"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Apply one customer answer to the intake conversation state.","description":"Advances the server-side intake state machine with one customer answer. The fake-bar planner extracts labelled facts from the answer, updates the portable state and returns the next question. It performs no writes and no LLM calls.","keywords":["answer","fake-bar","intake","onboarding","step"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org:manage"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.intake.flow.step.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Deterministic intake step price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/intake_flow_step_v1_0_0Input","output":"#/components/schemas/intake_flow_step_v1_0_0Output"}},{"id":"integrations.audio.speech_to_text","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"ElevenLabs Scribe STT fuer begrenzte Mediendateien; keine Conversational-AI-Konfiguration.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.audio.speech_to_text v1.0.0"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-11T12:00:00Z","summary":"Transcribe a bounded audio file.","description":"Uses only ElevenLabs Scribe speech-to-text. It does not invoke or configure Phone or Conversational AI.","keywords":["audio","elevenlabs","scribe","stt","transcription"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["assist.speech:transcribe"],"approval":"never","dry_run":"supported","billing":{"cost_class":"external_passthrough","preflight":"estimate","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"ElevenLabs transcription usage is settled from the active platform rate card.","charge_mode":"upstream_authoritative"},"execution":{"mode":"sync","timeout_seconds":120},"component_schemas":{"input":"#/components/schemas/integrations_audio_speech_to_text_v1_0_0Input","output":"#/components/schemas/integrations_audio_speech_to_text_v1_0_0Output"}},{"id":"integrations.audio.text_to_speech","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"ElevenLabs TTS mit bestehender Stimme; Phone-Infrastruktur ist nicht Teil des Contracts.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.audio.text_to_speech v1.0.0"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-11T12:00:00Z","summary":"Generate spoken audio from text with an existing voice.","description":"Uses only the ElevenLabs text-to-speech endpoint. Voice-Agent creation and all Phone infrastructure endpoints are intentionally absent.","keywords":["audio","elevenlabs","speech","tts","voice"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.voice:sample"],"approval":"never","dry_run":"supported","billing":{"cost_class":"external_passthrough","preflight":"estimate","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"ElevenLabs text-to-speech usage is settled per generated character from the active platform rate card.","charge_mode":"upstream_authoritative"},"execution":{"mode":"sync","timeout_seconds":120},"component_schemas":{"input":"#/components/schemas/integrations_audio_text_to_speech_v1_0_0Input","output":"#/components/schemas/integrations_audio_text_to_speech_v1_0_0Output"}},{"id":"integrations.audio.voice_list","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"ElevenLabs-Medienfaehigkeit; kein Zugriff auf Voice Agents, Phone, SIP, Nummern oder Telefonie-Webhooks.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.audio.voice_list v1.0.0"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-11T12:00:00Z","summary":"List voices available for media speech generation.","description":"Reads ElevenLabs voice metadata only. It cannot create or modify Voice Agents, phone numbers, SIP settings or telephony webhooks.","keywords":["audio","elevenlabs","tts","voice"],"risk_level":"medium","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.voice:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Reading the centrally managed ElevenLabs voice catalog is free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":120},"component_schemas":{"input":"#/components/schemas/integrations_audio_voice_list_v1_0_0Input","output":"#/components/schemas/integrations_audio_voice_list_v1_0_0Output"}},{"id":"integrations.document.ocr","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Separater Agent-Pfad fuer Mistral OCR; bestehende interne Mistral-Verdrahtungen bleiben unveraendert.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.document.ocr v1.0.0"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-11T12:00:00Z","summary":"Extract structured Markdown from a document.","description":"Uses the separate platform Mistral OCR path. Existing internally wired Mistral functions remain unchanged.","keywords":["document","markdown","mistral","ocr","pdf"],"risk_level":"medium","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["media:interpret"],"approval":"never","dry_run":"supported","billing":{"cost_class":"external_passthrough","preflight":"estimate","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Mistral OCR usage is settled per returned page from the active platform rate card.","charge_mode":"upstream_authoritative"},"execution":{"mode":"sync","timeout_seconds":120},"component_schemas":{"input":"#/components/schemas/integrations_document_ocr_v1_0_0Input","output":"#/components/schemas/integrations_document_ocr_v1_0_0Output"}},{"id":"integrations.image.candidates_status","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Liest den Stand des Zwei-Modelle-Bildlaufs; nimmt keine automatische Gewinnerauswahl vor.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.image.candidates_status v1.0.0"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-11T12:00:00Z","summary":"Read the status of a kie media job.","description":"Reads only the provider job created through the corresponding platform capability.","keywords":["kie","media","status"],"risk_level":"medium","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Reading KIE.ai job status is free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":120},"component_schemas":{"input":"#/components/schemas/integrations_image_candidates_status_v1_0_0Input","output":"#/components/schemas/integrations_image_candidates_status_v1_0_0Output"}},{"id":"integrations.image.generate","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Erzeugt genau ein Produktionsbild ueber einen serverseitig gewaehlten Provider- und Modellpfad; der Agent beauftragt das Ergebnis, nicht die Technik.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.image.generate v1.0.0"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-08-04T00:00:00Z","summary":"Generate one production image from an outcome-oriented brief.","description":"Submits one brand-safe image job through the platform-selected production route. Provider and model selection stay server-side and cannot be controlled by the caller. Use this atomic capability when one strong result is proportionate; use a comparison recipe only when the production plan or an explicitly selected skill requires it.","keywords":["generate","image","instagram","production","social-media","visual"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"external_passthrough","preflight":"estimate","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"One platform-selected KIE.ai image generation is settled from the active platform rate card.","charge_mode":"upstream_authoritative"},"execution":{"mode":"sync","timeout_seconds":120},"component_schemas":{"input":"#/components/schemas/integrations_image_generate_v1_0_0Input","output":"#/components/schemas/integrations_image_generate_v1_0_0Output"}},{"id":"integrations.image.generate_candidates","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"KIE.ai erzeugt verpflichtend GPT Image 2 und Nano Banana Pro; Seedream ist aus der Produktion ausgeschlossen; Auswahl erst nach Vollaufloesungspruefung.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.image.generate_candidates v2.0.0"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"2.0.0","published_at":"2026-07-11T12:00:00Z","summary":"Generate the mandatory two candidates for a customer-facing image.","description":"Without retry_model, submits the same brand-safe prompt to GPT Image 2 and Nano Banana Pro through KIE.ai. Seedream is excluded from production. After full-resolution review rejects an otherwise suitable candidate, retry_model regenerates only that exact model; retry_attempt must be 1, 2 or 3. This capability never selects a winner automatically.","keywords":["gpt-image","image","kie","nano-banana"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"external_passthrough","preflight":"estimate","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"The two KIE.ai candidate generations are settled from the active platform rate card.","charge_mode":"upstream_authoritative"},"execution":{"mode":"sync","timeout_seconds":120},"component_schemas":{"input":"#/components/schemas/integrations_image_generate_candidates_v2_0_0Input","output":"#/components/schemas/integrations_image_generate_candidates_v2_0_0Output"}},{"id":"integrations.research.answer","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Perplexity-Sonar-Recherche mit Quellen; Credential, Rate Card, Multiplikator und Wallet bleiben serverseitig.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.research.answer v1.0.0"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-11T12:00:00Z","summary":"Research a current question and return an answer with sources.","description":"Uses the centrally managed Perplexity Sonar capability. This complements structured DataForSEO results with a sourced narrative answer.","keywords":["citations","perplexity","research","sources","web"],"risk_level":"medium","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["integrations:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"external_passthrough","preflight":"estimate","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Perplexity usage is settled from the active platform rate card and organization multiplier.","charge_mode":"upstream_authoritative"},"execution":{"mode":"sync","timeout_seconds":120},"component_schemas":{"input":"#/components/schemas/integrations_research_answer_v1_0_0Input","output":"#/components/schemas/integrations_research_answer_v1_0_0Output"}},{"id":"integrations.research.serp_search","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Plattformweite SERP-Recherche mit serverseitigem Vault-Credential, organisationsbezogenem Fallback, provider-gemeldeten Einkaufskosten, Multiplikator und idempotenter Wallet-Abrechnung.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.research.serp_search v1.0.0","POST /agent/integrations/dataforseo/serp with principal JWT","Core API & Produktion provider registry"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Research structured organic search results through the platform provider.","description":"Calls the centrally managed research provider through webr-api. Provider credentials remain server-side. The API records provider cost, applies the configured customer multiplier and debits the organization wallet exactly once per request id.","keywords":["integrations","research","search","seo","serp","sources"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["integrations:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Provider-reported cost is settled by the webr-api integration executor with the configured customer multiplier; the gateway must not debit the wallet a second time.","charge_mode":"upstream_authoritative"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/integrations_research_serp_search_v1_0_0Input","output":"#/components/schemas/integrations_research_serp_search_v1_0_0Output"}},{"id":"integrations.video.image_generate","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Animiert ein bereitgestelltes Ausgangsbild ueber das serverseitig festgelegte Wan-2.7-Modell.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.video.image_generate v1.0.0"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-11T12:00:00Z","summary":"Animate an existing image into a video.","description":"Submits a bounded Wan 2.7 image-to-video job through the centrally managed KIE.ai credential. The source image remains explicit while provider, model and watermark policy are fixed server-side.","keywords":["animate","image-to-video","kie","video","wan"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"external_passthrough","preflight":"estimate","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"KIE.ai image-to-video generation is settled from the active Wan rate card and organization multiplier.","charge_mode":"upstream_authoritative"},"execution":{"mode":"sync","timeout_seconds":180},"component_schemas":{"input":"#/components/schemas/integrations_video_image_generate_v1_0_0Input","output":"#/components/schemas/integrations_video_image_generate_v1_0_0Output"}},{"id":"integrations.video.status","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Liest den Status und die Ergebnis-URLs der plattformweit erzeugten KIE-Videos.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.video.status v1.0.0"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-11T12:00:00Z","summary":"Read the status of a kie media job.","description":"Reads only the provider job created through the corresponding platform capability.","keywords":["kie","media","status"],"risk_level":"medium","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Reading KIE.ai video job status is free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":120},"component_schemas":{"input":"#/components/schemas/integrations_video_status_v1_0_0Input","output":"#/components/schemas/integrations_video_status_v1_0_0Output"}},{"id":"integrations.video.text_generate","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Erzeugt Video aus Text ueber das serverseitig festgelegte Wan-2.7-Modell; Provider und Modell sind nicht durch den Agenten waehlbar.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.video.text_generate v1.0.0"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-11T12:00:00Z","summary":"Generate a video from a written scene description.","description":"Submits a bounded Wan 2.7 text-to-video job through the centrally managed KIE.ai credential. The provider and model are fixed server-side; callers cannot select arbitrary models.","keywords":["generation","kie","text-to-video","video","wan"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"external_passthrough","preflight":"estimate","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"KIE.ai text-to-video generation is settled from the active Wan rate card and organization multiplier.","charge_mode":"upstream_authoritative"},"execution":{"mode":"sync","timeout_seconds":180},"component_schemas":{"input":"#/components/schemas/integrations_video_text_generate_v1_0_0Input","output":"#/components/schemas/integrations_video_text_generate_v1_0_0Output"}},{"id":"integrations.web.crawl","domain":"integrations","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Begrenzter Apify Website Content Crawl mit HTTPS- und Seitenlimits.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract integrations.web.crawl v1.0.0"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-11T12:00:00Z","summary":"Crawl a bounded set of web pages and return readable content.","description":"Runs the managed Apify Website Content Crawler with strict page and URL limits.","keywords":["apify","crawl","markdown","scrape","website"],"risk_level":"medium","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["integrations:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"external_passthrough","preflight":"estimate","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Apify crawl usage is settled per returned page from the active platform rate card.","charge_mode":"upstream_authoritative"},"execution":{"mode":"sync","timeout_seconds":300},"component_schemas":{"input":"#/components/schemas/integrations_web_crawl_v1_0_0Input","output":"#/components/schemas/integrations_web_crawl_v1_0_0Output"}},{"id":"loop.item.act","domain":"loop","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C9: approve/reject/complete/archive/reopen als idempotenter Gateway-Contract ueber bestehenden Core-API-Endpunkt.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract loop.item.act v1.0.0","POST /core/inbox/items/action"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Approve, reject, complete, archive or reopen one Loop item.","description":"Calls the existing technical POST /core/inbox/items/action backend path with the principal JWT. The endpoint performs the Loop item status transition and creates the existing execution record.","keywords":["approve","archive","complete","item","loop","reject","reopen"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.loop.item.act.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Inbox action price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/loop_item_act_v1_0_0Input","output":"#/components/schemas/loop_item_act_v1_0_0Output"}},{"id":"loop.item.read","domain":"loop","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C9; Live-Konformanzlauf live-konformanz-20260808205817-e07b58c9 in TEST-AGENTREADY-LAUF2: markiertes Loop-Item ueber den deployten Gateway-Contract gelesen und danach entfernt.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract loop.item.read v1.0.0","supabase ud_inbox_items/events/rules/executions.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one Loop item with hydrated context.","description":"Loads one Loop item from ud_inbox_items and hydrates its linked event, rule and execution rows through the principal JWT.","keywords":["approval","detail","freigabe","item","loop","read"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.loop.item.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/loop_item_read_v1_0_0Input","output":"#/components/schemas/loop_item_read_v1_0_0Output"}},{"id":"loop.item.search","domain":"loop","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C9; Live-Konformanzlauf live-konformanz-20260808205817-e07b58c9 in TEST-AGENTREADY-LAUF2: markiertes Loop-Item ueber Query gefunden und danach entfernt.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract loop.item.search v1.0.0","supabase ud_inbox_items/events/rules/executions.select under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Search Loop items with event, rule and execution context.","description":"Lists Loop items for the current organization from ud_inbox_items, optionally filtered by status and search text, and hydrates linked events, rules and executions through RLS.","keywords":["approval","freigabe","item","loop","review","search"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.loop.item.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/loop_item_search_v1_0_0Input","output":"#/components/schemas/loop_item_search_v1_0_0Output"}},{"id":"mdm.app.delete","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: Katalog-App inkl. APK aus Storage löschen.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.app.delete v1.0.0","POST /core/mdm/apps/delete"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Delete an app from the MDM catalog including its APK.","description":"Deletes one catalog app and removes the stored APK from storage. Existing installations on devices are not touched.","keywords":["apk","app","delete","mdm"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.app.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_app_delete_v1_0_0Input","output":"#/components/schemas/mdm_app_delete_v1_0_0Output"}},{"id":"mdm.app.search","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"App-Katalog (ohne selbstverwalteten DPC-Agenten); nur user/internal_agent.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract mdm.app.search v1.0.0","POST /core/mdm/apps/list"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"List the organization's MDM app catalog.","description":"Returns uploaded APKs (label, package, version, size, checksum) that can be assigned to managed devices. The self-managed DPC agent app is excluded.","keywords":["apk","app","catalog","mdm"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.app.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/mdm_app_search_v1_0_0Input","output":"#/components/schemas/mdm_app_search_v1_0_0Output"}},{"id":"mdm.device.delete","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: verbliebenen Datensatz inkl. Events/Installs nur nach angenommenem Werksreset und ausdrücklicher physischer Reset-Bestätigung löschen.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.device.delete v1.0.0","POST /core/mdm/devices/delete"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Permanently delete a device and its history.","description":"Physically deletes one device record including its events and install jobs. The device must already have accepted a factory reset through mdm.device.wipe. This cannot be undone.","keywords":["delete","device","mdm"],"risk_level":"critical","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.device.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_device_delete_v1_0_0Input","output":"#/components/schemas/mdm_device_delete_v1_0_0Output"}},{"id":"mdm.device.get","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Gerätedetail mit Ereignishistorie; nur user/internal_agent.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract mdm.device.get v1.0.0","POST /core/mdm/devices/detail"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Read one managed device with its recent event history.","description":"Returns one device of the organization including the latest 50 device events (check-ins, renames, group changes, install results).","keywords":["akku","akkustand","battery","detail","device","events","geraet","gerät","mdm","status"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.device.get.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/mdm_device_get_v1_0_0Input","output":"#/components/schemas/mdm_device_get_v1_0_0Output"}},{"id":"mdm.device.search","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Statusabfrage der verwalteten Geräte; nur user/internal_agent (Sebastian 2026-07-14: Reads frei, Operationen approval-only, extern gesperrt).","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract mdm.device.search v1.0.0","POST /core/mdm/devices/list"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"List managed Android devices with their live status.","description":"Returns the organization's managed devices including status, model, OS/DPC version, battery, storage, security patch level, group binding and last check-in time.","keywords":["akku","akkustand","android","battery","device","fleet","geraet","geraete","gerät","geräte","handy","ladestand","mdm","smartphone","status","tablet"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.device.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/mdm_device_search_v1_0_0Input","output":"#/components/schemas/mdm_device_search_v1_0_0Output"}},{"id":"mdm.device.update","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: Umbenennen/Gruppenwechsel wendet Gruppenrichtlinie sofort an.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.device.update v1.0.0","POST /core/mdm/devices/update"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Rename a device or change its group binding.","description":"Updates one managed device: rename it and/or move it into another device group (group_id null removes the binding; the new group policy is applied immediately).","keywords":["device","group","mdm","rename"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.device.update.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_device_update_v1_0_0Input","output":"#/components/schemas/mdm_device_update_v1_0_0Output"}},{"id":"mdm.device.wipe","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: unwiderruflichen Werksreset beauftragen; danach kann der verbliebene Datensatz gelöscht werden.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.device.wipe v1.0.0","POST /core/mdm/commands/create"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Factory-reset a managed device before removing it from MDM.","description":"Queues an irreversible factory reset on one actively managed device. After the device accepts the wipe command it is marked retired; only then may mdm.device.delete remove its remaining server record.","keywords":["decommission","device","factory reset","mdm","wipe"],"risk_level":"critical","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.device.wipe.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_device_wipe_v1_0_0Input","output":"#/components/schemas/mdm_device_wipe_v1_0_0Output"}},{"id":"mdm.enrollment_token.create","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: erzeugt Secret-Token + QR-Provisioning-Payload.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.enrollment_token.create v1.0.0","POST /core/mdm/enrollment-tokens/create"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Create an enrollment token with QR provisioning payload.","description":"Creates one enrollment token for adding devices to the fleet. The response contains the secret token and the Android provisioning QR payload exactly once.","keywords":["enrollment","mdm","provisioning","qr","token"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.enrollment_token.create.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_enrollment_token_create_v1_0_0Input","output":"#/components/schemas/mdm_enrollment_token_create_v1_0_0Output"}},{"id":"mdm.enrollment_token.revoke","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: Token sperren.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.enrollment_token.revoke v1.0.0","POST /core/mdm/enrollment-tokens/revoke"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Revoke an enrollment token.","description":"Marks one enrollment token as revoked so it can no longer be used to enroll devices.","keywords":["enrollment","mdm","revoke","token"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.enrollment_token.revoke.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_enrollment_token_revoke_v1_0_0Input","output":"#/components/schemas/mdm_enrollment_token_revoke_v1_0_0Output"}},{"id":"mdm.enrollment_token.search","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Tokenliste ohne Secret-Werte; nur user/internal_agent.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract mdm.enrollment_token.search v1.0.0","POST /core/mdm/enrollment-tokens/list"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"List enrollment tokens without their secret values.","description":"Returns the organization's enrollment tokens with label, expiry, usage counters and revocation state. The token secret is only returned once at creation time.","keywords":["enrollment","mdm","provisioning","token"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.enrollment_token.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/mdm_enrollment_token_search_v1_0_0Input","output":"#/components/schemas/mdm_enrollment_token_search_v1_0_0Output"}},{"id":"mdm.group.create","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: leere Gerätegruppe anlegen.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.group.create v1.0.0","POST /core/mdm/groups/create"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Create a device group.","description":"Creates one empty device group with its own (initially empty) group policy.","keywords":["create","group","mdm"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.group.create.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_group_create_v1_0_0Input","output":"#/components/schemas/mdm_group_create_v1_0_0Output"}},{"id":"mdm.group.delete","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: Gruppe löschen, Geräte fallen auf Org-Richtlinie zurück.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.group.delete v1.0.0","POST /core/mdm/groups/delete"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Delete a device group.","description":"Deletes one device group. Member devices lose the group binding and fall back to the organization policy immediately.","keywords":["delete","group","mdm"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.group.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_group_delete_v1_0_0Input","output":"#/components/schemas/mdm_group_delete_v1_0_0Output"}},{"id":"mdm.group.get","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Gruppendetail mit Richtlinie und Geräten; nur user/internal_agent.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract mdm.group.get v1.0.0","POST /core/mdm/groups/detail"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Read one device group with its policy and member devices.","description":"Returns one device group including its group policy, policy version and member devices.","keywords":["detail","group","mdm","policy"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.group.get.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/mdm_group_get_v1_0_0Input","output":"#/components/schemas/mdm_group_get_v1_0_0Output"}},{"id":"mdm.group.policy.set","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: ersetzt Gruppenrichtlinie vollständig, Mitglieder wenden sofort an.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.group.policy.set v1.0.0","POST /core/mdm/groups/policy/set"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Replace the policy of one device group.","description":"Sets the group policy for one device group. All member devices apply the new policy immediately. The given policy replaces the current group policy completely.","keywords":["group","kiosk","mdm","policy"],"risk_level":"critical","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.group.policy.set.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_group_policy_set_v1_0_0Input","output":"#/components/schemas/mdm_group_policy_set_v1_0_0Output"}},{"id":"mdm.group.search","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Gerätegruppen mit Mitgliederzahl; nur user/internal_agent.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract mdm.group.search v1.0.0","POST /core/mdm/groups/list"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"List device groups with device counts.","description":"Returns the organization's device groups including policy version and the number of active member devices.","keywords":["devices","group","mdm"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.group.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/mdm_group_search_v1_0_0Input","output":"#/components/schemas/mdm_group_search_v1_0_0Output"}},{"id":"mdm.group.update","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: Gruppe umbenennen.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.group.update v1.0.0","POST /core/mdm/groups/update"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Rename a device group.","description":"Renames one device group of the organization.","keywords":["group","mdm","rename"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.group.update.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_group_update_v1_0_0Input","output":"#/components/schemas/mdm_group_update_v1_0_0Output"}},{"id":"mdm.install.create","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: Silent-Install-Auftrag mit sofortigem Geräte-Push.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.install.create v1.0.0","POST /core/mdm/installs/create"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Queue a silent app install on a managed device.","description":"Creates or resets one install job that silently installs a catalog app on one device. The device is pushed to check in immediately.","keywords":["app","device","install","mdm","silent"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.install.create.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_install_create_v1_0_0Input","output":"#/components/schemas/mdm_install_create_v1_0_0Output"}},{"id":"mdm.install.search","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Install-Aufträge eines Geräts; nur user/internal_agent.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract mdm.install.search v1.0.0","POST /core/mdm/installs/list"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"List install jobs for one managed device.","description":"Returns the install jobs of one device including status, attempts, errors and the linked app metadata.","keywords":["device","install","job","mdm"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.install.search.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/mdm_install_search_v1_0_0Input","output":"#/components/schemas/mdm_install_search_v1_0_0Output"}},{"id":"mdm.policy.get","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Org-weite Geräterichtlinie lesen; nur user/internal_agent.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract mdm.policy.get v1.0.0","POST /core/mdm/policy/get"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Read the organization-wide device policy.","description":"Returns the current organization device policy (restrictions, password rules, WLAN, kiosk mode) and its version.","keywords":["kiosk","mdm","policy","restrictions"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.policy.get.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/mdm_policy_get_v1_0_0Input","output":"#/components/schemas/mdm_policy_get_v1_0_0Output"}},{"id":"mdm.policy.set","domain":"mdm","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Approval always: ersetzt Org-Richtlinie vollständig, Geräte wenden sofort an.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["Gateway Contract mdm.policy.set v1.0.0","POST /core/mdm/policy/set"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-14T00:00:00Z","summary":"Replace the organization-wide device policy.","description":"Sets the organization device policy (restrictions such as camera or factory reset, password rules, WLAN networks, kiosk mode, screen timeout). All active devices apply the new policy immediately. The given policy replaces the current one completely.","keywords":["kiosk","mdm","password","policy","restrictions"],"risk_level":"critical","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["mdm:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.mdm.policy.set.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Device management write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/mdm_policy_set_v1_0_0Input","output":"#/components/schemas/mdm_policy_set_v1_0_0Output"}},{"id":"media.asset.delete","domain":"media","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Contract v1.0.0 im Gateway; Loeschen ueber bestehenden Core-Media-Endpunkt, Owner-Check bleibt serverseitig, Idempotency/Audit.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["POST /core/media/delete"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.1","published_at":"2026-07-03T12:00:00Z","summary":"Delete a photo link and optionally the underlying media asset.","description":"Runs only after durable owner approval, then calls /core/media/delete with the owner's delegated JWT and the installation-bound organization. The existing endpoint performs the server-side organization-owner check, removes the resource link and deletes the asset object only when no remaining links reference it.","keywords":["asset","delete","loeschen","media","photo","unlink"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["media:write"],"approval":"always","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.media.asset.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Media delete price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/media_asset_delete_v1_0_1Input","output":"#/components/schemas/media_asset_delete_v1_0_1Output"}},{"id":"media.asset.download","domain":"media","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v1.0.0 im Gateway; kurzlebige signierte Original-/Thumbnail-URL ueber bestehenden Core-Media-Endpunkt.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["POST /core/media/download-url"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create a short-lived signed URL for a media asset.","description":"Calls /core/media/download-url with the principal JWT. The existing endpoint verifies asset visibility in the effective organization and returns a signed original or thumbnail URL.","keywords":["asset","download","herunterladen","media","signed","thumbnail","url"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["media:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.media.asset.download.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Download URL price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/media_asset_download_v1_0_0Input","output":"#/components/schemas/media_asset_download_v1_0_0Output"}},{"id":"media.asset.gallery","domain":"media","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v1.0.0 im Gateway; Galerie/Suche inkl. vorhandener AI-Interpretationen ueber bestehenden Core-Media-Endpunkt.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /core/media/gallery"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Browse and search the organization photo gallery.","description":"Calls the existing /core/media/gallery endpoint with the principal JWT. The endpoint returns gallery items including thumbnails, resource references and existing AI interpretations where present.","keywords":["asset","bild","bilder","foto","fotos","galerie","gallery","immobilie","media","objekt","photo","search"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["media:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.media.asset.gallery.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Gallery search price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/media_asset_gallery_v1_0_0Input","output":"#/components/schemas/media_asset_gallery_v1_0_0Output"}},{"id":"media.asset.interpret","domain":"media","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Mutation-Contract v1.0.0 im Gateway; Vision-LLM mit dry_run estimated_cost, Idempotency/Audit und bestehender Ergebnis-Persistenz.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["POST /core/media/interpret"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Run or reuse Vision interpretation for one media asset.","description":"Calls /core/media/interpret with the principal JWT for explicit re-interpretation with the current organization media context. The existing endpoint reuses a current interpretation when possible, otherwise schedules and runs the Vision model, persists the interpretation, observations and AI tags, and returns the public interpretation shape.","keywords":["ai","analyse","asset","beschreibung","interpret","media","vision"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["media:interpret"],"approval":"conditional","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"core_media_vision_interpretation","price_currency":"credits","price_credits":"0.03","price_formula":null,"price_basis":"Final calibration: re-interpretation with context costs 0.03 credits.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/media_asset_interpret_v1_0_0Input","output":"#/components/schemas/media_asset_interpret_v1_0_0Output"}},{"id":"media.asset.list","domain":"media","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v1.0.0 im Gateway; liest verknuepfte Fotos je Core-Ressource ueber bestehenden Core-Media-Endpunkt.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /core/media/list"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List photos linked to a business resource.","description":"Calls the existing /core/media/list endpoint with the principal JWT and returns the photos linked to one account, custom entry or real-estate object. The upstream endpoint verifies resource existence and organization access.","keywords":["account","asset","bild","bilder","foto","fotos","immobilie","immobilienobjekt","kontakt","linked","list","media","objekt","photo","real-estate","real_estate"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["media:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.media.asset.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/media_asset_list_v1_0_0Input","output":"#/components/schemas/media_asset_list_v1_0_0Output"}},{"id":"media.asset.upload","domain":"media","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Mutation-Contract v1.0.0 im Gateway; multipart Upload ueber bestehenden Core-Media-Endpunkt, automatische AI-Interpretation im Gateway-Metadatenblock deaktiviert.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["POST /core/media/upload"],"sources":["core","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Upload and link one image through the existing Core Media pipeline.","description":"Accepts one base64 encoded image, builds multipart/form-data and forwards it to /core/media/upload with the principal JWT. The upstream pipeline stores the image, creates the resource photo link, may reuse an existing asset by SHA-256 content hash and starts the same automatic AI interpretation path as the frontend upload.","keywords":["asset","hochladen","image","media","multipart","photo","upload"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["media:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.media.asset.upload.invoke","price_currency":"credits","price_credits":"0.05","price_formula":null,"price_basis":"Final calibration: upload includes auto-starting interpretation.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/media_asset_upload_v1_0_0Input","output":"#/components/schemas/media_asset_upload_v1_0_0Output"}},{"id":"org.activity.digest","domain":"org","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C6: read-only Digest 'was ist seit X passiert' ueber Tasks, Fristen, Dokumente, Calls und Buchungen mit normalisierten Items und Counts.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract org.activity.digest v1.0.0","supabase ud_tasks/ud_deadlines/ud_documents/ud_voice_calls_log/ud_calendar_bookings.select under RLS"],"sources":["core","documents","phone","calendar","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read an organization activity digest since a timestamp.","description":"Returns normalized read-only slices of new tasks, deadlines, documents, phone calls and calendar bookings since the supplied timestamp. It performs no writes and relies on the principal JWT plus RLS for every source.","keywords":["activity","digest","lagebericht","neu","org","recent","since"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.org.activity.digest.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/org_activity_digest_v1_0_0Input","output":"#/components/schemas/org_activity_digest_v1_0_0Output"}},{"id":"org.brand_assets.list","domain":"org","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Liest freigegebene Logo-Dateivarianten der aktuellen Organisation als Media-Asset-Referenzen; Live-Konformanz in TEST-AGENTREADY-LAUF2 am 2026-08-04 bestanden.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract org.brand_assets.list v1.0.0","supabase ud_org_brand_assets.select under RLS"],"sources":["core","media","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-16T00:00:00Z","summary":"List the current organization's approved brand-kit logo files.","description":"Reads organization-scoped logo variants under the principal JWT. The response contains media asset references rather than signed URLs; resolve a selected file through media.asset.download.","keywords":["brand","brand kit","corporate identity","logo","media asset","wordmark"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent"],"required_scopes":["core:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.org.brand_assets.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Brand-kit asset reference read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":5},"component_schemas":{"input":"#/components/schemas/org_brand_assets_list_v1_0_0Input","output":"#/components/schemas/org_brand_assets_list_v1_0_0Output"}},{"id":"org.handover.escalate","domain":"org","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 Handover: strukturierte Agent-Eskalation Ziel/Blocker/Versuche an menschlichen Owner via bestehender Core-Inbox, Idempotency, Dry-Run und Audit.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract org.handover.escalate v1.0.0","supabase ud_inbox_events/items/executions insert under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-04T00:00:00Z","summary":"Escalate a structured blocker to the human owner.","description":"Creates an organization Inbox item when the agent is stuck and needs human help. The request captures goal, blocker, attempts and the kind of help needed, so the owner can continue from the exact state instead of reverse-engineering the agent run.","keywords":["blocked","blocker","escalate","handover","hilfe","human","inbox"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org:manage"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Handover vent remains free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/org_handover_escalate_v1_0_0Input","output":"#/components/schemas/org_handover_escalate_v1_0_0Output"}},{"id":"org.handover.request_finalize","domain":"org","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 Handover: Agent bittet menschlichen Owner um Review/Finalisierung; erzeugt bestehendes Core-Inbox-Item mit Owner-Zuweisung, Idempotency, Dry-Run und Audit.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract org.handover.request_finalize v1.0.0","supabase ud_inbox_events/items/executions insert under RLS"],"sources":["core","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-04T00:00:00Z","summary":"Ask a human owner to review and finalize a prepared result.","description":"Creates an organization Inbox item for cases where the agent has prepared work but a human must make the final move, for example finalizing a billing draft. It uses the existing core Inbox tables, assigns the item to a visible human owner when present, and stores the target object plus requested action in action_payload.","keywords":["approval","finalize","freigabe","handover","inbox","owner","rechnung"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org:manage"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Handover vent remains free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/org_handover_request_finalize_v1_0_0Input","output":"#/components/schemas/org_handover_request_finalize_v1_0_0Output"}},{"id":"org.media_interpretation_context.get","domain":"org","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C11: Foto-Interpretationskontext aus markiertem Abschnitt in ud_organizations.description lesen; dedicated DB-Spalte fehlt im Bestand.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract org.media_interpretation_context.get v1.0.0","supabase ud_organizations.select description under RLS"],"sources":["core","media","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-04T12:00:00Z","summary":"Read the organization's photo interpretation context.","description":"Reads the marked Agent-Gateway photo interpretation context from ud_organizations.description. This context tells vision interpretation what the business does and what is typically visible on uploaded photos.","keywords":["context","foto","interpretation","ki-kontext","media","org","photos"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org:manage"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.org.media_interpretation_context.get.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/org_media_interpretation_context_get_v1_0_0Input","output":"#/components/schemas/org_media_interpretation_context_get_v1_0_0Output"}},{"id":"org.media_interpretation_context.set","domain":"org","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 C11: Geschaefts-/Foto-Kontext fuer Medieninterpretation setzen, DB-neutral als markierter Abschnitt im bestehenden Org-AI-Kontext.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract org.media_interpretation_context.set v1.0.0","supabase ud_organizations.update description under RLS"],"sources":["core","media","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-04T12:00:00Z","summary":"Set the organization's photo interpretation context.","description":"Writes or replaces a marked Agent-Gateway section in ud_organizations.description with business context and typical photo context. Existing organization AI context outside the section is preserved.","keywords":["context","foto","interpretation","ki-kontext","media","org","photos"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["org:manage"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.org.media_interpretation_context.set.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Media interpretation context write price from calibration stage 2.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/org_media_interpretation_context_set_v1_0_0Input","output":"#/components/schemas/org_media_interpretation_context_set_v1_0_0Output"}},{"id":"org.skill.remember","domain":"org","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Speichert einen privaten, inaktiven Skill-Entwurf; Validierung und ausdrückliche Freigabe bleiben separate Schritte.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract org.skill.remember v1.0.0","POST /skills/remember"],"sources":["api","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Save a reusable procedure as an inactive skill draft.","description":"Creates or updates one private, organization-scoped skill draft. Learned procedures never become executable automatically; validation and explicit owner-controlled promotion are separate actions.","keywords":["agent","learn","procedure","remember","skill","workflow"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.org.skill.remember.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Private reusable skill write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/org_skill_remember_v1_0_0Input","output":"#/components/schemas/org_skill_remember_v1_0_0Output"}},{"id":"phone.agent_config.get","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v1.0.0 im Gateway; kompletter Phone-Agent-Konfigurationssnapshot inkl. Verhalten, Voice-Status und Weiterleitungsregeln unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_voice_agent_configuration.select","supabase ud_voice_agent_forwarding_configurations.select"],"sources":["phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read one complete Phone agent configuration snapshot.","description":"Returns the voice agent base configuration, behavior prompts, selected voice state, assigned number fields as read-only data, and forwarding rules visible to the principal under RLS.","keywords":["agent","config","phone","read","verhalten"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["phone:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.agent_config.get.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/phone_agent_config_get_v1_0_0Input","output":"#/components/schemas/phone_agent_config_get_v1_0_0Output"}},{"id":"phone.agent_config.upsert","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Mutation-Contract v1.0.0 im Gateway; sichere Verhalten-/Prompt-Konfiguration in TEST-AGENTREADY-Kontext, keine Rufnummern-Provisionierung, Provider-Modus stubbed.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_voice_agent_configuration.upsert"],"sources":["phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update a Phone agent's safe behavior configuration.","description":"Upserts the same core fields the Phone UI writes to ud_voice_agent_configuration: name, subtype, summary language, notification email and behavior messages. Assigned phone numbers are deliberately read-only in this contract; provisioning remains a separate Phone provisioning slice.","keywords":["agent","config","phone","prompt","upsert","verhalten"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["phone:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.agent_config.upsert.invoke","price_currency":"credits","price_credits":"0.02","price_formula":null,"price_basis":"Phone agent configuration price from calibration stage 2.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/phone_agent_config_upsert_v1_0_0Input","output":"#/components/schemas/phone_agent_config_upsert_v1_0_0Output"}},{"id":"phone.call_log.read","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v1.0.0 im Gateway; liest principal-sichtbare Phone-Anrufliste unter bestehender sb_user_id-RLS, normalisiert Anrufer/Zeit/Dauer/Zusammenfassung und erkannte Anliegen.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_voice_calls_log.select","supabase ud_voice_callers.select"],"sources":["agent","phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.1.0","published_at":"2026-07-11T20:00:00Z","summary":"Read recent Phone call logs visible to the organization principal.","description":"Reads ud_voice_calls_log and optional ud_voice_callers profiles under the installation principal JWT, explicitly filters both by the installation organization_id and returns normalized caller, time, duration, summary and detected intent signals.","keywords":["angebot","anruf","anrufliste","call","call_log","phone","zusammenfassung"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["phone:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.call_log.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/phone_call_log_read_v1_1_0Input","output":"#/components/schemas/phone_call_log_read_v1_1_0Output"}},{"id":"phone.call.summary.read","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v1.0.0 im Gateway; liest eine Anruf-Zusammenfassung per vacall_id unter Prinzipal-JWT/RLS, normalisiert Anrufer/Zeit/Dauer und markiert Expansion-Trigger wie 'Kunde will Angebot'.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["supabase ud_voice_calls_log.select","supabase ud_voice_callers.select"],"sources":["agent","phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.1.0","published_at":"2026-07-11T20:00:00Z","summary":"Read one normalized Phone call summary and its detected intents.","description":"Reads a single ud_voice_calls_log row by vacall_id plus the installation organization_id under Phone organization RLS, enriches it with an explicitly organization-filtered ud_voice_callers profile when available, and exposes expansion triggers such as 'Kunde will Angebot'.","keywords":["angebot","anliegen","call","phone","summary","zusammenfassung"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["phone:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.call.summary.read.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/phone_call_summary_read_v1_1_0Input","output":"#/components/schemas/phone_call_summary_read_v1_1_0Output"}},{"id":"phone.forwarding_rule.delete","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Mutation-Contract v1.0.0 im Gateway; Loeschen einer Weiterleitungsregel in TEST-AGENTREADY-Kontext, Provider-Sync stubbed, Idempotency-Key und Audit.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_voice_agent_forwarding_configurations.delete"],"sources":["phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete one Phone forwarding rule in test context.","description":"Deletes a forwarding configuration row visible to the principal. Provider sync is stubbed; no ElevenLabs configuration call is performed by the gateway test path.","keywords":["delete","forwarding","phone","transfer","weiterleitung"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["phone:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.forwarding_rule.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Phone forwarding write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/phone_forwarding_rule_delete_v1_0_0Input","output":"#/components/schemas/phone_forwarding_rule_delete_v1_0_0Output"}},{"id":"phone.forwarding_rule.list","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v1.0.0 im Gateway; liest Weiterleitungsregeln unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_voice_agent_forwarding_configurations.select"],"sources":["phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List forwarding rules configured for a Phone agent.","description":"Reads ud_voice_agent_forwarding_configurations for a Phone agent under RLS. The rules include human transfer numbers and agent-to-agent transfer targets as configuration data only.","keywords":["forwarding","list","phone","transfer","weiterleitung"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["phone:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.forwarding_rule.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/phone_forwarding_rule_list_v1_0_0Input","output":"#/components/schemas/phone_forwarding_rule_list_v1_0_0Output"}},{"id":"phone.forwarding_rule.upsert","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Mutation-Contract v1.0.0 im Gateway; Agent-zu-Agent-Transfer und menschliche Testnummern, echte externe Nummern in Tests geblockt, Provider-Sync stubbed.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["supabase ud_voice_agent_forwarding_configurations.upsert"],"sources":["phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create or update one Phone forwarding rule in test context.","description":"Upserts ud_voice_agent_forwarding_configurations using the established Phone UI fields. Human phone targets are accepted only when the request marks the number as an internal test identity; provider sync remains stubbed.","keywords":["forwarding","phone","transfer","upsert","weiterleitung"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["phone:write"],"approval":"conditional","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.forwarding_rule.upsert.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Phone forwarding write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/phone_forwarding_rule_upsert_v1_0_0Input","output":"#/components/schemas/phone_forwarding_rule_upsert_v1_0_0Output"}},{"id":"phone.provisioning.forwarding_guide.generate","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Rufumleitungs-Anleitungen fuer Deutsche Telekom, Vodafone und O2; generiert side-effect-free als Markdown-Artefakt","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Markdown template artifact"],"sources":["phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Generate a Markdown call-forwarding guide for the first supported phone providers.","description":"Renders a provider-specific Markdown artifact for forwarding a customer's number to the assigned webRichtung Phone number. The first supported providers are Deutsche Telekom, Vodafone and O2. Generation is local and side-effect free.","keywords":["anbieter","forwarding","guide","markdown","phone","rufumleitung"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent"],"required_scopes":["phone.provisioning:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.provisioning.forwarding_guide.generate.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Guide generation price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/phone_provisioning_forwarding_guide_generate_v1_0_0Input","output":"#/components/schemas/phone_provisioning_forwarding_guide_generate_v1_0_0Output"}},{"id":"phone.provisioning.job.get","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v1.0.1 im Gateway; pollt Status/Error/Result eines Phone-Provisioning-Jobs organisationsgebunden unter Prinzipal-JWT/RLS.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["supabase ud_voice_agent_jobs.select"],"sources":["phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.1","published_at":"2026-07-03T12:00:00Z","summary":"Read the status of a queued phone provisioning job.","description":"Polls public.ud_voice_agent_jobs for the installation organization under the principal JWT. The existing n8n workflow reports progress and completion by updating status, error_message, completed_at and result on the job row.","keywords":["job","n8n","phone","poll","provisioning","status"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent"],"required_scopes":["phone.provisioning:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.provisioning.job.get.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/phone_provisioning_job_get_v1_0_1Input","output":"#/components/schemas/phone_provisioning_job_get_v1_0_1Output"}},{"id":"phone.provisioning.pool.check","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Konfigurierbarer Pool-Fuellstand mit Capture/Suppression-Delivery; kein Mailversand in dieser Scheibe","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["ud_voice_phone_numbers aggregate","PoolAlertDelivery interface"],"sources":["phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Check the phone-number pool and trigger a captured low-stock warning.","description":"Reads aggregate pool status for the selected Reventix-backed pool and compares it with a configurable threshold. If notify is true and the available count is at or below the threshold, the handler calls a delivery interface. This slice ships only capture/suppression delivery, never mail or provider egress.","keywords":["fuellstand","phone","pool","provisioning","threshold","warning"],"risk_level":"low","mutation":true,"actor_types":["external_agent","internal_agent"],"required_scopes":["phone.provisioning:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.provisioning.pool.check.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Pool check price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/phone_provisioning_pool_check_v1_0_0Input","output":"#/components/schemas/phone_provisioning_pool_check_v1_0_0Output"}},{"id":"phone.provisioning.start","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Mutation-Contract v1.0.0 im Gateway; startet den vollstaendigen bestehenden n8n-Provisionierungsflow ueber die authentifizierte interne webr-api-Bruecke und ordnet den Job dem Organisations-Owner zu.","live_verified":true,"live_verified_at":"2026-08-09","superseded_by":[],"surfaces":["webr-api internal phone provisioning jobs"],"sources":["phone","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Queue the existing Reventix-backed voice-client provisioning workflow.","description":"Wraps the existing voice-client provisioning automation as an Agent-Ready contract. Invoke asks the authenticated internal webr-api bridge to revalidate the installation and insert one owner-bound create job into public.ud_voice_agent_jobs; the existing n8n workflow consumes that row and writes status, error_message, completed_at and result back to the same table. Dry-run validates and previews the job payload without inserting. Poll the returned job_id with phone.provisioning.job.get.","keywords":["job","phone","provisioning","reventix","rufnummer","start"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent"],"required_scopes":["phone.provisioning:manage"],"approval":"never","dry_run":"supported","billing":{"cost_class":"metered","preflight":"estimate","usage_event":"agent_gateway.phone.provisioning.start.invoke","price_currency":"credits","price_credits":null,"price_formula":{"type":"setup_plus_daily_recurring","setup_credits":"9.90","recurring_credits_per_day":"0.10"},"price_basis":"Final calibration: 9.90 credits once plus 0.10 credits per day in the nightly recurring collector.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/phone_provisioning_start_v1_0_0Input","output":"#/components/schemas/phone_provisioning_start_v1_0_0Output"}},{"id":"phone.voice.catalog","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Read-Contract v1.0.0 im Gateway; Phone-gefilterter Voice-Catalog ohne Provider-Details und ohne ElevenLabs-Aufruf.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["GET /voice-catalog?context=phone"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List voices that are approved for Phone agents.","description":"Reads the shared voice catalog for context=phone and returns the public voice fields used by the Phone UI. Provider routing details stay hidden; ElevenLabs is never called by this read.","keywords":["catalog","elevenlabs","phone","stimme","voice"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["phone:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.voice.catalog.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/phone_voice_catalog_v1_0_0Input","output":"#/components/schemas/phone_voice_catalog_v1_0_0Output"}},{"id":"phone.voice.select","domain":"phone","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Agent-Ready Mutation-Contract v1.0.0 im Gateway; bestehendes Voice-Selection-Job-Muster, Idempotency/Audit, ElevenLabs-Sync in Tests stubbed.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["POST /phone/voice-selection","supabase ud_voice_config_jobs.insert"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Select a catalog voice for a Phone agent with provider sync stubbed.","description":"Mirrors the existing /phone/voice-selection pattern: validate the Phone catalog voice, mark the configuration sync state, and create the voice selection job. In Agent-Ready tests the ElevenLabs sync is explicitly stubbed and no provider call is made.","keywords":["phone","select","stimme","sync","voice"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["phone:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.phone.voice.select.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Voice selection price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/phone_voice_select_v1_0_0Input","output":"#/components/schemas/phone_voice_select_v1_0_0Output"}},{"id":"platform.feedback.read","domain":"platform","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 Handover: Status und webRichtung-Antwort zu Agent-Feedback abrufen; fake-getestet, Live-Read erst nach Freigabe von db-wishes/platform-feedback.sql.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract platform.feedback.read v1.0.0","db-wishes/platform-feedback.sql"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-04T00:00:00Z","summary":"Read status and webRichtung response for submitted feedback.","description":"Returns one central issue submitted by the same organization through platform feedback, including triage status and the latest customer-visible response. Legacy feedback rows remain readable during the transition.","keywords":["feedback","platform","read","response","status","ticket"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["platform.feedback:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Feedback vent remains free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/platform_feedback_read_v1_0_0Input","output":"#/components/schemas/platform_feedback_read_v1_0_0Output"}},{"id":"platform.feedback.submit","domain":"platform","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 Handover: Agent->webRichtung-Feedbackkanal Ziel/Blocker/Wunsch; voll spezifiziert und fake-getestet, Live-Persistenz/Scopes erst nach Sebastian-Freigabe des SQL-Wunschs.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract platform.feedback.submit v1.0.0","db-wishes/platform-feedback.sql"],"sources":["gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-04T00:00:00Z","summary":"Submit structured agent feedback to webRichtung.","description":"Creates a feedback ticket for webRichtung product/platform triage. It is the agent-to-webRichtung channel for blockers, missing capabilities, bugs and improvement requests.","keywords":["blocker","feature","feedback","platform","ticket","webRichtung"],"risk_level":"low","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["platform.feedback:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Feedback vent remains free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":15},"component_schemas":{"input":"#/components/schemas/platform_feedback_submit_v1_0_0Input","output":"#/components/schemas/platform_feedback_submit_v1_0_0Output"}},{"id":"skill.execution.start","domain":"skill","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Startet produktneutral eine unveränderliche Momentaufnahme eines veröffentlichten deklarativen Skill-Rezepts.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract skill.execution.start v1.0.0","POST /skill-executions"],"sources":["api","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Start a published declarative skill recipe.","description":"Creates a generic staged execution from an immutable snapshot of one published skill recipe. The same runtime is used for every product and media type.","keywords":["execution","recipe","skill","stage","workflow"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Starting the platform-internal recipe state machine is free; invoked provider and compute capabilities remain billable.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/skill_execution_start_v1_0_0Input","output":"#/components/schemas/skill_execution_start_v1_0_0Output"}},{"id":"skill.execution.status","domain":"skill","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Liest bereite Phasen, Nachweise und Completion-Status einer generischen Skill-Ausführung.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract skill.execution.status v1.0.0","GET /skill-executions/:id"],"sources":["api","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read generic skill stage and completion state.","description":"Returns a compact lifecycle summary with ready and completed stages, accepted artifact IDs, passed quality-gate IDs and completion state for an organization-scoped skill execution.","keywords":["quality","recipe","skill","stage","status"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Reading the platform-internal recipe state is free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/skill_execution_status_v1_0_0Input","output":"#/components/schemas/skill_execution_status_v1_0_0Output"}},{"id":"skill.stage.report","domain":"skill","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Validiert Abhängigkeiten, Artefaktverträge, Quality-Gates und Reviews einer beliebigen Rezeptphase.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract skill.stage.report v1.0.0","POST /skill-executions/:id/stage-reports"],"sources":["api","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Submit artifacts and evidence for one declarative recipe stage.","description":"Validates stage dependencies, required artifact contracts, configured quality evidence and review approval without knowing the product or media type. A required review creates a generic pending review instead of accepting the stage.","keywords":["artifact","evidence","quality","review","skill","stage"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Submitting validation evidence to the platform-internal recipe state machine is free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/skill_stage_report_v1_0_0Input","output":"#/components/schemas/skill_stage_report_v1_0_0Output"}},{"id":"studio.asset.download","domain":"studio","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Aktueller oeffentlicher Ergebnis-Downloadpfad: erzeugt eine kurzlebige organisationsgebundene Download-URL fuer das tatsaechliche finale Render-Ergebnis.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract studio.asset.download v1.0.0","POST /studio/assets/download-url"],"sources":["studio","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Get a short-lived download URL for a final Studio Asset.","description":"Returns a 15-minute signed URL for an organization-owned Studio S3 object so the agent can inspect the actual final render before registering verified media metadata. S3 credentials remain server-side.","keywords":["asset","download","inspect","quality","s3","studio"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Short-lived Studio Asset download URLs are free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/studio_asset_download_v1_0_0Input","output":"#/components/schemas/studio_asset_download_v1_0_0Output"}},{"id":"studio.price.quote","domain":"studio","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Erzeugt aus festen Produktionseinheiten einen signierten, 24 Stunden gueltigen Studio-Hoechstpreis; die Abfrage reserviert oder belastet keine Credits.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract studio.price.quote v1.0.0","POST /studio/price-quote"],"sources":["studio","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Calculate a signed maximum price for one Studio production.","description":"Returns the customer-facing estimated and maximum credit price plus a signed marker. Show the maximum price to the owner and pass the marker unchanged to studio.production.create only after the owner explicitly confirms the production.","keywords":["credits","kosten","preis","price","production","quote","studio"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Signed Studio price quote creation is free and does not reserve credits.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/studio_price_quote_v1_0_0Input","output":"#/components/schemas/studio_price_quote_v1_0_0Output"}},{"id":"studio.production.cancel","domain":"studio","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Beendet einen eigenen laufenden Studio-Produktionsauftrag idempotent ueber den aktuellen Studio-Endpunkt.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract studio.production.cancel v1.0.0","POST /studio/production-jobs/:id/cancel"],"sources":["studio","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Cancel one running Studio production job.","description":"Calls the current Studio cancellation endpoint as the installation principal. Completed, failed or already cancelled jobs remain unchanged and return cancelled=false.","keywords":["abbrechen","cancel","job","production","stop","studio"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.studio.production.cancel.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Deterministic cancellation of one owned Studio production.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/studio_production_cancel_v1_0_0Input","output":"#/components/schemas/studio_production_cancel_v1_0_0Output"}},{"id":"studio.production.create","domain":"studio","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Plattformweiter Einstieg in die agentenbasierte Tmux-/GLM-5.2-Produktion nach ausdruecklicher Bestaetigung eines signierten Hoechstpreises; Wallet-Pruefung und finale Abrechnung bleiben im Studio-Backend.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract studio.production.create v1.0.0","POST /studio/production-jobs"],"sources":["studio","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create an agent-driven media production job.","description":"Queues a production brief for the shared Tmux Harness and GLM 5.2 runtime after the owner confirmed a signed quote from studio.price.quote. The worker may use platform capabilities and publishes final files with metadata into the organization's Studio Assets.","keywords":["auftrag","create","image","job","production","render","studio","video"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"The signed upstream quote and final Studio settlement are authoritative; the gateway adds no enqueue charge.","charge_mode":"free"},"execution":{"mode":"async","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/studio_production_create_v1_0_0Input","output":"#/components/schemas/studio_production_create_v1_0_0Output"}},{"id":"studio.production.list","domain":"studio","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Liest die aktuellen Studio-Produktionsauftraege mit Fortschritt, Review- und Ergebnisstatus fuer die aktive Organisation.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract studio.production.list v1.0.0","GET /studio/production-jobs"],"sources":["studio","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List the current organization's Studio production jobs.","description":"Calls the current Studio production-job endpoint as the installation principal and returns up to the latest 50 jobs with progress, review and result metadata.","keywords":["job","list","production","progress","status","studio"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.studio.production.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Organization-scoped Studio production status read.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/studio_production_list_v1_0_0Input","output":"#/components/schemas/studio_production_list_v1_0_0Output"}},{"id":"studio.render.status","domain":"studio","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Liest den organisationsgebundenen Stand der eigenen Renderqueue.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["Gateway Contract studio.render.status v1.0.0","Own Remotion/FFmpeg render service"],"sources":["studio","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read the status and output key of an own-compute render job.","description":"Reads one job from the platform-owned Remotion/FFmpeg queue. It does not call an external provider or expose the render credential.","keywords":["ffmpeg","queue","remotion","render","status","studio"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Reading the own render queue is free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/studio_render_status_v1_0_0Input","output":"#/components/schemas/studio_render_status_v1_0_0Output"}},{"id":"studio.review.list","domain":"studio","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Liest offene und entschiedene menschliche Studio-Freigaben; die Entscheidung selbst bleibt bewusst eine menschliche UI-Aktion.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract studio.review.list v1.0.0","GET /studio/reviews"],"sources":["studio","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List human Studio reviews and their decisions.","description":"Calls the current Studio review endpoint for the installation organization. This read capability lets an agent observe a required human decision; deciding the review remains a human UI action and is deliberately not exposed.","keywords":["approval","decision","freigabe","list","review","studio"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.studio.review.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Organization-scoped human review status read.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/studio_review_list_v1_0_0Input","output":"#/components/schemas/studio_review_list_v1_0_0Output"}},{"id":"studio.skill.list","domain":"studio","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Liefert die aktuell veroeffentlichten Plattform-, Organisations- und privaten Studio-Produktionsskills; die Skill-ID kann direkt an studio.production.create uebergeben werden.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract studio.skill.list v1.0.0","GET /skills/studio"],"sources":["studio","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List the published production skills available in Studio.","description":"Calls the current /skills/studio endpoint and returns the platform, organization and private production skills visible to the installation principal. The returned skill ID can be passed to studio.production.create.","keywords":["list","production","recipe","skill","studio","workflow"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.studio.skill.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Published Studio production-skill discovery read.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/studio_skill_list_v1_0_0Input","output":"#/components/schemas/studio_skill_list_v1_0_0Output"}},{"id":"studio.thumbnail.render","domain":"studio","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Erzeugt Thumbnails auf eigener Infrastruktur direkt im Studio-Speicher.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract studio.thumbnail.render v1.0.0","Own FFmpeg render service"],"sources":["studio","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Render a video thumbnail on platform-owned compute.","description":"Creates a thumbnail with the own FFmpeg renderer and stores it directly in the active organization's Studio storage.","keywords":["cover","ffmpeg","render","studio","thumbnail"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"studio_thumbnail_render_compute","price_currency":"credits","price_credits":"0.01","price_formula":null,"price_basis":"One bounded thumbnail render on platform-owned compute.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":60},"component_schemas":{"input":"#/components/schemas/studio_thumbnail_render_v1_0_0Input","output":"#/components/schemas/studio_thumbnail_render_v1_0_0Output"}},{"id":"studio.video.render","domain":"studio","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Rendert Videos auf eigener Infrastruktur; Organisationspfade und Renderzugang werden serverseitig erzwungen.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract studio.video.render v1.0.0","Own Remotion/FFmpeg render service"],"sources":["studio","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Render a finished video on the platform-owned Remotion/FFmpeg service.","description":"Queues up to 2,000 scenes and two hours of optional audio, captions and overlays on webRichtung-owned compute. Long-form timelines are rendered in bounded segments and assembled into one final file. Remotion and FFmpeg run on the platform server; no external image or render model is used. The output path is generated inside the active organization's Studio storage.","keywords":["compose","ffmpeg","remotion","render","studio","video"],"risk_level":"high","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["studio.production:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"metered","preflight":"estimate","usage_event":"studio_video_render_compute","price_currency":"credits","price_credits":null,"price_formula":{"type":"per_started_minute_from_array_number_field","param":"scenes","field":"duration_seconds","credits_per_unit":"0.04"},"price_basis":"Platform-owned Remotion/FFmpeg compute at 0.04 credits per started output minute.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"async","timeout_seconds":30},"component_schemas":{"input":"#/components/schemas/studio_video_render_v1_0_0Input","output":"#/components/schemas/studio_video_render_v1_0_0Output"}},{"id":"wallet.agent_budget.guard.check","domain":"wallet","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 Hygiene: Budget-/Kill-Switch-Preflight in Domain wallet.*; Scope-Code bleibt billing.wallet:read.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract wallet.agent_budget.guard.check v1.0.0"],"sources":["core","agent","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Check wallet, budget caps and kill-switch before an agent invoke.","description":"Reads the installation wallet, ud_agent_cost_ledger aggregates, recent gateway audit cost and the active ud_agent_policy_profiles row for the installation's optional ud_agent_id. Invoke is deliberately blocked with budget_exceeded or capability_disabled before returning a success payload when the estimated operation cost would violate policy.","keywords":["billing","budget","cost","kill","ledger","policy","preflight"],"risk_level":"medium","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.wallet:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"free","preflight":"none","usage_event":null,"price_currency":"credits","price_credits":"0","price_formula":null,"price_basis":"Budget guard remains free.","charge_mode":"free"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/wallet_agent_budget_guard_check_v1_0_0Input","output":"#/components/schemas/wallet_agent_budget_guard_check_v1_0_0Output"}},{"id":"wallet.balance.get","domain":"wallet","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 10 Hygiene: Wallet-Balance in Domain wallet.* gefuehrt; Scope-Code bleibt billing.wallet:read.","live_verified":true,"live_verified_at":"2026-08-08","superseded_by":[],"surfaces":["rpc get_wallet_balance_by_id"],"sources":["core","documents","agent"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Read the current organization wallet balance.","description":"Returns the wallet id, organization id and current credit balance for the installation organization by resolving the organization wallet through the Agent-Gateway-owned balance RPC. It does not mutate the wallet and does not expose transactions.","keywords":["balance","billing","credits","guthaben","wallet"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["billing.wallet:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.wallet.balance.get.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Wallet balance read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/wallet_balance_get_v1_0_0Input","output":"#/components/schemas/wallet_balance_get_v1_0_0Output"}},{"id":"workspace.artifact.delete","domain":"workspace","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Workspace: bestehender User-JWT-Endpoint mit Principal-JWT; Gateway-Idempotency/Audit kapselt nicht-idempotenten Delete.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract workspace.artifact.delete v1.0.0","POST /workspace/artifacts/delete"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Delete a Workspace file artifact through the existing API.","description":"Calls the existing /workspace/artifacts/delete endpoint with the principal JWT. The gateway-level idempotency key prevents repeated delete execution for retries; the existing endpoint deletes the S3 object and artifact index row within the principal's organization access.","keywords":["artifact","delete","loeschen","remove","workspace"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["workspace:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.workspace.artifact.delete.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Workspace artifact write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/workspace_artifact_delete_v1_0_0Input","output":"#/components/schemas/workspace_artifact_delete_v1_0_0Output"}},{"id":"workspace.artifact.download_url.create","domain":"workspace","registry_status":"agent-ready","catalog_v1":true,"registry_note":"alias agent.artifact.download; signierte URL ueber bestehenden User-JWT-Endpoint mit Principal-JWT.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract workspace.artifact.download_url.create v1.0.0","POST /workspace/artifacts/download-url"],"sources":["agent","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create a short-lived signed download URL for a Workspace artifact.","description":"Calls the existing /workspace/artifacts/download-url endpoint with the principal JWT. The existing endpoint checks organization access, artifact availability and S3 signing.","keywords":["artifact","download","signed","signiert","url","workspace"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["workspace:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.workspace.artifact.download_url.create.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Download URL price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/workspace_artifact_download_url_create_v1_0_0Input","output":"#/components/schemas/workspace_artifact_download_url_create_v1_0_0Output"}},{"id":"workspace.artifact.list","domain":"workspace","registry_status":"agent-ready","catalog_v1":true,"registry_note":"alias agent.artifact.list; normalisierte Artifact-Liste ueber bestehenden User-JWT-Endpoint mit Principal-JWT.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract workspace.artifact.list v1.0.0","POST /workspace/artifacts/list"],"sources":["agent","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List Workspace file artifacts visible to the principal.","description":"Calls the existing /workspace/artifacts/list endpoint with the principal JWT. The endpoint filters by the effective organization, optional workspace session and artifact direction.","keywords":["artifact","dateien","download","list","workspace"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["workspace:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.workspace.artifact.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/workspace_artifact_list_v1_0_0Input","output":"#/components/schemas/workspace_artifact_list_v1_0_0Output"}},{"id":"workspace.artifact.upload","domain":"workspace","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Workspace: 3-Schritt-Presigned-Flow create URL -> externer PUT -> complete; /workspace/artifacts/upload bleibt Bestand, aber nicht Agent-Contract-Pfad.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract workspace.artifact.upload v1.0.0","POST /workspace/artifacts/create-upload-url","POST /workspace/artifacts/complete-upload"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Create and complete a presigned Workspace artifact upload using the existing API.","description":"Wraps the existing /workspace/artifacts/create-upload-url and /workspace/artifacts/complete-upload endpoints. Step 1 creates an artifact index row and returns a short-lived S3 PUT URL; the caller uploads bytes directly to that URL; step 3 completes the artifact and optionally creates an agent-input delivery. The gateway adds schema validation, idempotency, audit and dry-run around the existing principal-JWT path.","keywords":["artifact","datei","hochladen","presigned","s3","upload","workspace"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["workspace:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.workspace.artifact.upload.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Workspace artifact write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/workspace_artifact_upload_v1_0_0Input","output":"#/components/schemas/workspace_artifact_upload_v1_0_0Output"}},{"id":"workspace.delivery.list","domain":"workspace","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Workspace: Delivery-Liste separat vom Artifact-List-Contract; kein Runtime-Token-Pfad.","live_verified":true,"live_verified_at":"2026-08-05","superseded_by":[],"surfaces":["Gateway Contract workspace.delivery.list v1.0.0","POST /workspace/artifacts/deliveries/list"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"List Workspace artifact deliveries for a workspace session.","description":"Calls the existing /workspace/artifacts/deliveries/list endpoint with the principal JWT. This is the user/agent-visible delivery list, not the runtime-token polling endpoint.","keywords":["artifact","delivery","list","runtime","workspace"],"risk_level":"low","mutation":false,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["workspace:read"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.workspace.delivery.list.invoke","price_currency":"credits","price_credits":"0.0005","price_formula":null,"price_basis":"Read price from calibration stage 0.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":10},"component_schemas":{"input":"#/components/schemas/workspace_delivery_list_v1_0_0Input","output":"#/components/schemas/workspace_delivery_list_v1_0_0Output"}},{"id":"workspace.delivery.update","domain":"workspace","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Welle 5 Workspace: agentenseitiges cancel/delete via Principal-JWT/RLS; Runtime-Status accepted/downloading/delivered/failed bleibt Runtime-Pfad.","live_verified":true,"live_verified_at":"2026-08-07","superseded_by":[],"surfaces":["Gateway Contract workspace.delivery.update v1.0.0","supabase UPDATE ud_workspace_file_artifact_deliveries under RLS"],"sources":["api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Cancel or delete a Workspace artifact delivery through the principal RLS path.","description":"Updates ud_workspace_file_artifact_deliveries directly with the principal JWT under the live RLS policy. The contract intentionally exposes only agent-side terminal states, cancelled and deleted; runtime progress states such as accepted, downloading, delivered and failed remain owned by /workspace/artifacts/runtime-deliveries/update and are not called by this gateway.","keywords":["cancel","delete","delivery","rls","update","workspace"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["workspace:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.workspace.delivery.update.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Workspace delivery write price from calibration stage 1.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":20},"component_schemas":{"input":"#/components/schemas/workspace_delivery_update_v1_0_0Input","output":"#/components/schemas/workspace_delivery_update_v1_0_0Output"}},{"id":"workspace.document.render","domain":"workspace","registry_status":"agent-ready","catalog_v1":true,"registry_note":"Universeller, reproduzierbarer Renderpfad: Quelle unveraendert; PDF, begrenzte PNG-Seitenvorschauen und technischer Qualitaetsbericht. Visuelle Pruefung erfolgt anschliessend ueber vision.analyze.","live_verified":true,"live_verified_at":"2026-08-06","superseded_by":[],"surfaces":["Gateway Contract workspace.document.render v1.0.0","POST /workspace/documents/render","POST /workspace/documents/runtime-render","Workspace Runtime Tool document.render"],"sources":["agent","api","gateway"],"gaps":[],"invocable":true,"launch_ready":true,"version":"1.0.0","published_at":"2026-07-03T12:00:00Z","summary":"Render one Workspace PDF, self-contained HTML or Office artifact into reviewed production assets.","description":"Calls the central /workspace/documents/render endpoint with the principal JWT. The source artifact remains unchanged. The renderer creates a PDF, bounded PNG page previews and a canonical technical quality report as new Workspace download artifacts. HTML must be self-contained; scripts and external resources are rejected. Office macros stay disabled by the central renderer.","keywords":["document","html","layout","office","pdf","preview","quality","render","workspace"],"risk_level":"medium","mutation":true,"actor_types":["external_agent","internal_agent","user"],"required_scopes":["workspace:write"],"approval":"never","dry_run":"supported","billing":{"cost_class":"flat","preflight":"estimate","usage_event":"agent_gateway.workspace.document.render.invoke","price_currency":"credits","price_credits":"0.002","price_formula":null,"price_basis":"Bounded central document render and Workspace artifact write price.","charge_mode":"gateway_wallet_debit"},"execution":{"mode":"sync","timeout_seconds":120},"component_schemas":{"input":"#/components/schemas/workspace_document_render_v1_0_0Input","output":"#/components/schemas/workspace_document_render_v1_0_0Output"}}]}