/** * APIClaw canon stats - single source of truth for the numbers we cite * publicly (landing hero, llms.txt, MCP help text, manifest, vault MOC). * * Canon update protocol: * 1. Re-run scripts/smoketest-callable.mjs to refresh empirics. * 2. Re-run scripts/build-verification-status.mjs (writes verification-status.json). * 3. Update CANON_STATS below to match the new empirical numbers. * 4. Re-run landing/scripts/sync-canon-to-stats.mjs (regenerates stats.json). * 5. Bump @nordsym/apiclaw version, build, publish, deploy. * * Numbers as of the 2026-07-19 public-catalog reconciliation. The catalog * starts with 26,704 registry rows, removes 66 internal or unavailable rows, * collapses 41 managed-provider aliases, and inserts the 22 canonical managed * adapter cards. That yields 26,619 public catalog entries. * * Verification has two deliberately separate counts: * - 689 current public catalog cards map to evidence by exact name. * - 2,895 definitions returned JSON in the historical full sweep. * * The historical sweep aggregate cannot be mapped safely to the current cards * and is never used as a public headline. Host fallback is prohibited because * shared spec hosts such as api.apis.guru and virtserver.swaggerhub.com caused * false positives. Managed execution is also separate so an executable adapter * is not mislabeled as source-verified. * * The underlying 2026-04-29 full-sweep smoketest covered 5,302 trivially * testable providers from the 9,478-callable legacy runtime pool: * - WORKING_JSON: 2895 (returned 200 + parseable JSON) - one input to * source verification, not proof that APIClaw can proxy the definition. * - All other buckets (working_other, auth, needs_ctx, dead) are not * source-verified. * * 2026-05-17 canon-comms gate: internal communication providers were * intentionally moved from callable: true to false because they use * NordSym canon credentials - keys we hold for * our own ops, not for random users to send mail/SMS through. Net effect * on the legacy callable count: -36. They are excluded from public surfaces. * * We only cite directly-measured figures. The other ~4140 untestable * providers (POST-only, required path-vars / query params) have valid OpenAPI * specs but we can't smoketest them blindly, so they sit in Discovery rather * rather than Source-verified. Honest measurement over flattering extrapolation. */ export declare const CANON_STATS: { /** Updated each time canon refreshes. */ readonly generated_at: "2026-08-21"; /** Public catalog entries, after internal-provider exclusion and adapter * alias collapse. Searchable after signup at no usage charge. */ readonly discoverable: 26619; /** Current public catalog cards mapped to verification by exact name. */ readonly source_verified: 689; /** Historical sweep passes. Not safely mappable to current catalog cards and * not a public headline or executable coverage claim. */ readonly verification_sweep_passes: 2895; /** * Legacy managed-provider inventory fields. Runtime readiness is determined * from the current managed discovery response, not these static counts. * APILayer counts as a single brand provider with 26 sub-actions. */ readonly managed_provider_adapters: 22; /** Managed providers with at least one customer-executable action. * Must stay equal to PUBLIC_CUSTOMER_EXECUTABLE_PROVIDER_COUNT. */ readonly customer_executable_providers: 22; /** No-key HTTPS origins unlocked for workspace-authenticated execution. * Not the 26k harvest and not anonymous keyless proxy. */ readonly workspace_public_executable: 1003; /** Public catalog cards with callable=true: managed rails + workspace-public * origins. landing/src/app/api/catalog/route.ts throws if this drifts. */ readonly customer_executable_catalog_cards: 1025; /** All-time npm installs (canon as of 2026-08-21 per npmjs dashboard). */ readonly npm_installs: 20058; /** API Surface narrative (used in marketing copy). */ readonly hero_line: "26,619 discoverable APIs · 689 source-verified"; readonly hero_line_short: "26.6k discoverable · 689 source-verified"; }; export type CanonStats = typeof CANON_STATS; //# sourceMappingURL=canon-stats.d.ts.map