{
  "ok": true,
  "service": "websdocs-asg-gateway",
  "version": "asg-gateway-runtime-v11-14-9-public-head",
  "domain": "aig.websdocs.com",
  "source": {
    "kv": true,
    "d1": true,
    "r2": true,
    "logsDb": true,
    "identityRegistry": true,
    "identityEvents": true,
    "ai": true,
    "aiGateway": {
      "id": "aigateway",
      "enabled": true,
      "note": "Workers AI calls pass this gateway id so Cloudflare AI Gateway logs show under the same gateway."
    },
    "vectorize": true,
    "rag": true,
    "asgBillingDb": true,
    "hostedBusinessProfile": true,
    "legacyBillingBindingsPresent": false,
    "subscriptionAuthority": "asg-billing",
    "subscriptionReadMode": "ASG_BILLING_DB_direct_no_legacy_fallback",
    "eventHubWorker": true
  },
  "billing": {
    "answerCredits": "required_for_ask_and_a2a_message",
    "staticDiscovery": "free",
    "actionHandoff": "free_record_only",
    "ucpCheckoutRouter": "seller_is_merchant_of_record",
    "a2aProtocolVersion": "1.0",
    "ucpVersion": "2026-08-25",
    "checkoutDoor": "free_ucp_router_no_funds_custody",
    "debitMode": "live",
    "authority": "aig-gateway-local-d1",
    "subscriptionAuthority": "asg-billing",
    "runtimeRole": "Gateway reads dedicated ASG Billing entitlement, records verified usage, and debits its own ASG wallet tables.",
    "walletTable": "aig_gateway_credits",
    "creditEventsTable": "aig_gateway_credit_events",
    "usageProofTable": "asg_llm_usage_logs",
    "billingFallback": "none_for_new_asg_fail_closed",
    "formula": {
      "creditValueUsd": 0.01,
      "tokenBlockSize": 1000,
      "creditsPerTokenBlock": 1,
      "standardAnswerCredits": 1,
      "pricingVersion": "websdocs_fixed_text_credit_v1_1credit_per_1000_tokens",
      "customerFormulaLocked": true,
      "providerIndependentDebit": true,
      "customerFormula": "credits = successful billable text tokens / 1000"
    }
  },
  "secrets": {
    "internalEventSecret": true,
    "asgGatewayBillingSecret": true
  },
  "routes": {
    "runtimeIndex": "GET https://aig.websdocs.com/",
    "profiles": "GET https://aig.websdocs.com/profiles",
    "market": "GET https://aig.websdocs.com/market",
    "directoryRedirect": "GET https://aig.websdocs.com/directory -> https://directory.websdocs.com",
    "directoryDiscovery": "https://directory.websdocs.com/discover/",
    "directoryProfiles": "https://directory.websdocs.com/discover/profiles",
    "directoryDiscoverySitemap": "https://directory.websdocs.com/discover/sitemap.xml",
    "directoryApi": "GET https://aig.websdocs.com/api/directory",
    "profilesApi": "GET https://aig.websdocs.com/api/profiles",
    "hostedBusinessesApi": "GET https://aig.websdocs.com/api/hosted-businesses",
    "protocols": "GET https://aig.websdocs.com/protocols",
    "protocolApi": "GET https://aig.websdocs.com/api/protocols",
    "robots": "GET https://aig.websdocs.com/robots.txt",
    "llms": "GET https://aig.websdocs.com/llms.txt",
    "sitemap": "GET https://aig.websdocs.com/sitemap.xml",
    "aigSitemap": "GET https://aig.websdocs.com/aig-sitemap.xml",
    "questions": "GET https://aig.websdocs.com/questions",
    "a2aGuide": "GET https://aig.websdocs.com/api/a2a",
    "clientGateway": "GET https://aig.websdocs.com/ai/{clientSlug}",
    "clientPulse": "GET https://aig.websdocs.com/pulse/{clientSlug}",
    "clientProfile": "GET https://aig.websdocs.com/ai/{clientSlug}/profile",
    "clientCompanyJson": "GET https://aig.websdocs.com/ai/{clientSlug}/data/aig-company-profile.json",
    "clientLlms": "GET https://aig.websdocs.com/ai/{clientSlug}/llms.txt",
    "clientAgentCard": "GET https://aig.websdocs.com/ai/{clientSlug}/.well-known/agent-card.json",
    "clientUcp": "GET https://aig.websdocs.com/ai/{clientSlug}/.well-known/ucp",
    "clientServices": "GET https://aig.websdocs.com/ai/{clientSlug}/services",
    "clientOffers": "GET https://aig.websdocs.com/ai/{clientSlug}/offers",
    "clientPolicy": "GET https://aig.websdocs.com/ai/{clientSlug}/policy",
    "clientSecurity": "GET https://aig.websdocs.com/ai/{clientSlug}/security",
    "clientPricing": "GET https://aig.websdocs.com/ai/{clientSlug}/pricing",
    "clientRoutes": "GET https://aig.websdocs.com/ai/{clientSlug}/routes",
    "clientFaq": "GET https://aig.websdocs.com/ai/{clientSlug}/faq",
    "clientCommerceReadiness": "GET https://aig.websdocs.com/ai/{clientSlug}/commerce-readiness",
    "clientSampleQuestions": "GET https://aig.websdocs.com/ai/{clientSlug}/sample-questions",
    "clientAsk": "GET docs / POST https://aig.websdocs.com/ai/{clientSlug}/ask",
    "clientCheckout": "GET docs / POST https://aig.websdocs.com/ai/{clientSlug}/checkout",
    "clientAction": "GET docs / POST https://aig.websdocs.com/ai/{clientSlug}/action",
    "clientA2AHandshake": "GET/POST https://aig.websdocs.com/ai/{clientSlug}/a2a/v1/handshake",
    "clientA2AMessage": "GET docs / POST https://aig.websdocs.com/ai/{clientSlug}/a2a/v1/message",
    "clientA2AMessageSend": "POST https://aig.websdocs.com/ai/{clientSlug}/a2a/message:send",
    "clientA2AMessageStream": "POST https://aig.websdocs.com/ai/{clientSlug}/a2a/message:stream",
    "clientUcpCheckout": "POST https://aig.websdocs.com/ai/{clientSlug}/ucp/v1/checkout-sessions",
    "clientMcp": "POST https://aig.websdocs.com/ai/{clientSlug}/ucp/mcp"
  },
  "publicDiscovery": {
    "product": "https://asg.websdocs.com/",
    "asgGateway": "https://aig.websdocs.com",
    "directory": "https://directory.websdocs.com",
    "directoryDiscovery": "https://directory.websdocs.com/discover/",
    "directoryProfiles": "https://directory.websdocs.com/discover/profiles",
    "directoryDiscoverySitemap": "https://directory.websdocs.com/discover/sitemap.xml",
    "hostedBusinesses": "https://business.websdocs.com",
    "runtimeIndex": "https://aig.websdocs.com/",
    "directoryApi": "https://aig.websdocs.com/api/directory",
    "profilesApi": "https://aig.websdocs.com/api/profiles",
    "hostedBusinessesApi": "https://aig.websdocs.com/api/hosted-businesses",
    "protocols": "https://aig.websdocs.com/protocols",
    "protocolJson": "https://aig.websdocs.com/api/protocols",
    "llms": "https://aig.websdocs.com/llms.txt",
    "robots": "https://aig.websdocs.com/robots.txt",
    "sitemap": "https://aig.websdocs.com/sitemap.xml",
    "aigSitemap": "https://aig.websdocs.com/aig-sitemap.xml",
    "questions": "https://aig.websdocs.com/questions",
    "a2aGuide": "https://aig.websdocs.com/api/a2a",
    "clientPatterns": {
      "runtimeIndex": "GET https://aig.websdocs.com/",
      "profiles": "GET https://aig.websdocs.com/profiles",
      "market": "GET https://aig.websdocs.com/market",
      "directoryRedirect": "GET https://aig.websdocs.com/directory -> https://directory.websdocs.com",
      "directoryDiscovery": "https://directory.websdocs.com/discover/",
      "directoryProfiles": "https://directory.websdocs.com/discover/profiles",
      "directoryDiscoverySitemap": "https://directory.websdocs.com/discover/sitemap.xml",
      "directoryApi": "GET https://aig.websdocs.com/api/directory",
      "profilesApi": "GET https://aig.websdocs.com/api/profiles",
      "hostedBusinessesApi": "GET https://aig.websdocs.com/api/hosted-businesses",
      "protocols": "GET https://aig.websdocs.com/protocols",
      "protocolApi": "GET https://aig.websdocs.com/api/protocols",
      "robots": "GET https://aig.websdocs.com/robots.txt",
      "llms": "GET https://aig.websdocs.com/llms.txt",
      "sitemap": "GET https://aig.websdocs.com/sitemap.xml",
      "aigSitemap": "GET https://aig.websdocs.com/aig-sitemap.xml",
      "questions": "GET https://aig.websdocs.com/questions",
      "a2aGuide": "GET https://aig.websdocs.com/api/a2a",
      "clientGateway": "GET https://aig.websdocs.com/ai/{clientSlug}",
      "clientPulse": "GET https://aig.websdocs.com/pulse/{clientSlug}",
      "clientProfile": "GET https://aig.websdocs.com/ai/{clientSlug}/profile",
      "clientCompanyJson": "GET https://aig.websdocs.com/ai/{clientSlug}/data/aig-company-profile.json",
      "clientLlms": "GET https://aig.websdocs.com/ai/{clientSlug}/llms.txt",
      "clientAgentCard": "GET https://aig.websdocs.com/ai/{clientSlug}/.well-known/agent-card.json",
      "clientUcp": "GET https://aig.websdocs.com/ai/{clientSlug}/.well-known/ucp",
      "clientServices": "GET https://aig.websdocs.com/ai/{clientSlug}/services",
      "clientOffers": "GET https://aig.websdocs.com/ai/{clientSlug}/offers",
      "clientPolicy": "GET https://aig.websdocs.com/ai/{clientSlug}/policy",
      "clientSecurity": "GET https://aig.websdocs.com/ai/{clientSlug}/security",
      "clientPricing": "GET https://aig.websdocs.com/ai/{clientSlug}/pricing",
      "clientRoutes": "GET https://aig.websdocs.com/ai/{clientSlug}/routes",
      "clientFaq": "GET https://aig.websdocs.com/ai/{clientSlug}/faq",
      "clientCommerceReadiness": "GET https://aig.websdocs.com/ai/{clientSlug}/commerce-readiness",
      "clientSampleQuestions": "GET https://aig.websdocs.com/ai/{clientSlug}/sample-questions",
      "clientAsk": "GET docs / POST https://aig.websdocs.com/ai/{clientSlug}/ask",
      "clientCheckout": "GET docs / POST https://aig.websdocs.com/ai/{clientSlug}/checkout",
      "clientAction": "GET docs / POST https://aig.websdocs.com/ai/{clientSlug}/action",
      "clientA2AHandshake": "GET/POST https://aig.websdocs.com/ai/{clientSlug}/a2a/v1/handshake",
      "clientA2AMessage": "GET docs / POST https://aig.websdocs.com/ai/{clientSlug}/a2a/v1/message",
      "clientA2AMessageSend": "POST https://aig.websdocs.com/ai/{clientSlug}/a2a/message:send",
      "clientA2AMessageStream": "POST https://aig.websdocs.com/ai/{clientSlug}/a2a/message:stream",
      "clientUcpCheckout": "POST https://aig.websdocs.com/ai/{clientSlug}/ucp/v1/checkout-sessions",
      "clientMcp": "POST https://aig.websdocs.com/ai/{clientSlug}/ucp/mcp"
    },
    "note": "For all currently published business URLs, follow the Directory discovery sitemap and ASG/AIG sitemap indexes. No server-side fan-out is performed for a bad request."
  },
  "sitemapCache": {
    "primaryKvKey": "public:aig-sitemap.xml",
    "primaryR2Key": "public/aig-sitemap.xml",
    "durableDirectorySourceR2": true,
    "durableDirectorySourceKey": "public/aig-directory-sitemap-source-v1.json",
    "durableDirectorySourceMaxAgeSeconds": 2592000,
    "durableDirectorySourceStaleGood": true,
    "directoryD1Fallback": "last_resort_seed_only"
  },
  "telemetry": {
    "version": "canonical-telemetry-v42",
    "classificationColumns": {
      "ready": true,
      "missing": [],
      "error": null
    },
    "migrationRequired": false,
    "missingColumnsFallback": "canonical_visit_preserved_with_route_prefix_only",
    "directoryIdentityKvMirror": true,
    "registeredRuntimeMirrors": "preserved",
    "metricsBinding": true,
    "metricsSecretConfigured": true,
    "globalAnalytics": "Metrics aggregate plus bounded canonical detail; no raw network fallback",
    "usageWriteAuthority": "AIG_GATEWAY_LOGS_DB",
    "usageLegacyMirror": false,
    "historicalRepair": false,
    "indexChanges": false
  },
  "identityBridge": {
    "registryTable": "aig_gateway_visitor_registry",
    "identityEventsTable": "aig_gateway_visitor_identity_events",
    "summaryView": null,
    "identityReadMode": "bounded_canonical_visit_rows",
    "directoryVisitIngestion": {
      "canonicalWriteRequired": true,
      "idempotency": "stable_source_id_and_existing_visit_primary_key",
      "sourceEventIdPreferred": true,
      "legacyRequestIdSupported": true,
      "missingSourceId": "accepted_without_replay_protection",
      "strictSourceIdOverride": "ASG_DIRECTORY_REQUIRE_EVENT_ID=true",
      "historicalDeduplication": false
    },
    "backfill": "POST /admin/backfill/visitor-identity",
    "activityAuthority": "AIG_GATEWAY_LOGS_DB",
    "visitorKvMirror": true,
    "visitorKvLastVisitMinSeconds": 300,
    "visitorKvLastSeenMinSeconds": 1800,
    "visitorKvMirrorDisableOverride": "ASG_GATEWAY_VISITOR_KV_MIRROR=false",
    "identityEvents": "Directory mirror disabled by default; registered runtime mirror preserved",
    "registryLatestStateRefreshMode": "conditional_indexed_update_no_pre_read",
    "registryLastSeenMinSeconds": 1800,
    "registryLastSeenOverride": "ASG_GATEWAY_REGISTRY_LAST_SEEN_MIN_SECONDS"
  },
  "llmUsage": {
    "table": "asg_llm_usage_logs",
    "displayName": "ASG LLM",
    "source": "workers_ai_response_and_cloudflare_ai_gateway_run",
    "adminList": "GET /admin/llm-usage?clientSlug=:slug&window=3m",
    "adminSummary": "GET /admin/llm-usage/summary?clientSlug=:slug&window=3m"
  },
  "interactions": {
    "table": "asg_runtime_interaction_logs",
    "adminList": "GET /admin/interactions?clientSlug=:slug&window=3m",
    "adminSummary": "GET /admin/interactions/summary?clientSlug=:slug&window=3m",
    "capturesStaticAnswers": true,
    "testProbeClassification": true,
    "conversationIds": true,
    "visitorCounting": "one runtime_visit row per actual public request; silent GET discovery is counted independently of questions"
  },
  "time": "2026-09-27T22:51:06.478Z"
}