{
  "schemaVersion": "crowdalpha.agent.discovery.v1",
  "name": "CrowdAlpha",
  "category": "agent_market_value_added_data_funnel",
  "businessModel": "agent_market_approved_access",
  "description": "Aggregated, value-added, paywalled data funnel for authorized data-consuming agents. Provides evidence-linked Planetary Model context, AgentLayer APIs, decision inputs, blockers, next-action posture, and rights-scoped delivery from licensed, paywalled, public, and customer-approved data.",
  "products": {
    "worldState": {
      "description": "Governed truth layer over outside-world state, evidence, history, blockers, and next-action posture for human review and agent use.",
      "url": "/worldstate",
      "maritimePackageUrl": "/worldstate/maritime",
      "packagesUrl": "/worldstate/packages",
      "decisionInputsUrl": "/worldstate/decision-inputs",
      "trustUrl": "/worldstate/trust"
    },
    "agentLayer": {
      "description": "Approved machine and agent interface over Planetary Model context, scoped by rights, entitlements, and service policy.",
      "url": "/agentlayer",
      "mcpUrl": "/agentlayer/mcp",
      "openapiUrl": "/agentlayer/openapi",
      "protocolUrl": "/agentlayer/protocol",
      "examplesUrl": "/agentlayer/examples",
      "trustUrl": "/agentlayer/trust"
    }
  },
  "api": {
    "baseUrl": "/api/v1",
    "capabilitiesUrl": "/api/v1/capabilities",
    "schemasUrl": "/api/v1/schemas",
    "openapiUrl": "/api/v1/openapi.json",
    "onboardingUrl": "/api/v1/onboarding",
    "stablePaths": [
      "/api/v1/capabilities",
      "/api/v1/schemas",
      "/api/v1/openapi.json",
      "/api/v1/onboarding",
      "/api/v1/coverage",
      "/api/v1/health",
      "/api/v1/entities",
      "/api/v1/context/resolve",
      "/api/v1/world-query",
      "/api/v1/world-context",
      "/api/v1/diff",
      "/api/v1/composite-scores",
      "/api/v1/state/entities/{entity_id}",
      "/api/v1/transitions",
      "/api/v1/evidence",
      "/api/v1/evidence/{evidence_id}",
      "/api/v1/observations",
      "/api/v1/causal-paths",
      "/api/v1/decision-inputs",
      "/api/v1/state-packages/decision-inputs",
      "/api/v1/decision-inputs/sanctions-exposure",
      "/api/v1/core1/decision-records",
      "/api/v1/core1/thin-slice/sanctions-exposure",
      "/api/v1/core1/feed-catalog",
      "/api/v1/state-packages",
      "/api/v1/state-packages/audit",
      "/api/v1/state-packages/{package_id}/state",
      "/api/v1/state-packages/{package_id}/discovery",
      "/api/v1/state-packages/{package_id}/query",
      "/api/v1/state-packages/{package_id}/transitions",
      "/api/v1/state-packages/{package_id}/evidence",
      "/api/v1/state-packages/{package_id}/contradictions",
      "/api/v1/state-packages/{package_id}/causal-paths",
      "/api/v1/state-packages/{package_id}/simulations",
      "/api/v1/state-packages/{package_id}/integrity",
      "/api/v1/event-streams",
      "/api/v1/webhook-endpoints",
      "/api/v1/webhook-deliveries",
      "/api/v1/simulations",
      "/api/v1/simulations/compare"
    ],
    "stableOperations": [
      "GET /api/v1/capabilities",
      "GET /api/v1/schemas",
      "GET /api/v1/openapi.json",
      "GET /api/v1/onboarding",
      "GET /api/v1/coverage",
      "GET /api/v1/health",
      "GET /api/v1/entities",
      "POST /api/v1/context/resolve",
      "POST /api/v1/world-query",
      "GET /api/v1/world-context",
      "GET /api/v1/diff",
      "GET /api/v1/composite-scores",
      "GET /api/v1/state/entities/{entity_id}",
      "GET /api/v1/transitions",
      "GET /api/v1/evidence",
      "GET /api/v1/evidence/{evidence_id}",
      "GET /api/v1/observations",
      "GET /api/v1/causal-paths",
      "GET /api/v1/decision-inputs",
      "GET /api/v1/state-packages/decision-inputs",
      "GET /api/v1/decision-inputs/sanctions-exposure",
      "GET /api/v1/core1/decision-records",
      "GET /api/v1/core1/thin-slice/sanctions-exposure",
      "GET /api/v1/core1/feed-catalog",
      "GET /api/v1/state-packages",
      "GET /api/v1/state-packages/audit",
      "GET /api/v1/state-packages/{package_id}/state",
      "GET /api/v1/state-packages/{package_id}/discovery",
      "POST /api/v1/state-packages/{package_id}/query",
      "GET /api/v1/state-packages/{package_id}/transitions",
      "GET /api/v1/state-packages/{package_id}/evidence",
      "GET /api/v1/state-packages/{package_id}/contradictions",
      "GET /api/v1/state-packages/{package_id}/causal-paths",
      "GET /api/v1/state-packages/{package_id}/simulations",
      "POST /api/v1/state-packages/{package_id}/simulations",
      "GET /api/v1/state-packages/{package_id}/integrity",
      "GET /api/v1/event-streams",
      "GET /api/v1/webhook-endpoints",
      "GET /api/v1/webhook-deliveries",
      "GET /api/v1/simulations",
      "POST /api/v1/simulations",
      "POST /api/v1/simulations/compare"
    ]
  },
  "errorModel": {
    "version": "agent_error_model_v1",
    "capabilitiesUrl": "/api/v1/capabilities",
    "schemasUrl": "/api/v1/schemas",
    "defaultErrorSchema": "AgentErrorResponse",
    "failureShapes": ["detail.error.{code,message}", "detail.{code,message}"],
    "commonCodes": [
      "UNAUTHORIZED",
      "AGENT_CLIENT_DENIED",
      "AGENT_SCOPE_DENIED",
      "AGENT_ENTITLEMENT_DENIED",
      "AGENT_WEBHOOK_ENTITLEMENT_REQUIRED",
      "AGENT_EVENT_STREAM_ENTITLEMENT_REQUIRED",
      "AGENT_EVENT_STREAM_ENTITLEMENT_DENIED",
      "AGENT_EVIDENCE_NOT_FOUND",
      "AGENT_EVIDENCE_INVALID_ID",
      "AGENT_RATE_LIMITED",
      "AGENT_SIMULATION_QUOTA_EXCEEDED",
      "AGENT_RATE_LIMITER_UNAVAILABLE",
      "AGENT_WORLDSTATE_CONTRACT_INVALID"
    ],
    "rawSecretsOrTokensInErrors": false
  },
  "discovery": {
    "llmsTxtUrl": "/llms.txt",
    "llmsFullTxtUrl": "/llms-full.txt",
    "agentGuideUrl": "/agents.md",
    "a2aAgentCardUrl": "/.well-known/agent-card.json",
    "a2aApiAgentCardUrl": "/api/v1/a2a/agent-card",
    "mcpDiscoveryUrl": "/.well-known/mcp.json",
    "openapiDiscoveryUrl": "/.well-known/openapi.json"
  },
  "a2a": {
    "documentationUrl": "/agentlayer",
    "agentCardUrl": "/.well-known/agent-card.json",
    "apiAgentCardUrl": "/api/v1/a2a/agent-card",
    "extendedAgentCardUrl": "/api/v1/a2a/extendedAgentCard",
    "messageSendUrl": "/api/v1/a2a/message:send",
    "protocolVersion": "1.0",
    "policy": {
      "readFirst": true,
      "taskPersistence": false,
      "outboundDelegation": false,
      "liveStateMutation": false
    }
  },
  "mcp": {
    "documentationUrl": "/agentlayer/mcp",
    "connection": "provided_to_approved_clients"
  },
  "auth": {
    "type": "bearer",
    "machineTokenFormat": "ca_agent_<public_prefix>_<secret>",
    "tokenEnv": "CROWDALPHA_API_TOKEN",
    "storage": "raw keys visible once; backend stores hashes and public prefixes only",
    "principalModes": ["agent_client_v1", "role_derived_v1"],
    "scopes": [
      "world.read",
      "evidence.read",
      "decision.read",
      "stream.read",
      "simulate.run",
      "webhook.manage"
    ],
    "selfServe": false,
    "oauthClientsAvailable": false,
    "sandboxKeysAvailable": false
  },
  "discoveryPolicy": {
    "retailOrConsumerSelfServe": false,
    "discoveryLeadsAllowed": true,
    "discoveryMustPreserve": [
      "evidence",
      "blockers",
      "uncertainty",
      "entitlement posture",
      "next-action posture"
    ],
    "discoveryLeadExamples": [
      "stale assumptions",
      "missing evidence",
      "hidden exposure",
      "policy gaps",
      "route or market shifts",
      "operational friction",
      "avoidable losses",
      "missed opportunities"
    ],
    "unsupportedCertaintyAllowed": false
  },
  "builderOnboarding": {
    "url": "/api/v1/onboarding",
    "status": "approved_access_required",
    "adminProvisioningUrl": "/api/admin/agent-clients",
    "requestAccessUrl": "/access",
    "selfServeSandboxKeys": false,
    "oauthClientsAvailable": false,
    "policy": "public OAuth clients, OAuth token exchange, sandbox key issuance, sample-data entitlements, and public sandbox rate limits are unavailable until approved",
    "doesNotMintKeys": true
  },
  "clientTools": {
    "cli": "provided_to_approved_clients",
    "typescriptSdk": "@crowdalpha/agent-sdk",
    "pythonSdk": "crowdalpha_agent",
    "typescriptApprovedAccessExample": "packages/agent-sdk/examples/approved-access-first-call.ts",
    "pythonApprovedAccessExample": "sdks/python/examples/approved_access_first_call.py"
  },
  "useRules": [
    "Use public pages for product context.",
    "Use authorized AgentLayer responses for agent and software workflows.",
    "Treat CrowdAlpha as approved-access agent-market infrastructure, not ungoverned human retail or consumer self-serve access.",
    "Preserve confidence, uncertainty, evidence references, interfaceProvenance, provenance, and entitlements.",
    "For discovery tasks, preserve evidence, blockers, uncertainty, entitlement posture, and next-action posture.",
    "Do not invent facts outside returned records and evidence.",
    "Treat scenarios and hypothetical analysis as separate from observed records.",
    "Treat discovery leads as leads until Planetary Model evidence, freshness, rights, and entitlement checks support the answer."
  ],
  "version": "2026-06-05"
}
