{
  "canonical_url": "https://fx.signal-radar.com/",
  "capabilities": {
    "admin_ui": false,
    "agent_gateway": {
      "base_path": "/agent/page",
      "canonical_data_first": true,
      "enabled": true,
      "manifest": "/.well-known/agent-gateway.json",
      "mode": "same_origin_read_only",
      "route_index": "/data/v1/agent-routes.json"
    },
    "auth_required": false,
    "cloudflare_pages_compatible": true,
    "external_execution": false,
    "runtime_mcp_server": false,
    "runtime_mutation": false,
    "static_files": true,
    "workers_static_asset_compatible": true
  },
  "description": "Read-only USDJPY event risk, volatility pressure, source context, and canonical release evidence.",
  "endpoints": {
    "agent_gateway": "/.well-known/agent-gateway.json",
    "agent_index": "/data/v1/agent-index.json",
    "agent_manifest": "/agent.json",
    "agent_policy": "/.well-known/agent-policy.json",
    "agent_routes": "/data/v1/agent-routes.json",
    "fx_ai_discovery": "/.well-known/ai.json",
    "fx_archive_index": "/data/v1/archive/index.json",
    "fx_diff_latest": "/data/v1/diff/latest.json",
    "fx_latest": "/data/v1/latest.json",
    "fx_priority_queue": "/data/v1/priority-queue.json",
    "fx_schema": "/data/v1/schema.json",
    "llms_txt": "/llms.txt",
    "public_safety": "/data/v1/public-safety.json",
    "release_manifest": "/data/v1/release-manifest.json",
    "signal_radar_well_known": "/.well-known/signal-radar.json",
    "source_health": "/data/v1/source-health.json",
    "webmcp_handler_fx-webmcp-get_fx_weather": "/assets/console/fx-webmcp-tools.js"
  },
  "extensions": {
    "existing_files": [
      {
        "include_in_trust_digest": true,
        "key": "fx_ai_discovery",
        "managed": false,
        "media_type": "application/json",
        "path": "/.well-known/ai.json",
        "purpose": "Compact FX AI discovery contract.",
        "required": true
      },
      {
        "include_in_trust_digest": true,
        "key": "webmcp_handler_fx-webmcp-get_fx_weather",
        "managed": false,
        "media_type": "text/javascript",
        "path": "/assets/console/fx-webmcp-tools.js",
        "purpose": "Client WebMCP handler module for get_fx_weather",
        "required": true
      },
      {
        "include_in_trust_digest": true,
        "key": "fx_archive_index",
        "managed": false,
        "media_type": "application/json",
        "path": "/data/v1/archive/index.json",
        "purpose": "Bounded semantic release archive index.",
        "required": true
      },
      {
        "include_in_trust_digest": true,
        "key": "fx_diff_latest",
        "managed": false,
        "media_type": "application/json",
        "path": "/data/v1/diff/latest.json",
        "purpose": "Semantic diff against the prior published release.",
        "required": true
      },
      {
        "include_in_trust_digest": true,
        "key": "fx_latest",
        "managed": false,
        "media_type": "application/json",
        "path": "/data/v1/latest.json",
        "purpose": "Canonical coherent FX event weather release.",
        "required": true
      },
      {
        "include_in_trust_digest": true,
        "key": "fx_priority_queue",
        "managed": false,
        "media_type": "application/json",
        "path": "/data/v1/priority-queue.json",
        "purpose": "Canonical operational release-cluster queue.",
        "required": true
      },
      {
        "include_in_trust_digest": false,
        "key": "release_manifest",
        "managed": false,
        "media_type": "application/json",
        "path": "/data/v1/release-manifest.json",
        "purpose": "Logical release and exact byte manifest.",
        "required": true
      },
      {
        "include_in_trust_digest": true,
        "key": "fx_schema",
        "managed": false,
        "media_type": "application/json",
        "path": "/data/v1/schema.json",
        "purpose": "Canonical FX public JSON Schema.",
        "required": true
      }
    ],
    "metadata": {
      "base_pair": "USDJPY",
      "build_id": "fxb-7a53a1fd26b55a7e7bdd40a2",
      "freshness": {
        "production_ready": true
      },
      "generation_mode": "seed",
      "git_sha": "5a70d9f23059d65bc898e794c27f796b0136d224",
      "release_id": "fxr-1180d9ef47178a58",
      "rights_mode": "derived_only",
      "rights_policy_hash": "cab1c7f3f11b68d63e54dec3fa734362625ac1c48a110735d56c8e4a99c0b1ba",
      "scoring_policy": {
        "calibrated": false,
        "mode": "heuristic_score"
      },
      "semantic_hash": "1180d9ef47178a580740f8428df46d37dd80cf5960c7dbd01805c6a2d895b6b6",
      "source_input_hash": "b6a40e35cabf3e25f779c99e2eb58d9c69122b3e573df4c460e27601f3cf443e",
      "tool_effect": {
        "focus_fx_signal": "ephemeral_browser_ui"
      },
      "trust_profile_key": "market_signal_radar"
    }
  },
  "generated_at": "2026-07-21T12:47:11.036Z",
  "locale": "ja-JP",
  "metadata": {
    "base_pair": "USDJPY",
    "build_id": "fxb-7a53a1fd26b55a7e7bdd40a2",
    "freshness": {
      "production_ready": true
    },
    "generation_mode": "seed",
    "git_sha": "5a70d9f23059d65bc898e794c27f796b0136d224",
    "release_id": "fxr-1180d9ef47178a58",
    "rights_mode": "derived_only",
    "rights_policy_hash": "cab1c7f3f11b68d63e54dec3fa734362625ac1c48a110735d56c8e4a99c0b1ba",
    "scoring_policy": {
      "calibrated": false,
      "mode": "heuristic_score"
    },
    "semantic_hash": "1180d9ef47178a580740f8428df46d37dd80cf5960c7dbd01805c6a2d895b6b6",
    "source_input_hash": "b6a40e35cabf3e25f779c99e2eb58d9c69122b3e573df4c460e27601f3cf443e",
    "tool_effect": {
      "focus_fx_signal": "ephemeral_browser_ui"
    },
    "trust_profile_key": "market_signal_radar"
  },
  "name": "FX Event Weather Radar",
  "noindex": true,
  "profile": {
    "description": "Read-only FX event and macro context surface.",
    "display_name": "FX Signal Radar",
    "key": "fx",
    "variant": "fx"
  },
  "public_safety": {
    "content_guard": {
      "blocked_patterns": [
        "\\byou should buy\\b",
        "\\byou should sell\\b",
        "\\bexecute (a )?trade\\b",
        "\\bplace (a )?(market|limit) order\\b",
        "\\bfor your portfolio\\b",
        "\\bguaranteed returns?\\b",
        "自動売買",
        "売買推奨",
        "価格目標"
      ],
      "summary": "Blocks personalized trade instruction wording from public agent feeds.",
      "validation_scope": "generated public files"
    },
    "endpoint": "/data/v1/public-safety.json",
    "public_safe": true,
    "read_only": true
  },
  "publisher": {
    "name": "RirastaFab",
    "url": "https://signal-radar.com/"
  },
  "read_only": true,
  "recommended_flow": [
    "Read /data/v1/release-manifest.json first and verify release_id, semantic_hash, git_sha, build_id, and payload_manifest_hash for exact byte identity.",
    "Read /data/v1/priority-queue.json first for operational clusters and nested components.",
    "Read /data/v1/latest.json for the summary and bounded canonical registry; keep isolated evidence separate.",
    "Do not confuse 24-hour event risk with 72-hour volatility pressure.",
    "Read /data/v1/source-health.json and reject production use when required freshness is not ready.",
    "Read diff and archive endpoints only when change analysis is required.",
    "Keep FMP observations aggregator/provider-reported and preserve the safety and rights boundary.",
    "Observation only. Not a trade signal."
  ],
  "repository": "https://github.com/RirastaFab/fx-event-weather-radar",
  "schema_version": "rirastafab-agent-manifest-v0.2",
  "site_id": "fx-event-weather-radar",
  "trust_layer": {
    "canonicalization_profile": "json-sort-keys-no-whitespace-v0",
    "digest_api": "rirastafab-agent-surface-kit#createTrustLayerDigest",
    "digest_profile": "static-agent-surface-v0.2",
    "proof_index_url": "/data/v1/proof/latest.json",
    "trust_layer_manifest_url": "/.well-known/rirastafab-trust.json"
  },
  "visibility": "private_preview",
  "webmcp": {
    "enabled": true,
    "tools": [
      {
        "annotations": {
          "destructive_hint": false,
          "idempotent_hint": true,
          "open_world_hint": false,
          "read_only_hint": true
        },
        "description": "Return the current coherent USDJPY event weather, 24-hour event risk, 72-hour volatility pressure, and next catalyst.",
        "execution": "client_webmcp",
        "handler": {
          "export": "registerFxWebMcpTools",
          "id": "fx-webmcp-get_fx_weather",
          "includeInTrustDigest": true,
          "module": "/assets/console/fx-webmcp-tools.js"
        },
        "input_schema": {
          "additionalProperties": false,
          "properties": {},
          "type": "object"
        },
        "name": "get_fx_weather",
        "read_only": true,
        "result_schema": {
          "maxLength": 1500,
          "type": "string"
        },
        "version": "1.0.0"
      },
      {
        "annotations": {
          "destructive_hint": false,
          "idempotent_hint": true,
          "open_world_hint": false,
          "read_only_hint": true
        },
        "description": "Search event and material signals in the current coherent FX radar release without fetching new data.",
        "execution": "client_webmcp",
        "handler": {
          "export": "registerFxWebMcpTools",
          "id": "fx-webmcp-search_fx_signals",
          "includeInTrustDigest": true,
          "module": "/assets/console/fx-webmcp-tools.js"
        },
        "input_schema": {
          "additionalProperties": false,
          "properties": {
            "attention": {
              "enum": [
                "all",
                "storm",
                "high",
                "watch",
                "calm"
              ],
              "type": "string"
            },
            "group": {
              "enum": [
                "all",
                "active-72h",
                "recent",
                "forward",
                "materials",
                "isolated"
              ],
              "type": "string"
            },
            "limit": {
              "maximum": 8,
              "minimum": 1,
              "type": "integer"
            },
            "query": {
              "description": "Search event, material, source, component, region, or watch-point text.",
              "maxLength": 120,
              "type": "string"
            }
          },
          "type": "object"
        },
        "name": "search_fx_signals",
        "read_only": true,
        "result_schema": {
          "maxLength": 1500,
          "type": "string"
        },
        "version": "1.0.0"
      },
      {
        "annotations": {
          "destructive_hint": false,
          "idempotent_hint": true,
          "open_world_hint": false,
          "read_only_hint": true
        },
        "description": "Return the published detail for one canonical event or material signal in the current coherent release.",
        "execution": "client_webmcp",
        "handler": {
          "export": "registerFxWebMcpTools",
          "id": "fx-webmcp-get_fx_signal",
          "includeInTrustDigest": true,
          "module": "/assets/console/fx-webmcp-tools.js"
        },
        "input_schema": {
          "additionalProperties": false,
          "properties": {
            "signal_id": {
              "description": "Canonical signal ID published in the Signal Feed.",
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            }
          },
          "required": [
            "signal_id"
          ],
          "type": "object"
        },
        "name": "get_fx_signal",
        "read_only": true,
        "result_schema": {
          "maxLength": 1500,
          "type": "string"
        },
        "version": "1.0.0"
      },
      {
        "annotations": {
          "destructive_hint": false,
          "idempotent_hint": true,
          "open_world_hint": false,
          "read_only_hint": true
        },
        "description": "Return the canonical operational Priority Queue in its published rank sequence.",
        "execution": "client_webmcp",
        "handler": {
          "export": "registerFxWebMcpTools",
          "id": "fx-webmcp-get_fx_priority",
          "includeInTrustDigest": true,
          "module": "/assets/console/fx-webmcp-tools.js"
        },
        "input_schema": {
          "additionalProperties": false,
          "properties": {
            "limit": {
              "maximum": 5,
              "minimum": 1,
              "type": "integer"
            }
          },
          "type": "object"
        },
        "name": "get_fx_priority",
        "read_only": true,
        "result_schema": {
          "maxLength": 1500,
          "type": "string"
        },
        "version": "1.0.0"
      },
      {
        "annotations": {
          "destructive_hint": false,
          "idempotent_hint": true,
          "open_world_hint": false,
          "read_only_hint": true
        },
        "description": "Return public-safe freshness and coverage state for sources in the current coherent release.",
        "execution": "client_webmcp",
        "handler": {
          "export": "registerFxWebMcpTools",
          "id": "fx-webmcp-get_fx_source_health",
          "includeInTrustDigest": true,
          "module": "/assets/console/fx-webmcp-tools.js"
        },
        "input_schema": {
          "additionalProperties": false,
          "properties": {
            "required_only": {
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "name": "get_fx_source_health",
        "read_only": true,
        "result_schema": {
          "maxLength": 1500,
          "type": "string"
        },
        "version": "1.0.0"
      },
      {
        "annotations": {
          "destructive_hint": false,
          "idempotent_hint": true,
          "open_world_hint": false,
          "read_only_hint": true
        },
        "description": "Focus a known signal in this page and open its existing detail drawer without changing server or domain data.",
        "execution": "client_webmcp",
        "handler": {
          "export": "registerFxWebMcpTools",
          "id": "fx-webmcp-focus_fx_signal",
          "includeInTrustDigest": true,
          "module": "/assets/console/fx-webmcp-tools.js"
        },
        "input_schema": {
          "additionalProperties": false,
          "properties": {
            "signal_id": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            }
          },
          "required": [
            "signal_id"
          ],
          "type": "object"
        },
        "name": "focus_fx_signal",
        "read_only": true,
        "result_schema": {
          "maxLength": 1500,
          "type": "string"
        },
        "version": "1.0.0"
      }
    ]
  }
}
