application · active
TopoloCommerce
TopoloCommerce is the multi-vertical commerce application for Topolo organizations that operate one or many venues, built on a shared commerce core with optional vertical packs enabled per venue. The workspace ships a Worker API that owns org and venue settings, module resolution, catalog state, guest sessions, carts, orders, service requests, and device metadata; an authenticated ops app for org and chain operations; a tablet-first station app for kitchen, POS, bar, and expo execution; and a public guest runtime. A local Venue Edge service acts as the venue authority for low-latency execution and syncs edge-authored operational records back to the cloud.
Documentation map
- TopoloCommerce — Public overview of the multi-vertical commerce platform for venue operations, guest runtimes, and staff execution.
Authority and runtime
- System ID
topolo-commerce- App IDs
- app_topolo_commerce
- Owners
- commerce
- Repositories
- apps/TopoloCommerce
- Hosts
- https://commerce.topolo.app, https://commerce-api.topolo.app, https://guest.topolo.app, https://station-commerce.topolo.app, https://commerce.stg.topolo.us, https://commerce-api.stg.topolo.us, https://guest.stg.topolo.us, https://station-commerce.stg.topolo.us
- Dependencies
- topolo-auth, applications-packages, topolo-mdm, topolo-nexus, topolo-device-platform, topolo-pay
Security and data ownership
- Risk tier
- high
- Tenant isolation
- organization_scoped
- Privacy classification
- restricted
- Storage
- d1, external_provider, r2
- Export and deletion
- planned
- Enterprise ready
- no
Source-derived capability inventory
Source revisions: apps/TopoloCommerce@76e2638beb52f038bbe3095e1a3b2e8fb83ce886
Declared actions: 66 · API routes: 100 · UI routes: 27
{
"id": "topolo-commerce",
"name": "TopoloCommerce",
"slug": "topolo-commerce",
"kind": "application",
"visibility": "public",
"repo_paths": [
"apps/TopoloCommerce"
],
"source_revisions": [
{
"source_path": "apps/TopoloCommerce",
"repository": "apps/TopoloCommerce",
"revision": "76e2638beb52f038bbe3095e1a3b2e8fb83ce886",
"ref": "origin/staging"
}
],
"source_counts": {
"source_files": 317,
"test_files": 121,
"test_cases": 0,
"migration_files": 44,
"database_tables": 0,
"manifests": 1,
"deploy_targets": 4,
"actions": 66,
"mobile_contracts": 1,
"notifications": 8,
"package_manifests": 8,
"deployment_configs": 0
},
"manifests": [
{
"source_path": "apps/TopoloCommerce/topolo.app.json",
"service_slug": "topolo-commerce",
"name": "topolo-commerce",
"app_id": "app_topolo_commerce",
"compatibility_date": "2026-04-10",
"primary_target": "ops",
"environments": [
"development",
"production",
"staging"
],
"targets": [
{
"name": "api",
"kind": "worker",
"directory": "apps/api",
"main": "src/index.js",
"worker_name": "topolo-commerce-api",
"subdomain": null,
"healthcheck_path": "/health",
"variable_names": [
"APP_ID",
"COMMERCE_PUBLIC_BASE_URL",
"CORS_ORIGINS",
"DEVICE_OFFLINE_AFTER_SECONDS",
"ENVIRONMENT",
"GUEST_WEB_ORIGIN",
"MDM_API_URL",
"NEXUS_GATEWAY_URL",
"NEXUS_VOICE_FALLBACK_MODEL",
"NEXUS_VOICE_FALLBACK_PROVIDER",
"NEXUS_VOICE_FINAL_FALLBACK_MODEL",
"NEXUS_VOICE_FINAL_FALLBACK_PROVIDER",
"NEXUS_VOICE_MODEL",
"NEXUS_VOICE_PROVIDER",
"NEXUS_VOICE_TRANSCRIPTION_MODEL",
"QURO_API_URL",
"QURO_REDIRECT_ORIGIN",
"SEED_CONTRACT_VERSION",
"SERVICE_SLUG",
"TOPOLO_AUTH_URL",
"TOPOLO_NOTIFY_URL"
],
"secret_names": [],
"bindings": [
{
"kind": "d1",
"binding": "COMMERCE_CORE_DB",
"target": null
},
{
"kind": "d1",
"binding": "COMMERCE_ORDERS_DB",
"target": null
},
{
"kind": "d1",
"binding": "COMMERCE_SYNC_DB",
"target": null
},
{
"kind": "d1",
"binding": "COMMERCE_PAYMENTS_DB",
"target": null
},
{
"kind": "r2",
"binding": "COMMERCE_ASSETS",
"target": null
},
{
"kind": "durableObjects",
"binding": "VENUE_QUEUE_COORDINATOR",
"target": null
},
{
"kind": "services",
"binding": "TOPOLO_NEXUS",
"target": null
},
{
"kind": "services",
"binding": "TOPOLO_NEXUS",
"target": null
},
{
"kind": "services",
"binding": "TOPOLO_MDM",
"target": null
},
{
"kind": "services",
"binding": "TOPOLO_MDM",
"target": null
}
]
},
{
"name": "ops",
"kind": "worker",
"directory": "apps/ops",
"main": "src/worker.ts",
"worker_name": "topolo-commerce-ops-web",
"subdomain": "commerce",
"healthcheck_path": null,
"variable_names": [
"AUTH_API_URL",
"VITE_COMMERCE_API_URL"
],
"secret_names": [],
"bindings": [
{
"kind": "services",
"binding": "API",
"target": null
}
]
},
{
"name": "guest",
"kind": "worker",
"directory": "apps/guest",
"main": "src/worker.ts",
"worker_name": "topolo-commerce-guest-web",
"subdomain": "guest",
"healthcheck_path": null,
"variable_names": [
"AUTH_API_URL",
"VITE_COMMERCE_API_URL"
],
"secret_names": [],
"bindings": [
{
"kind": "services",
"binding": "API",
"target": null
}
]
},
{
"name": "station",
"kind": "worker",
"directory": "apps/station",
"main": "src/worker.ts",
"worker_name": "topolo-commerce-station-web",
"subdomain": "station-commerce",
"healthcheck_path": null,
"variable_names": [
"AUTH_API_URL",
"VITE_COMMERCE_API_URL"
],
"secret_names": [],
"bindings": [
{
"kind": "services",
"binding": "API",
"target": null
}
]
}
],
"notifications": [
"commerce.catalog.publish_failed",
"commerce.device.offline",
"commerce.order.cancelled",
"commerce.order.confirmed",
"commerce.order.created",
"commerce.order.ready",
"commerce.service_request.created",
"commerce.service_request.status_changed"
],
"notification_contract": {
"source_path": "topolo.notification-contracts.json",
"role": "producer",
"schema_version": 1,
"owner_app_id": "app_topolo_commerce",
"events": [
{
"type": "commerce.catalog.publish_failed",
"version": 1,
"description": "A rejected live-catalog publication attempt was persisted before delivery to its operator.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"attempt_id",
"catalog_id",
"revision",
"failure_reason",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"attempt_id": {
"type": "string",
"minLength": 1
},
"catalog_id": {
"type": "string",
"minLength": 1
},
"revision": {
"type": "integer",
"minimum": 1
},
"failure_reason": {
"type": "string",
"minLength": 1
},
"surface": {
"type": "string",
"const": "action"
},
"action_kind": {
"type": "string",
"const": "resolve"
},
"action_status": {
"type": "string",
"const": "open"
},
"priority": {
"type": "string",
"const": "high"
},
"category": {
"type": "string",
"const": "commerce"
},
"severity": {
"type": "string",
"const": "critical"
},
"object_type": {
"type": "string",
"const": "commerce_catalog_publish"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "Catalog publication failed: Dinner",
"body": "A published catalog requires at least one section with one item.",
"object_id": "attempt_1",
"attempt_id": "attempt_1",
"catalog_id": "catalog_1",
"revision": 3,
"failure_reason": "A published catalog requires at least one section with one item.",
"surface": "action",
"action_kind": "resolve",
"action_status": "open",
"priority": "high",
"category": "commerce",
"severity": "critical",
"object_type": "commerce_catalog_publish",
"occurred_at": "2026-07-20T00:00:00.000Z",
"cta_url": "https://commerce.topolo.app/venues/venue_1/catalog"
}
],
"dataClassification": "internal",
"sensitiveFields": [
"failure_reason"
],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^commerce:catalog-publish-failed:"
}
},
{
"type": "commerce.device.offline",
"version": 1,
"description": "A venue edge device exceeded its configured heartbeat threshold and a durable incident was committed before delivery.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"device_id",
"device_label",
"last_seen_at",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"device_id": {
"type": "string",
"minLength": 1
},
"device_label": {
"type": "string",
"minLength": 1
},
"last_seen_at": {
"type": "string",
"format": "date-time"
},
"surface": {
"type": "string",
"const": "action"
},
"action_kind": {
"type": "string",
"const": "resolve"
},
"action_status": {
"type": "string",
"const": "open"
},
"priority": {
"type": "string",
"const": "urgent"
},
"category": {
"type": "string",
"const": "commerce"
},
"severity": {
"type": "string",
"const": "critical"
},
"object_type": {
"type": "string",
"const": "commerce_device"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "Device offline: Kitchen Station",
"body": "Kitchen Station has not checked in for 900 seconds.",
"object_id": "device_1",
"device_id": "device_1",
"device_label": "Kitchen Station",
"last_seen_at": "2026-07-20T00:00:00.000Z",
"surface": "action",
"action_kind": "resolve",
"action_status": "open",
"priority": "urgent",
"category": "commerce",
"severity": "critical",
"object_type": "commerce_device",
"occurred_at": "2026-07-20T00:15:00.000Z",
"cta_url": "https://commerce.topolo.app/venues/venue_1/devices"
}
],
"dataClassification": "internal",
"sensitiveFields": [
"device_label"
],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^commerce:device-offline:"
}
},
{
"type": "commerce.order.created",
"version": 1,
"description": "A new order and its operations ticket were committed before venue-staff delivery.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"order_id",
"status",
"total_cents",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"order_id": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"const": "queued"
},
"total_cents": {
"type": "integer",
"minimum": 0
},
"surface": {
"type": "string",
"const": "notification"
},
"priority": {
"type": "string",
"const": "normal"
},
"category": {
"type": "string",
"const": "commerce"
},
"severity": {
"type": "string",
"const": "info"
},
"object_type": {
"type": "string",
"const": "commerce_order"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "New commerce order",
"body": "Guest order: Charred Corn Toast",
"object_id": "order_1",
"order_id": "order_1",
"status": "queued",
"total_cents": 1200,
"surface": "notification",
"priority": "normal",
"category": "commerce",
"severity": "info",
"object_type": "commerce_order",
"occurred_at": "2026-07-20T00:00:00.000Z",
"cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
}
],
"dataClassification": "confidential",
"sensitiveFields": [
"body"
],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^commerce:order-created:"
}
},
{
"type": "commerce.order.confirmed",
"version": 1,
"description": "An order moved durably from the queue into active fulfilment before delivery.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"order_id",
"previous_status",
"status",
"total_cents",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"order_id": {
"type": "string",
"minLength": 1
},
"previous_status": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"const": "active"
},
"total_cents": {
"type": "integer",
"minimum": 0
},
"surface": {
"type": "string",
"const": "action"
},
"action_kind": {
"type": "string",
"const": "complete"
},
"action_status": {
"type": "string",
"const": "open"
},
"priority": {
"type": "string",
"const": "normal"
},
"category": {
"type": "string",
"const": "commerce"
},
"severity": {
"type": "string",
"const": "info"
},
"object_type": {
"type": "string",
"const": "commerce_order"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "Order confirmed",
"body": "Guest order: Charred Corn Toast",
"object_id": "order_1",
"order_id": "order_1",
"previous_status": "queued",
"status": "active",
"total_cents": 1200,
"surface": "action",
"action_kind": "complete",
"action_status": "open",
"priority": "normal",
"category": "commerce",
"severity": "info",
"object_type": "commerce_order",
"occurred_at": "2026-07-20T00:01:00.000Z",
"cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
}
],
"dataClassification": "confidential",
"sensitiveFields": [
"body"
],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^commerce:order-confirmed:"
}
},
{
"type": "commerce.order.ready",
"version": 1,
"description": "An order moved durably into the completed and ready terminal state before delivery.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"order_id",
"previous_status",
"status",
"total_cents",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"order_id": {
"type": "string",
"minLength": 1
},
"previous_status": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"const": "completed"
},
"total_cents": {
"type": "integer",
"minimum": 0
},
"surface": {
"type": "string",
"const": "notification"
},
"priority": {
"type": "string",
"const": "high"
},
"category": {
"type": "string",
"const": "commerce"
},
"severity": {
"type": "string",
"const": "success"
},
"object_type": {
"type": "string",
"const": "commerce_order"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "Order ready",
"body": "Guest order: Charred Corn Toast",
"object_id": "order_1",
"order_id": "order_1",
"previous_status": "active",
"status": "completed",
"total_cents": 1200,
"surface": "notification",
"priority": "high",
"category": "commerce",
"severity": "success",
"object_type": "commerce_order",
"occurred_at": "2026-07-20T00:10:00.000Z",
"cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
}
],
"dataClassification": "confidential",
"sensitiveFields": [
"body"
],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^commerce:order-ready:"
}
},
{
"type": "commerce.order.cancelled",
"version": 1,
"description": "An order moved durably into the cancelled terminal state before delivery.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"order_id",
"previous_status",
"status",
"total_cents",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"order_id": {
"type": "string",
"minLength": 1
},
"previous_status": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"const": "cancelled"
},
"total_cents": {
"type": "integer",
"minimum": 0
},
"surface": {
"type": "string",
"const": "action"
},
"action_kind": {
"type": "string",
"const": "review"
},
"action_status": {
"type": "string",
"const": "open"
},
"priority": {
"type": "string",
"const": "high"
},
"category": {
"type": "string",
"const": "commerce"
},
"severity": {
"type": "string",
"const": "warning"
},
"object_type": {
"type": "string",
"const": "commerce_order"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "Order cancelled",
"body": "Guest order: Charred Corn Toast",
"object_id": "order_2",
"order_id": "order_2",
"previous_status": "queued",
"status": "cancelled",
"total_cents": 1200,
"surface": "action",
"action_kind": "review",
"action_status": "open",
"priority": "high",
"category": "commerce",
"severity": "warning",
"object_type": "commerce_order",
"occurred_at": "2026-07-20T00:02:00.000Z",
"cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
}
],
"dataClassification": "confidential",
"sensitiveFields": [
"body"
],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^commerce:order-cancelled:"
}
},
{
"type": "commerce.service_request.created",
"version": 1,
"description": "A guest service request and its operations ticket were committed before venue-staff delivery.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"service_request_id",
"status",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"service_request_id": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"const": "queued"
},
"surface": {
"type": "string",
"const": "action"
},
"action_kind": {
"type": "string",
"const": "complete"
},
"action_status": {
"type": "string",
"const": "open"
},
"priority": {
"type": "string",
"const": "high"
},
"category": {
"type": "string",
"const": "commerce"
},
"severity": {
"type": "string",
"const": "info"
},
"object_type": {
"type": "string",
"const": "commerce_service_request"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "New service request",
"body": "Need napkins",
"object_id": "request_1",
"service_request_id": "request_1",
"status": "queued",
"surface": "action",
"action_kind": "complete",
"action_status": "open",
"priority": "high",
"category": "commerce",
"severity": "info",
"object_type": "commerce_service_request",
"occurred_at": "2026-07-20T00:00:00.000Z",
"cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
}
],
"dataClassification": "confidential",
"sensitiveFields": [
"body"
],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^commerce:service-request-created:"
}
},
{
"type": "commerce.service_request.status_changed",
"version": 1,
"description": "A service request changed durable workflow status before delivery.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"service_request_id",
"previous_status",
"status",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"service_request_id": {
"type": "string",
"minLength": 1
},
"previous_status": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"minLength": 1
},
"surface": {
"type": "string",
"const": "notification"
},
"priority": {
"type": "string",
"const": "normal"
},
"category": {
"type": "string",
"const": "commerce"
},
"severity": {
"type": "string",
"enum": [
"info",
"success",
"warning"
]
},
"object_type": {
"type": "string",
"const": "commerce_service_request"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "Service request updated",
"body": "Need napkins",
"object_id": "request_1",
"service_request_id": "request_1",
"previous_status": "queued",
"status": "cancelled",
"surface": "notification",
"priority": "normal",
"category": "commerce",
"severity": "warning",
"object_type": "commerce_service_request",
"occurred_at": "2026-07-20T00:02:00.000Z",
"cta_url": "https://commerce.topolo.app/venues/venue_1/queues"
}
],
"dataClassification": "confidential",
"sensitiveFields": [
"body"
],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^commerce:service-request-status:"
}
}
]
},
"actions": [
{
"name": "organizations.data.export",
"title": "Export organization data",
"description": "Export organization-authored Commerce data and object metadata without credentials or binary payloads.",
"method": "GET",
"path": "/api/organizations/{organizationId}/data",
"permission": "privacy:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organizationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"organizationId"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"organizationId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/organizations/example/data",
"body": null
},
"effects": "Reads state through GET /api/organizations/{organizationId}/data without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/organizations/*/data",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "organizations.data.erase",
"title": "Erase organization data",
"description": "Erase organization-authored Commerce data, object storage, and live queue projections after literal ERASE confirmation.",
"method": "DELETE",
"path": "/api/organizations/{organizationId}/data",
"permission": "privacy:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organizationId": {
"type": "string",
"minLength": 1
},
"confirmation": {
"type": "string",
"const": "ERASE"
}
},
"required": [
"organizationId",
"confirmation"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": true,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"organizationId": "example",
"confirmation": "ERASE"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/organizations/example/data",
"body": null
},
"effects": "May change state through DELETE /api/organizations/{organizationId}/data. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/organizations/*/data",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "workspaces.delete",
"title": "Delete workspace",
"description": "Delete an empty non-default Commerce workspace.",
"method": "DELETE",
"path": "/api/workspaces/{workspaceId}",
"permission": "workspace:delete",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
}
},
"required": [
"workspaceId"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": true,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"workspaceId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/workspaces/example",
"body": null
},
"effects": "May change state through DELETE /api/workspaces/{workspaceId}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/workspaces/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "widget.get",
"title": "Get widget summary",
"description": "Get the TopoloOne widget summary for this service.",
"method": "GET",
"path": "/api/widget",
"permission": "dashboard:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/widget",
"body": null
},
"effects": "Reads state through GET /api/widget without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/widget",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "org.context.get",
"title": "Get commerce context",
"description": "Get commerce organization context.",
"method": "GET",
"path": "/api/org/context",
"permission": "dashboard:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get commerce context.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/org/context",
"body": null
},
"effects": "Reads state through GET /api/org/context without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/org/context",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.list",
"title": "List venues",
"description": "List commerce venues.",
"method": "GET",
"path": "/api/venues",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List venues.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues",
"body": null
},
"effects": "Reads state through GET /api/venues without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.create",
"title": "Create venue",
"description": "Create a commerce venue.",
"method": "POST",
"path": "/api/venues",
"permission": "venues:write",
"readOnly": false,
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"slug": {
"type": "string"
},
"presetKey": {
"type": "string"
},
"verticalPack": {
"type": "string"
},
"serviceModel": {
"type": "string"
},
"paymentMode": {
"type": "string"
},
"summary": {
"type": "string"
},
"experience": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"moduleOverrides": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"catalogSeed": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"name",
"clientMutationId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Create venue.",
"additionalProperties": true
},
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"name": "example",
"clientMutationId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues",
"body": {
"name": "example",
"clientMutationId": "example"
}
},
"effects": "May change state through POST /api/venues. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.get",
"title": "Get venue",
"description": "Get one commerce venue.",
"method": "GET",
"path": "/api/venues/{venueId}",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get venue.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.update",
"title": "Update venue",
"description": "Update a Commerce venue.",
"method": "PUT",
"path": "/api/venues/{venueId}",
"permission": "settings:write",
"readOnly": false,
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"presetKey": {
"type": "string"
},
"moduleSettings": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"enabledModules": {
"type": "array",
"items": {
"type": "string"
}
},
"disabledModules": {
"type": "array",
"items": {
"type": "string"
}
},
"moduleOverrides": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update venue.",
"additionalProperties": true
},
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example",
"body": {
"venueId": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "devices.list",
"title": "List venue devices",
"description": "List devices for a venue.",
"method": "GET",
"path": "/api/venues/{venueId}/devices",
"permission": "devices:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List venue devices.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/devices",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/devices without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/devices",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "orders.list",
"title": "List orders",
"description": "List commerce orders.",
"method": "GET",
"path": "/api/orders",
"permission": "queues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List orders.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/orders",
"body": null
},
"effects": "Reads state through GET /api/orders without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/orders",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "orders.create",
"title": "Create order",
"description": "Create a commerce order.",
"method": "POST",
"path": "/api/orders",
"authorizationMode": "public",
"readOnly": false,
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"lines": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"itemId": {
"type": "string",
"minLength": 1
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"notes": {
"type": "string"
},
"selectedModifiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"groupId": {
"type": "string",
"minLength": 1
},
"optionIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"groupId"
],
"additionalProperties": false
}
}
},
"required": [
"itemId"
],
"additionalProperties": false
}
},
"guestSessionId": {
"type": "string"
},
"tableTabMemberId": {
"type": "string"
},
"deviceToken": {
"type": "string"
},
"tableLabel": {
"type": "string"
},
"zoneLabel": {
"type": "string"
},
"note": {
"type": "string"
},
"source": {
"type": "string"
},
"draftOrderId": {
"type": "string"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"lines"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Create order.",
"additionalProperties": true
},
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"lines": [
{
"itemId": "example"
}
]
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/orders",
"body": {
"venueId": "example",
"lines": [
{
"itemId": "example"
}
]
}
},
"effects": "May change state through POST /api/orders. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/orders",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "service_requests.list",
"title": "List service requests",
"description": "List commerce service requests.",
"method": "GET",
"path": "/api/service-requests",
"authorizationMode": "public",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"guestSessionId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"guestSessionId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List service requests.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example",
"guestSessionId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/service-requests",
"body": null
},
"effects": "Reads state through GET /api/service-requests without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/service-requests",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "service_requests.update",
"title": "Update service request",
"description": "Update one service request.",
"method": "PATCH",
"path": "/api/service-requests/{requestId}",
"authorizationMode": "public",
"readOnly": false,
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"requestId": {
"type": "string",
"minLength": 1
},
"guestSessionId": {
"type": "string",
"minLength": 1
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"requestId",
"guestSessionId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update service request.",
"additionalProperties": true
},
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"requestId": "example",
"guestSessionId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PATCH",
"path": "/api/service-requests/example",
"body": {
"requestId": "example",
"guestSessionId": "example"
}
},
"effects": "May change state through PATCH /api/service-requests/{requestId}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PATCH /api/service-requests/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "payment_sessions.create",
"title": "Create payment session",
"description": "Create a commerce payment session.",
"method": "POST",
"path": "/api/payment-sessions",
"permission": "payments:create",
"readOnly": false,
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"orderId": {
"type": "string"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Create payment session.",
"additionalProperties": true
},
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/payment-sessions",
"body": {
"venueId": "example"
}
},
"effects": "May change state through POST /api/payment-sessions. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/payment-sessions",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "publishing.push",
"title": "Push venue edge update",
"description": "Push venue edge/runtime state.",
"method": "POST",
"path": "/api/venues/{venueId}/edge/push",
"authorizationMode": "public",
"readOnly": false,
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"events": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"runtimeState": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"required": [
"venueId",
"events"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Push venue edge update.",
"additionalProperties": true
},
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"events": [
{}
]
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/edge/push",
"body": {
"venueId": "example",
"events": [
{}
]
}
},
"effects": "May change state through POST /api/venues/{venueId}/edge/push. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/edge/push",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "org.module_settings.get",
"title": "Get module settings",
"description": "Get Commerce organization module settings.",
"method": "GET",
"path": "/api/org/module-settings",
"permission": "settings:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get module settings.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/org/module-settings",
"body": null
},
"effects": "Reads state through GET /api/org/module-settings without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/org/module-settings",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "org.module_settings.update",
"title": "Update module settings",
"description": "Update Commerce organization module settings.",
"method": "PUT",
"path": "/api/org/module-settings",
"permission": "settings:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"presetKey": {
"type": "string"
},
"moduleSettings": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"enabledModules": {
"type": "array",
"items": {
"type": "string"
}
},
"disabledModules": {
"type": "array",
"items": {
"type": "string"
}
},
"moduleOverrides": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update module settings.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"presetKey": "example",
"moduleSettings": {},
"enabledModules": [
"example"
]
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/org/module-settings",
"body": {
"presetKey": "example",
"moduleSettings": {},
"enabledModules": [
"example"
]
}
},
"effects": "May change state through PUT /api/org/module-settings. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/org/module-settings",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "org.module_settings.resolve",
"title": "Resolve module settings",
"description": "Resolve Commerce module settings.",
"method": "POST",
"path": "/api/org/module-settings/resolve",
"permission": "settings:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"presetKey": {
"type": "string"
},
"orgSettings": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"venueOverrides": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Resolve module settings.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"presetKey": "example",
"orgSettings": {},
"venueOverrides": {}
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/org/module-settings/resolve",
"body": {
"presetKey": "example",
"orgSettings": {},
"venueOverrides": {}
}
},
"effects": "May change state through POST /api/org/module-settings/resolve. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/org/module-settings/resolve",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "org.hub_tiles.update",
"title": "Update hub tiles",
"description": "Update Commerce organization hub tiles.",
"method": "PUT",
"path": "/api/org/hub-tiles",
"permission": "settings:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"tiles": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update hub tiles.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"tiles": [
{}
],
"clientMutationId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/org/hub-tiles",
"body": {
"tiles": [
{}
],
"clientMutationId": "example"
}
},
"effects": "May change state through PUT /api/org/hub-tiles. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/org/hub-tiles",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.experience.get",
"title": "Get venue experience",
"description": "Get Commerce venue experience settings.",
"method": "GET",
"path": "/api/venues/{venueId}/experience",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get venue experience.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/experience",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/experience without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/experience",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.experience.update",
"title": "Update venue experience",
"description": "Update Commerce venue experience settings.",
"method": "PUT",
"path": "/api/venues/{venueId}/experience",
"permission": "settings:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"presentationMode": {
"type": "string"
},
"fontPreset": {
"type": "string"
},
"menuCardStyle": {
"type": "string"
},
"serviceActionStyle": {
"type": "string"
},
"accentColor": {
"type": "string"
},
"currency": {
"type": "string"
},
"locale": {
"type": "string"
},
"brandSurface": {
"type": "string"
},
"logoUrl": {
"type": "string"
},
"orderIntentTimer": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update venue experience.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/experience",
"body": {
"venueId": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/experience. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/experience",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.hub_tiles.update",
"title": "Update venue hub tiles",
"description": "Update Commerce venue hub tiles.",
"method": "PUT",
"path": "/api/venues/{venueId}/hub-tiles",
"permission": "settings:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"tiles": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update venue hub tiles.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/hub-tiles",
"body": {
"venueId": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/hub-tiles. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/hub-tiles",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.catalog.get",
"title": "Get venue catalog",
"description": "Get a Commerce venue catalog.",
"method": "GET",
"path": "/api/venues/{venueId}/catalog",
"authorizationMode": "public",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get venue catalog.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/catalog",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/catalog without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/catalog",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.catalog.update",
"title": "Update venue catalog",
"description": "Update a Commerce venue catalog.",
"method": "PUT",
"path": "/api/venues/{venueId}/catalog",
"permission": "catalog:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string"
},
"kind": {
"type": "string"
},
"sections": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"serviceActions": {
"type": "array",
"items": {
"type": "string"
}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update venue catalog.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/catalog",
"body": {
"venueId": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/catalog. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/catalog",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.beverage_guide.get",
"title": "Get beverage guide",
"description": "Get Commerce venue beverage guide.",
"method": "GET",
"path": "/api/venues/{venueId}/beverage-guide",
"authorizationMode": "public",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get beverage guide.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/beverage-guide",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/beverage-guide without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/beverage-guide",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.resilience_state.get",
"title": "Get resilience state",
"description": "Get Commerce venue resilience state.",
"method": "GET",
"path": "/api/venues/{venueId}/resilience/state",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get resilience state.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/resilience/state",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/resilience/state without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/resilience/state",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.devices.link",
"title": "Link venue device",
"description": "Link a Commerce venue device.",
"method": "POST",
"path": "/api/venues/{venueId}/devices/link",
"permission": "devices:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"mdmDeviceId": {
"type": "string"
},
"deviceId": {
"type": "string"
},
"commerceDeviceId": {
"type": "string"
},
"mdmLabel": {
"type": "string"
},
"label": {
"type": "string"
},
"roleKey": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string"
},
"assignmentMode": {
"type": "string"
},
"assignedStaffId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"deviceType": {
"type": "string"
},
"authPolicy": {
"type": "string"
},
"localIdentifier": {
"type": "string"
},
"mdmLastSeenAt": {
"type": "number"
},
"mdmManufacturer": {
"type": "string"
},
"mdmModel": {
"type": "string"
},
"mdmSerialNumber": {
"type": "string"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"roleKey"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Link venue device.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"roleKey": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/devices/link",
"body": {
"venueId": "example",
"roleKey": "example"
}
},
"effects": "May change state through POST /api/venues/{venueId}/devices/link. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/devices/link",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.devices.profile.update",
"title": "Update venue device profile",
"description": "Update a Commerce venue device profile.",
"method": "PUT",
"path": "/api/venues/{venueId}/devices/{deviceId}/profile",
"permission": "devices:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"deviceId": {
"type": "string",
"minLength": 1
},
"profile": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"mode": {
"type": "string"
},
"kioskState": {
"type": "string"
},
"policyPreset": {
"type": "string"
},
"launcherPackage": {
"type": "string"
},
"launcherTarget": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"contentAssignment": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"metadata": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"deviceId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update venue device profile.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"deviceId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/devices/example/profile",
"body": {
"venueId": "example",
"deviceId": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/devices/{deviceId}/profile. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/devices/*/profile",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.devices.command.create",
"title": "Create venue device command",
"description": "Create a Commerce venue device command.",
"method": "POST",
"path": "/api/venues/{venueId}/devices/{deviceId}/command",
"permission": "devices:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"deviceId": {
"type": "string",
"minLength": 1
},
"action": {
"type": "string",
"minLength": 1
},
"commandId": {
"type": "string"
},
"parameters": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"packageName": {
"type": "string"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"deviceId",
"action"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Create venue device command.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"deviceId": "example",
"action": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/devices/example/command",
"body": {
"venueId": "example",
"deviceId": "example",
"action": "example"
}
},
"effects": "May change state through POST /api/venues/{venueId}/devices/{deviceId}/command. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/devices/*/command",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.payment_reconciliations.list",
"title": "List payment reconciliations",
"description": "List Commerce venue payment reconciliations.",
"method": "GET",
"path": "/api/venues/{venueId}/payment-reconciliations",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List payment reconciliations.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/payment-reconciliations",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/payment-reconciliations without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/payment-reconciliations",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.payment_reconciliations.create",
"title": "Create payment reconciliation",
"description": "Create a Commerce venue payment reconciliation.",
"method": "POST",
"path": "/api/venues/{venueId}/payment-reconciliations",
"permission": "payments:create",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"orderId": {
"type": "string",
"minLength": 1
},
"id": {
"type": "string"
},
"settlementKind": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string"
},
"amountCents": {
"type": "number"
},
"externalReference": {
"type": "string"
},
"note": {
"type": "string"
},
"source": {
"type": "string"
},
"recordedAt": {
"type": "number"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"orderId",
"settlementKind"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Create payment reconciliation.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"orderId": "example",
"settlementKind": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/payment-reconciliations",
"body": {
"venueId": "example",
"orderId": "example",
"settlementKind": "example"
}
},
"effects": "May change state through POST /api/venues/{venueId}/payment-reconciliations. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/payment-reconciliations",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.sync_policy.get",
"title": "Get sync policy",
"description": "Get Commerce venue sync policy.",
"method": "GET",
"path": "/api/venues/{venueId}/sync-policy",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get sync policy.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/sync-policy",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/sync-policy without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/sync-policy",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.sync_policy.update",
"title": "Update sync policy",
"description": "Update Commerce venue sync policy.",
"method": "PUT",
"path": "/api/venues/{venueId}/sync-policy",
"permission": "settings:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"preferredSyncMode": {
"type": "string"
},
"rescueUplinkEnabled": {
"type": "boolean"
},
"rescueActivationAfterSeconds": {
"type": "number"
},
"unsyncedEventThreshold": {
"type": "number"
},
"maxRescueSessionMinutes": {
"type": "number"
},
"minPrimaryHealthySeconds": {
"type": "number"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update sync policy.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/sync-policy",
"body": {
"venueId": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/sync-policy. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/sync-policy",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.staff_notifications.list",
"title": "List staff notifications",
"description": "List Commerce venue staff notifications.",
"method": "GET",
"path": "/api/venues/{venueId}/staff-notifications",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"staffMemberId": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List staff notifications.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/staff-notifications",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/staff-notifications without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/staff-notifications",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.staff_notifications.update",
"title": "Update staff notification",
"description": "Update a Commerce staff notification.",
"method": "PUT",
"path": "/api/venues/{venueId}/staff-notifications/{notificationId}",
"permission": "queues:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"notificationId": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"enum": [
"pending",
"accepted",
"dismissed"
]
},
"acceptedAt": {
"type": "number"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"notificationId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update staff notification.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"notificationId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/staff-notifications/example",
"body": {
"venueId": "example",
"notificationId": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/staff-notifications/{notificationId}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/staff-notifications/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.edge_nodes.list",
"title": "List edge nodes",
"description": "List Commerce venue edge nodes.",
"method": "GET",
"path": "/api/venues/{venueId}/edge/nodes",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List edge nodes.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/edge/nodes",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/edge/nodes without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/edge/nodes",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.edge_nodes.create",
"title": "Create edge node",
"description": "Create a Commerce venue edge node.",
"method": "POST",
"path": "/api/venues/{venueId}/edge/nodes",
"permission": "settings:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"nodeLabel": {
"type": "string",
"minLength": 1
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
}
},
"localEndpoint": {
"type": "string"
},
"notes": {
"type": "string"
},
"connectivityPolicy": {
"type": "string"
},
"metadata": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"nodeLabel"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Create edge node.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"nodeLabel": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/edge/nodes",
"body": {
"venueId": "example",
"nodeLabel": "example"
}
},
"effects": "May change state through POST /api/venues/{venueId}/edge/nodes. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/edge/nodes",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.imports.list",
"title": "List imports",
"description": "List Commerce venue imports.",
"method": "GET",
"path": "/api/venues/{venueId}/imports",
"permission": "imports:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List imports.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/imports",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/imports without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/imports",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.imports.create",
"title": "Create import",
"description": "Create a Commerce venue import.",
"method": "POST",
"path": "/api/venues/{venueId}/imports",
"permission": "imports:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"sourceType": {
"type": "string"
},
"sourceName": {
"type": "string"
},
"notes": {
"type": "string"
},
"requestedVerticalPack": {
"type": "string"
},
"draftSummary": {
"type": "string"
},
"sourceFile": {
"type": "object",
"properties": {
"dataUrl": {
"type": "string",
"minLength": 1
},
"filename": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"dataUrl"
],
"additionalProperties": {}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Create import.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/imports",
"body": {
"venueId": "example"
}
},
"effects": "May change state through POST /api/venues/{venueId}/imports. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/imports",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.imports.approve",
"title": "Approve import",
"description": "Approve a Commerce venue import.",
"method": "PUT",
"path": "/api/venues/{venueId}/imports/{importId}/approve",
"permission": "imports:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"importId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"importId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Approve import.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"importId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/imports/example/approve",
"body": {
"venueId": "example",
"importId": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/imports/{importId}/approve. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/imports/*/approve",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.imports.reject",
"title": "Reject import",
"description": "Reject a Commerce venue import.",
"method": "PUT",
"path": "/api/venues/{venueId}/imports/{importId}/reject",
"permission": "imports:write",
"requiresConfirmation": true,
"destructive": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"importId": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"importId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Reject import.",
"additionalProperties": true
},
"readOnly": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"importId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/imports/example/reject",
"body": {
"venueId": "example",
"importId": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/imports/{importId}/reject. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/imports/*/reject",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.imports.get",
"title": "Get import",
"description": "Get a Commerce venue import.",
"method": "GET",
"path": "/api/venues/{venueId}/imports/{importId}",
"permission": "imports:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"importId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"importId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get import.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example",
"importId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/imports/example",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/imports/{importId} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/imports/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.imports.asset.get",
"title": "Get import asset",
"description": "Get a Commerce venue import asset.",
"method": "GET",
"path": "/api/venues/{venueId}/imports/{importId}/asset",
"permission": "imports:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"importId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"importId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get import asset.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example",
"importId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/imports/example/asset",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/imports/{importId}/asset without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/imports/*/asset",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.ops_voice.resolve",
"title": "Resolve ops voice",
"description": "Resolve Commerce ops voice input.",
"method": "POST",
"path": "/api/venues/{venueId}/ops/voice/resolve",
"permission": "settings:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"transcript": {
"type": "string"
},
"utterance": {
"type": "string"
},
"audioDataUrl": {
"type": "string"
},
"mimeType": {
"type": "string"
},
"durationMs": {
"type": "number"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Resolve ops voice.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/ops/voice/resolve",
"body": {
"venueId": "example"
}
},
"effects": "May change state through POST /api/venues/{venueId}/ops/voice/resolve. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/ops/voice/resolve",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.ops_tickets.list",
"title": "List ops tickets",
"description": "List Commerce venue ops tickets.",
"method": "GET",
"path": "/api/venues/{venueId}/ops/tickets",
"permission": "queues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List ops tickets.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/ops/tickets",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/ops/tickets without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/ops/tickets",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.ops_live_state.get",
"title": "Get ops live state",
"description": "Get Commerce venue ops live state.",
"method": "GET",
"path": "/api/venues/{venueId}/ops/live-state",
"permission": "queues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get ops live state.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/ops/live-state",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/ops/live-state without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/ops/live-state",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.ops_live_stream_ticket.create",
"title": "Create live stream ticket",
"description": "Create a Commerce venue live stream ticket.",
"method": "POST",
"path": "/api/venues/{venueId}/ops/live-stream-ticket",
"permission": "queues:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Create live stream ticket.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/ops/live-stream-ticket",
"body": {
"venueId": "example"
}
},
"effects": "May change state through POST /api/venues/{venueId}/ops/live-stream-ticket. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/ops/live-stream-ticket",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.ops_tickets.update",
"title": "Update ops ticket",
"description": "Update a Commerce venue ops ticket.",
"method": "PUT",
"path": "/api/venues/{venueId}/ops/tickets/{ticketId}",
"permission": "queues:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"ticketId": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"enum": [
"queued",
"active",
"completed",
"cancelled"
]
},
"operatorNote": {
"type": "string"
},
"assignedStaffId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"assignedSectionId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"expectedUpdatedAt": {
"type": "number"
},
"expectedStatus": {
"type": "string"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"ticketId",
"status"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update ops ticket.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"ticketId": "example",
"status": "queued"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/ops/tickets/example",
"body": {
"venueId": "example",
"ticketId": "example",
"status": "queued"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/ops/tickets/{ticketId}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/ops/tickets/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.team.list",
"title": "List team",
"description": "List Commerce venue team members.",
"method": "GET",
"path": "/api/venues/{venueId}/team",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List team.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/team",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/team without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/team",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.staff_identity_methods.list",
"title": "List staff identity methods",
"description": "List Commerce staff identity methods.",
"method": "GET",
"path": "/api/venues/{venueId}/staff-identity-methods",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List staff identity methods.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/staff-identity-methods",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/staff-identity-methods without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/staff-identity-methods",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.team_sections.create",
"title": "Create team section",
"description": "Create a Commerce venue team section.",
"method": "POST",
"path": "/api/venues/{venueId}/team/sections",
"permission": "venues:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"id": {
"type": "string"
},
"name": {
"type": "string",
"minLength": 1
},
"zoneLabel": {
"type": "string"
},
"status": {
"type": "string"
},
"summary": {
"type": "string"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"name"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Create team section.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"name": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/team/sections",
"body": {
"venueId": "example",
"name": "example"
}
},
"effects": "May change state through POST /api/venues/{venueId}/team/sections. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/team/sections",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.team_members.create",
"title": "Create team member",
"description": "Create a Commerce venue team member.",
"method": "POST",
"path": "/api/venues/{venueId}/team/members",
"permission": "venues:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"id": {
"type": "string"
},
"userId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"displayName": {
"type": "string",
"minLength": 1
},
"roleKey": {
"type": "string",
"minLength": 1
},
"sectionId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string"
},
"deviceType": {
"type": "string"
},
"notificationLabel": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"displayName",
"roleKey"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Create team member.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"displayName": "example",
"roleKey": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/team/members",
"body": {
"venueId": "example",
"displayName": "example",
"roleKey": "example"
}
},
"effects": "May change state through POST /api/venues/{venueId}/team/members. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/team/members",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.team_members.update",
"title": "Update team member",
"description": "Update a Commerce venue team member.",
"method": "PUT",
"path": "/api/venues/{venueId}/team/members/{memberId}",
"permission": "venues:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"memberId": {
"type": "string",
"minLength": 1
},
"displayName": {
"type": "string"
},
"roleKey": {
"type": "string"
},
"sectionId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string"
},
"deviceType": {
"type": "string"
},
"notificationLabel": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"memberId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update team member.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"memberId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/team/members/example",
"body": {
"venueId": "example",
"memberId": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/team/members/{memberId}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/team/members/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.team_members.identity_methods.create",
"title": "Create team member identity method",
"description": "Create a Commerce team member identity method.",
"method": "POST",
"path": "/api/venues/{venueId}/team/members/{memberId}/identity-methods",
"permission": "venues:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"memberId": {
"type": "string",
"minLength": 1
},
"id": {
"type": "string"
},
"methodType": {
"type": "string",
"minLength": 1
},
"credential": {
"type": "string"
},
"credentialHash": {
"type": "string"
},
"credentialSalt": {
"type": "string"
},
"credentialAlgorithm": {
"type": "string"
},
"label": {
"type": "string"
},
"status": {
"type": "string"
},
"mustChangeOnFirstUse": {
"type": "boolean"
},
"mustChangeOnNextUse": {
"type": "boolean"
},
"lastUsedAt": {
"type": "number"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"memberId",
"methodType"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Create team member identity method.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"memberId": "example",
"methodType": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/team/members/example/identity-methods",
"body": {
"venueId": "example",
"memberId": "example",
"methodType": "example"
}
},
"effects": "May change state through POST /api/venues/{venueId}/team/members/{memberId}/identity-methods. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/team/members/*/identity-methods",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.security_policy.get",
"title": "Get security policy",
"description": "Get Commerce venue security policy.",
"method": "GET",
"path": "/api/venues/{venueId}/security-policy",
"permission": "settings:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get security policy.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/security-policy",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/security-policy without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/security-policy",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.security_policy.update",
"title": "Update security policy",
"description": "Update Commerce venue security policy.",
"method": "PATCH",
"path": "/api/venues/{venueId}/security-policy",
"permission": "settings:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"acceptedIdentityMethods": {
"type": "array",
"items": {
"type": "string"
}
},
"pinLength": {
"type": "number"
},
"idleTimeoutSecondsByStationMode": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"lockoutThresholdAttempts": {
"type": "number"
},
"lockoutWindowSeconds": {
"type": "number"
},
"lockoutDurationSeconds": {
"type": "number"
},
"discountStepUpThresholdCents": {
"type": "number"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update security policy.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PATCH",
"path": "/api/venues/example/security-policy",
"body": {
"venueId": "example"
}
},
"effects": "May change state through PATCH /api/venues/{venueId}/security-policy. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PATCH /api/venues/*/security-policy",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.operator_access_snapshot.get",
"title": "Get operator access snapshot",
"description": "Get Commerce operator access snapshot.",
"method": "GET",
"path": "/api/venues/{venueId}/operator-access-snapshot",
"permission": "settings:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get operator access snapshot.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/operator-access-snapshot",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/operator-access-snapshot without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/operator-access-snapshot",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.action_permissions.list",
"title": "List action permissions",
"description": "List Commerce venue action permissions.",
"method": "GET",
"path": "/api/venues/{venueId}/action-permissions",
"permission": "settings:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by List action permissions.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/action-permissions",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/action-permissions without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/action-permissions",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.action_permissions.update",
"title": "Update action permission",
"description": "Update Commerce venue action permission.",
"method": "PUT",
"path": "/api/venues/{venueId}/action-permissions/{actionKey}",
"permission": "settings:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"actionKey": {
"type": "string",
"minLength": 1
},
"requiredRoleKeys": {
"type": "array",
"items": {
"type": "string"
}
},
"stepUpRequired": {
"type": "boolean"
},
"payload": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"actionKey"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update action permission.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"actionKey": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/action-permissions/example",
"body": {
"venueId": "example",
"actionKey": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/action-permissions/{actionKey}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/action-permissions/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.tables.floor_plan.get",
"title": "Get floor plan",
"description": "Get Commerce venue table floor plan.",
"method": "GET",
"path": "/api/venues/{venueId}/tables/floor-plan",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get floor plan.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/tables/floor-plan",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/tables/floor-plan without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/tables/floor-plan",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.tables.floor_plan.update",
"title": "Update floor plan",
"description": "Update Commerce venue table floor plan.",
"method": "PUT",
"path": "/api/venues/{venueId}/tables/floor-plan",
"permission": "venues:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"floorPlan": {
"type": "object",
"properties": {
"gridCols": {
"type": "number"
},
"gridRows": {
"type": "number"
},
"tables": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"shape": {
"type": "string"
},
"capacity": {
"type": "number"
},
"sectionLabel": {
"type": "string"
},
"zone": {
"type": "string"
}
},
"additionalProperties": false
}
},
"version": {
"type": "number"
},
"updatedAt": {
"type": "string"
}
},
"additionalProperties": false
},
"gridCols": {
"type": "number"
},
"gridRows": {
"type": "number"
},
"tables": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"shape": {
"type": "string"
},
"capacity": {
"type": "number"
},
"sectionLabel": {
"type": "string"
},
"zone": {
"type": "string"
}
},
"additionalProperties": false
}
},
"ifVersion": {
"type": "number"
},
"version": {
"type": "number"
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Update floor plan.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/venues/example/tables/floor-plan",
"body": {
"venueId": "example"
}
},
"effects": "May change state through PUT /api/venues/{venueId}/tables/floor-plan. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/venues/*/tables/floor-plan",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.tables.qr_summary.get",
"title": "Get table QR summary",
"description": "Get Commerce venue table QR summary.",
"method": "GET",
"path": "/api/venues/{venueId}/tables/qr-summary",
"permission": "venues:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Get table QR summary.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"venueId": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/venues/example/tables/qr-summary",
"body": null
},
"effects": "Reads state through GET /api/venues/{venueId}/tables/qr-summary without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/venues/*/tables/qr-summary",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "venues.tables.sync_qr",
"title": "Sync table QR",
"description": "Sync Commerce venue table QR codes.",
"method": "POST",
"path": "/api/venues/{venueId}/tables/sync-qr",
"permission": "venues:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"tables": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"number": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
{
"type": "null"
}
]
},
"zone": {
"type": "string"
},
"sectionLabel": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
}
},
"clientMutationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"venueId",
"tables"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Sync table QR.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"tables": [
{
"id": "00000000-0000-4000-8000-000000000000"
}
]
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/venues/example/tables/sync-qr",
"body": {
"venueId": "example",
"tables": [
{
"id": "00000000-0000-4000-8000-000000000000"
}
]
}
},
"effects": "May change state through POST /api/venues/{venueId}/tables/sync-qr. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/venues/*/tables/sync-qr",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "assets.upload",
"title": "Upload asset",
"description": "Upload a Commerce admin asset.",
"method": "PUT",
"path": "/api/admin/upload-asset",
"permission": "catalog:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"venueId": {
"type": "string",
"minLength": 1
},
"contentBase64": {
"type": "string",
"minLength": 1,
"maxLength": 14000000
},
"contentType": {
"type": "string",
"enum": [
"image/png",
"image/jpeg",
"image/webp",
"image/gif"
]
},
"fileName": {
"type": "string",
"minLength": 1
},
"assetKind": {
"type": "string",
"enum": [
"catalog-images",
"voice-reviews"
]
}
},
"required": [
"venueId",
"contentBase64",
"contentType",
"fileName"
],
"additionalProperties": false
},
"agentContract": {
"upload": {
"profile": "inline-base64",
"contentField": "contentBase64",
"contentTypeField": "contentType",
"fileNameField": "fileName",
"maxBytes": 10485760,
"acceptedContentTypes": [
"image/png",
"image/jpeg",
"image/webp",
"image/gif"
]
}
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Upload asset.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"venueId": "example",
"contentBase64": "example",
"contentType": "image/png",
"fileName": "example"
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/admin/upload-asset",
"body": {
"venueId": "example",
"contentBase64": "example",
"contentType": "image/png",
"fileName": "example"
}
},
"effects": "May change state through PUT /api/admin/upload-asset. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/admin/upload-asset",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "catalog_images.generate",
"title": "Generate catalog images",
"description": "Generate Commerce catalog images.",
"method": "POST",
"path": "/api/admin/generate-catalog-images",
"permission": "catalog:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"items": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"venueId": {
"type": "string",
"minLength": 1
},
"prompt": {
"type": "string",
"minLength": 1
},
"provider": {
"type": "string"
},
"model": {
"type": "string"
}
},
"required": [
"id",
"venueId",
"prompt"
],
"additionalProperties": false
}
},
"provider": {
"type": "string"
},
"model": {
"type": "string"
}
},
"required": [
"items"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Generate catalog images.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"items": [
{
"id": "00000000-0000-4000-8000-000000000000",
"venueId": "example",
"prompt": "example"
}
]
},
"cli_example": [
"topolo actions --service topolo-commerce --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/admin/generate-catalog-images",
"body": {
"items": [
{
"id": "00000000-0000-4000-8000-000000000000",
"venueId": "example",
"prompt": "example"
}
]
}
},
"effects": "May change state through POST /api/admin/generate-catalog-images. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/admin/generate-catalog-images",
"evidence": "Matched to a served route extracted from canonical staging source."
}
}
],
"action_coverage": {
"status": "ok",
"served_routes": 111,
"matched_actions": 66,
"declared_unserved_actions": [],
"coverage_excluded_actions": [],
"uncatalogued_routes": [],
"ignored_routes": 45,
"configured_exclusions": 43,
"configuration_findings": [],
"notes": [
"no routes extracted from ops",
"no routes extracted from station",
"1 manually-declared route(s)"
]
},
"runtime_contract_audit": {
"status": "verified",
"actions": 66,
"contracts": 66,
"contract_module": "topolo.action-contracts.mjs",
"validator_sources": [
"apps/api/src/index.js"
],
"authorization_sources": [
"apps/api/src/index.js"
],
"findings": []
}
}
],
"mobile_contracts": [
{
"source_path": "apps/TopoloCommerce/topolo.mobile-experience.json",
"contract": {
"version": "2026-06-29",
"status": "approved",
"mode": "native_capability",
"appId": "app_topolo_commerce",
"localizationNamespace": "commerce",
"permissions": [
"venues:read",
"venues:write",
"settings:write",
"queues:read",
"service-requests:read"
],
"offlinePolicy": "read_through_cache",
"fallbackPath": "/venues",
"auth": {
"audience": "topolo-commerce",
"scopes": [
"venues:read",
"venues:write",
"settings:write",
"queues:read",
"service-requests:read"
]
},
"routes": [
{
"path": "/venues",
"apiPath": "/api/venues",
"title": "Venues",
"titleKey": "commerce.mobile.routes.venues.title",
"template": "record.list",
"dataSource": "commerce.venues.list",
"detailRoute": "/venues/:id",
"actions": [
{
"id": "commerce.venues.create",
"title": "Create venue",
"type": "record.create",
"permission": "venues:write",
"method": "POST",
"path": "/api/venues",
"fields": [
{
"key": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"key": "slug",
"label": "Slug",
"type": "text"
},
{
"key": "verticalPack",
"label": "Vertical pack",
"type": "text"
},
{
"key": "serviceModel",
"label": "Service model",
"type": "text"
},
{
"key": "paymentMode",
"label": "Payment mode",
"type": "text"
},
{
"key": "summary",
"label": "Summary",
"type": "textarea"
},
{
"key": "presetKey",
"label": "Preset key",
"type": "text"
}
],
"titleKey": "commerce.mobile.actions.venues.create.title"
},
{
"id": "commerce.venues.updateSettings",
"title": "Update venue settings",
"type": "record.update",
"permission": "settings:write",
"method": "PUT",
"path": "/api/venues/:id",
"fields": [
{
"key": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"key": "slug",
"label": "Slug",
"type": "text"
},
{
"key": "verticalPack",
"label": "Vertical pack",
"type": "text"
},
{
"key": "serviceModel",
"label": "Service model",
"type": "text"
},
{
"key": "paymentMode",
"label": "Payment mode",
"type": "text"
},
{
"key": "summary",
"label": "Summary",
"type": "textarea"
},
{
"key": "presetKey",
"label": "Preset key",
"type": "text"
}
],
"titleKey": "commerce.mobile.actions.venues.update.settings.title"
}
]
},
{
"path": "/venues/:id",
"apiPath": "/api/venues/:id",
"title": "Venue",
"titleKey": "commerce.mobile.routes.venues.title",
"template": "record.detail",
"dataSource": "commerce.venues.detail"
},
{
"path": "/orders",
"apiPath": "/api/orders",
"title": "Orders",
"titleKey": "commerce.mobile.routes.orders.title",
"template": "record.list",
"dataSource": "commerce.orders.list"
},
{
"path": "/service-requests",
"apiPath": "/api/service-requests",
"title": "Service requests",
"titleKey": "commerce.mobile.routes.serviceRequests.title",
"template": "record.list",
"dataSource": "commerce.serviceRequests.list"
}
]
}
}
],
"package_manifests": [],
"deployment_configs": [],
"source_signals": {
"api_routes": [
{
"method": "LITERAL",
"path": "/snapshot",
"source_path": "apps/TopoloCommerce/apps/api/scripts/queue-stream-soak.mjs"
},
{
"method": "LITERAL",
"path": "/snapshot",
"source_path": "apps/TopoloCommerce/apps/api/scripts/queue-stress.mjs"
},
{
"method": "LITERAL",
"path": "/bootstrap",
"source_path": "apps/TopoloCommerce/apps/api/scripts/queue-stress.mjs"
},
{
"method": "LITERAL",
"path": "/stream",
"source_path": "apps/TopoloCommerce/apps/api/scripts/queue-stress.mjs"
},
{
"method": "GET",
"path": "/api/assets/*",
"source_path": "apps/TopoloCommerce/apps/api/src/assetRoutes.js"
},
{
"method": "PUT",
"path": "/api/admin/upload-asset",
"source_path": "apps/TopoloCommerce/apps/api/src/assetRoutes.js"
},
{
"method": "POST",
"path": "/api/admin/generate-catalog-images",
"source_path": "apps/TopoloCommerce/apps/api/src/assetRoutes.js"
},
{
"method": "POST",
"path": "/api/guest/bill",
"source_path": "apps/TopoloCommerce/apps/api/src/guestBillRoutes.js"
},
{
"method": "POST",
"path": "/api/guest/bill/payments",
"source_path": "apps/TopoloCommerce/apps/api/src/guestBillRoutes.js"
},
{
"method": "POST",
"path": "/api/guest/bill/payment-link",
"source_path": "apps/TopoloCommerce/apps/api/src/guestBillRoutes.js"
},
{
"method": "GET",
"path": "/api/guest/bill/payment-link/:linkId",
"source_path": "apps/TopoloCommerce/apps/api/src/guestBillRoutes.js"
},
{
"method": "GET",
"path": "/api/guest/tab",
"source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
},
{
"method": "GET",
"path": "/api/guest/table-tabs",
"source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
},
{
"method": "POST",
"path": "/api/guest/table-tabs",
"source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
},
{
"method": "POST",
"path": "/api/guest/table-tabs/join-requests",
"source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
},
{
"method": "GET",
"path": "/api/guest/table-tabs/join-requests/:reqId",
"source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
},
{
"method": "GET",
"path": "/api/guest/table-tabs/:tabId",
"source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
},
{
"method": "POST",
"path": "/api/guest/table-tabs/:tabId/join-requests/:reqId/respond",
"source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
},
{
"method": "POST",
"path": "/api/guest/table-tabs/:tabId/close",
"source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
},
{
"method": "POST",
"path": "/api/guest/sessions",
"source_path": "apps/TopoloCommerce/apps/api/src/guestTableTabRoutes.js"
},
{
"method": "ALL",
"path": "/health",
"source_path": "apps/TopoloCommerce/apps/api/src/index.js"
},
{
"method": "GET",
"path": "/api/widget",
"source_path": "apps/TopoloCommerce/apps/api/src/index.js"
},
{
"method": "GET",
"path": "/api/guest/venues",
"source_path": "apps/TopoloCommerce/apps/api/src/index.js"
},
{
"method": "GET",
"path": "/api/guest/venues/:slug",
"source_path": "apps/TopoloCommerce/apps/api/src/index.js"
},
{
"method": "POST",
"path": "/api/orders",
"source_path": "apps/TopoloCommerce/apps/api/src/index.js"
},
{
"method": "PUT",
"path": "/api/draft-orders",
"source_path": "apps/TopoloCommerce/apps/api/src/index.js"
},
{
"method": "POST",
"path": "/api/service-requests",
"source_path": "apps/TopoloCommerce/apps/api/src/index.js"
},
{
"method": "PATCH",
"path": "/api/service-requests/:id",
"source_path": "apps/TopoloCommerce/apps/api/src/index.js"
},
{
"method": "POST",
"path": "/api/bookings",
"source_path": "apps/TopoloCommerce/apps/api/src/index.js"
},
{
"method": "POST",
"path": "/api/payment-sessions",
"source_path": "apps/TopoloCommerce/apps/api/src/index.js"
},
{
"method": "GET",
"path": "/api/orders",
"source_path": "apps/TopoloCommerce/apps/api/src/operatorNativeRoutes.js"
},
{
"method": "GET",
"path": "/api/service-requests",
"source_path": "apps/TopoloCommerce/apps/api/src/operatorNativeRoutes.js"
},
{
"method": "GET",
"path": "/security-policy",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
},
{
"method": "GET",
"path": "/operator-access-snapshot",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
},
{
"method": "PATCH",
"path": "/security-policy",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
},
{
"method": "GET",
"path": "/action-permissions",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
},
{
"method": "PUT",
"path": "/action-permissions/:actionKey",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
},
{
"method": "POST",
"path": "/devices/:deviceId/operator-sessions",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
},
{
"method": "DELETE",
"path": "/devices/:deviceId/operator-sessions/:sessionId",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
},
{
"method": "POST",
"path": "/operator-sessions/:sessionId/step-up",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
},
{
"method": "POST",
"path": "/operator-sessions/:sessionId/credential",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/accessControl.js"
},
{
"method": "POST",
"path": "/devices/link",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/deviceMdm.js"
},
{
"method": "PUT",
"path": "/devices/:deviceId/profile",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/deviceMdm.js"
},
{
"method": "POST",
"path": "/devices/:deviceId/command",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/deviceMdm.js"
},
{
"method": "GET",
"path": "/devices",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/deviceMdm.js"
},
{
"method": "GET",
"path": "/imports",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
},
{
"method": "POST",
"path": "/imports",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
},
{
"method": "PUT",
"path": "/imports/:importId/approve",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
},
{
"method": "PUT",
"path": "/imports/:importId/reject",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
},
{
"method": "GET",
"path": "/imports/:importId",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
},
{
"method": "GET",
"path": "/imports/:importId/asset",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/imports.js"
},
{
"method": "GET",
"path": "/api/org/context",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
},
{
"method": "GET",
"path": "/api/org/module-settings",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
},
{
"method": "PUT",
"path": "/api/org/module-settings",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
},
{
"method": "POST",
"path": "/api/org/module-settings/resolve",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
},
{
"method": "PUT",
"path": "/api/org/hub-tiles",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
},
{
"method": "GET",
"path": "/api/venues",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
},
{
"method": "POST",
"path": "/api/venues",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/organization.js"
},
{
"method": "GET",
"path": "/api/organizations/:organizationId/data",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/organizationData.js"
},
{
"method": "DELETE",
"path": "/api/organizations/:organizationId/data",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/organizationData.js"
},
{
"method": "GET",
"path": "/ops/tickets",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/queue.js"
},
{
"method": "GET",
"path": "/ops/live-state",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/queue.js"
},
{
"method": "POST",
"path": "/ops/live-stream-ticket",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/queue.js"
},
{
"method": "GET",
"path": "/ops/live-stream",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/queue.js"
},
{
"method": "PUT",
"path": "/ops/tickets/:ticketId",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/queue.js"
},
{
"method": "GET",
"path": "/tables/floor-plan",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/tables.js"
},
{
"method": "PUT",
"path": "/tables/floor-plan",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/tables.js"
},
{
"method": "GET",
"path": "/tables/qr-summary",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/tables.js"
},
{
"method": "POST",
"path": "/tables/sync-qr",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/tables.js"
},
{
"method": "GET",
"path": "/team",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
},
{
"method": "GET",
"path": "/staff-identity-methods",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
},
{
"method": "POST",
"path": "/team/sections",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
},
{
"method": "POST",
"path": "/team/members",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
},
{
"method": "POST",
"path": "/team/members/:memberId/identity-methods",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
},
{
"method": "PUT",
"path": "/team/members/:memberId",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/team.js"
},
{
"method": "GET",
"path": "/resilience/state",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "GET",
"path": "/payment-reconciliations",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "POST",
"path": "/payment-reconciliations",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "GET",
"path": "/sync-policy",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "PUT",
"path": "/sync-policy",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "GET",
"path": "/staff-notifications",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "PUT",
"path": "/staff-notifications/:notificationId",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "GET",
"path": "/edge/nodes",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "POST",
"path": "/edge/nodes",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "POST",
"path": "/edge/bootstrap",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "POST",
"path": "/edge/push",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "GET",
"path": "/edge/events",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "POST",
"path": "/edge/ack",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/venueOperations.js"
},
{
"method": "POST",
"path": "/api/internal/workspaces/:workspaceId/renamed",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/workspaces.js"
},
{
"method": "DELETE",
"path": "/api/workspaces/:workspaceId",
"source_path": "apps/TopoloCommerce/apps/api/src/routes/workspaces.js"
},
{
"method": "LITERAL",
"path": "/privacy/erase",
"source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
},
{
"method": "LITERAL",
"path": "/snapshot",
"source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
},
{
"method": "LITERAL",
"path": "/bootstrap",
"source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
},
{
"method": "LITERAL",
"path": "/draft-orders",
"source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
},
{
"method": "LITERAL",
"path": "/stream-tickets",
"source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
},
{
"method": "LITERAL",
"path": "/stream",
"source_path": "apps/TopoloCommerce/apps/api/src/venueQueueCoordinator.js"
},
{
"method": "GET",
"path": "/api/voice/review-assets/*",
"source_path": "apps/TopoloCommerce/apps/api/src/voiceRoutes.js"
},
{
"method": "POST",
"path": "/api/voice/review-assets",
"source_path": "apps/TopoloCommerce/apps/api/src/voiceRoutes.js"
},
{
"method": "POST",
"path": "/api/voice/resolve",
"source_path": "apps/TopoloCommerce/apps/api/src/voiceRoutes.js"
},
{
"method": "POST",
"path": "/api/voice/translate",
"source_path": "apps/TopoloCommerce/apps/api/src/voiceRoutes.js"
}
],
"ui_routes": [
{
"path": "/${path}",
"source_path": "apps/TopoloCommerce/apps/api/src/mdm.js"
},
{
"path": "/",
"source_path": "apps/TopoloCommerce/apps/guest/src/App.jsx"
},
{
"path": "/pay/:linkId",
"source_path": "apps/TopoloCommerce/apps/guest/src/App.jsx"
},
{
"path": "/__preview/experience",
"source_path": "apps/TopoloCommerce/apps/guest/src/App.jsx"
},
{
"path": "/:venueSlug",
"source_path": "apps/TopoloCommerce/apps/guest/src/App.jsx"
},
{
"path": "/dashboard",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/venues/:venueId",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/venues/:venueId/tables/print",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/venues/:venueId/:routeKey",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/catalog",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/imports",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/queues",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/resilience",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/team",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/hospitality",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/retail",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/service",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/devices",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/tables",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/settings",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/getting-started",
"source_path": "apps/TopoloCommerce/apps/ops/src/App.jsx"
},
{
"path": "/launcher",
"source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
},
{
"path": "/kitchen/:venueId",
"source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
},
{
"path": "/pos/:venueId",
"source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
},
{
"path": "/bar/:venueId",
"source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
},
{
"path": "/expo/:venueId",
"source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
},
{
"path": "/pair/:mode/:venueId",
"source_path": "apps/TopoloCommerce/apps/station/src/App.jsx"
}
],
"test_cases": [],
"database_tables": []
},
"documentation": {
"declared_paths": [
"internal/apps/commerce",
"applications/commerce",
"internal/apps/commerce-design",
"internal/apps/commerce-modules",
"internal/apps/commerce-resilience"
],
"present_paths": [
"internal/apps/commerce",
"applications/commerce",
"internal/apps/commerce-design",
"internal/apps/commerce-modules",
"internal/apps/commerce-resilience"
],
"missing_paths": [],
"human_reference": "/systems/topolo-commerce",
"machine_reference": "/machine/systems/topolo-commerce.json",
"action_examples": 66,
"action_schemas": 66
},
"source_findings": []
}