{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://agoragentic.com/schema/finance-agent-options-signal-intelligence.v1.json",
  "title": "Finance Agent Options Signal Intelligence V1",
  "description": "Standalone C0 research-only options signal intelligence artifact for Triptych OS (Agent OS). It normalizes option signals, risk summaries, alert plans, lifecycle state, performance tracking placeholders, and redacted receipts without creating brokerage execution, Robinhood MCP/provider dispatch, wallet/x402 mutation, execute/invoke behavior, marketplace publication, or capability publication.",
  "type": "object",
  "required": [
    "schema",
    "schema_ref",
    "artifact",
    "signal_id",
    "source_signal_provider_id",
    "created_at",
    "underlying_symbol",
    "strategy_type",
    "legs",
    "thesis_summary",
    "risk_disclaimer",
    "citations",
    "normalized_signal",
    "risk_summary",
    "lifecycle",
    "candidate_action",
    "alert_plan",
    "performance_tracker",
    "receipt",
    "non_personalized",
    "executable_directly",
    "can_execute_orders",
    "options_execution_enabled",
    "option_order_schema_allowed",
    "provider_dispatch_enabled",
    "route_can_create_live_read_route",
    "route_can_execute",
    "route_can_dispatch_provider",
    "route_can_approve_options_execution",
    "wallet_mutation_enabled",
    "x402_settlement_enabled",
    "marketplace_publication_enabled",
    "capability_publication_enabled"
  ],
  "additionalProperties": false,
  "properties": {
    "schema": {
      "type": "string",
      "const": "agoragentic.agent-os.finance-agent-options-signal-intelligence.v1"
    },
    "schema_ref": {
      "type": "string",
      "const": "/schema/finance-agent-options-signal-intelligence.v1.json"
    },
    "artifact": {
      "type": "string",
      "const": "options_signal_intelligence"
    },
    "signal_id": {
      "type": "string",
      "pattern": "^optsig_[a-zA-Z0-9_-]{8,64}$"
    },
    "source_signal_provider_id": { "$ref": "#/$defs/public_safe_id" },
    "created_at": { "type": "string", "format": "date-time" },
    "underlying_symbol": { "$ref": "#/$defs/public_safe_symbol" },
    "strategy_type": {
      "type": "string",
      "enum": ["long_call", "long_put", "debit_spread", "credit_spread", "spread_template"]
    },
    "legs": {
      "type": "array",
      "minItems": 1,
      "maxItems": 4,
      "items": { "$ref": "#/$defs/option_leg" }
    },
    "thesis_summary": { "$ref": "#/$defs/public_safe_text_512" },
    "conviction": { "$ref": "#/$defs/public_safe_text_128" },
    "time_horizon": { "$ref": "#/$defs/public_safe_text_128" },
    "risk_disclaimer": {
      "allOf": [
        { "$ref": "#/$defs/public_safe_text_512" },
        { "pattern": "[Nn]ot\\s+([Ff]inancial|[Ii]nvestment)\\s+[Aa]dvice" }
      ]
    },
    "citations": {
      "type": "array",
      "minItems": 1,
      "maxItems": 10,
      "items": { "$ref": "#/$defs/citation" }
    },
    "normalized_signal": {
      "type": "object",
      "required": [
        "underlying_symbol",
        "strategy_type",
        "leg_count",
        "expiration_window",
        "strike_or_moneyness_band",
        "non_personalized"
      ],
      "additionalProperties": false,
      "properties": {
        "underlying_symbol": { "$ref": "#/$defs/public_safe_symbol" },
        "strategy_type": {
          "type": "string",
          "enum": ["long_call", "long_put", "debit_spread", "credit_spread", "spread_template"]
        },
        "leg_count": { "type": "integer", "minimum": 1, "maximum": 4 },
        "expiration_window": { "$ref": "#/$defs/public_safe_text_128" },
        "strike_or_moneyness_band": { "$ref": "#/$defs/public_safe_text_128" },
        "non_personalized": { "type": "boolean", "const": true }
      }
    },
    "risk_summary": {
      "type": "object",
      "required": [
        "strategy_type",
        "max_loss_model",
        "max_loss_usd",
        "breakeven_estimate",
        "expiration_risk",
        "liquidity_warning",
        "assignment_risk",
        "undefined_max_loss_blocked"
      ],
      "additionalProperties": false,
      "properties": {
        "strategy_type": {
          "type": "string",
          "enum": ["long_call", "long_put", "debit_spread", "credit_spread", "spread_template"]
        },
        "max_loss_model": { "$ref": "#/$defs/public_safe_text_128" },
        "max_loss_usd": { "type": ["number", "null"], "minimum": 0 },
        "max_gain_usd": { "type": ["number", "null"], "minimum": 0 },
        "breakeven_estimate": { "type": ["number", "null"] },
        "expiration_risk": { "$ref": "#/$defs/public_safe_text_512" },
        "liquidity_warning": { "$ref": "#/$defs/public_safe_text_512" },
        "assignment_risk": { "$ref": "#/$defs/public_safe_text_512" },
        "undefined_max_loss_blocked": { "type": "boolean" },
        "stop_loss_usd": { "type": ["number", "null"], "minimum": 0 },
        "take_profit_usd": { "type": ["number", "null"], "minimum": 0 }
      }
    },
    "lifecycle": {
      "type": "object",
      "required": ["current_state", "states", "live_execution_state", "paper_simulation_state"],
      "additionalProperties": false,
      "properties": {
        "current_state": {
          "type": "string",
          "const": "receipt_created"
        },
        "states": {
          "type": "array",
          "minItems": 5,
          "maxItems": 5,
          "items": {
            "type": "string",
            "enum": [
              "intake_received",
              "normalized",
              "risk_summarized",
              "alert_plan_created",
              "receipt_created"
            ]
          }
        },
        "live_execution_state": {
          "type": "string",
          "const": "blocked_not_supported"
        },
        "paper_simulation_state": {
          "type": "string",
          "const": "not_started"
        }
      }
    },
    "candidate_action": {
      "type": "object",
      "required": [
        "action_type",
        "signal_id",
        "strategy_type",
        "requires_owner_approval",
        "executable_directly",
        "can_execute_orders",
        "provider_dispatch_enabled",
        "options_execution_enabled",
        "route_can_execute",
        "route_can_dispatch_provider",
        "next_safe_action"
      ],
      "additionalProperties": false,
      "properties": {
        "action_type": { "type": "string", "const": "review_options_signal" },
        "signal_id": { "type": "string", "pattern": "^optsig_[a-zA-Z0-9_-]{8,64}$" },
        "strategy_type": {
          "type": "string",
          "enum": ["long_call", "long_put", "debit_spread", "credit_spread", "spread_template"]
        },
        "requires_owner_approval": { "type": "boolean", "const": true },
        "executable_directly": { "type": "boolean", "const": false },
        "can_execute_orders": { "type": "boolean", "const": false },
        "provider_dispatch_enabled": { "type": "boolean", "const": false },
        "options_execution_enabled": { "type": "boolean", "const": false },
        "route_can_execute": { "type": "boolean", "const": false },
        "route_can_dispatch_provider": { "type": "boolean", "const": false },
        "next_safe_action": {
          "type": "string",
          "const": "review_research_or_create_paper_simulation"
        }
      }
    },
    "alert_plan": {
      "type": "object",
      "required": [
        "alert_plan_type",
        "entry_target_usd",
        "stop_loss_usd",
        "take_profit_usd",
        "delivery_mode",
        "executable_directly",
        "provider_dispatch_enabled"
      ],
      "additionalProperties": false,
      "properties": {
        "alert_plan_type": { "type": "string", "const": "signal_watchlist" },
        "entry_target_usd": { "type": ["number", "null"], "minimum": 0 },
        "stop_loss_usd": { "type": ["number", "null"], "minimum": 0 },
        "take_profit_usd": { "type": ["number", "null"], "minimum": 0 },
        "delivery_mode": { "$ref": "#/$defs/public_safe_id" },
        "executable_directly": { "type": "boolean", "const": false },
        "provider_dispatch_enabled": { "type": "boolean", "const": false }
      }
    },
    "performance_tracker": {
      "type": "object",
      "required": [
        "status",
        "paper_mode_only",
        "live_fills_recorded",
        "realized_pl_usd",
        "open_risk_usd"
      ],
      "additionalProperties": false,
      "properties": {
        "status": { "type": "string", "const": "not_started" },
        "paper_mode_only": { "type": "boolean", "const": true },
        "live_fills_recorded": { "type": "boolean", "const": false },
        "realized_pl_usd": { "type": ["number", "null"] },
        "open_risk_usd": { "type": ["number", "null"], "minimum": 0 }
      }
    },
    "receipt": {
      "type": "object",
      "required": [
        "receipt_type",
        "receipt_id",
        "signal_id",
        "input_hash",
        "created_at",
        "redaction_summary",
        "no_live_action_assertion"
      ],
      "additionalProperties": false,
      "properties": {
        "receipt_type": {
          "type": "string",
          "const": "options_signal_intelligence_receipt"
        },
        "receipt_id": {
          "type": "string",
          "pattern": "^rcpt_[a-f0-9]{24}$"
        },
        "signal_id": { "type": "string", "pattern": "^optsig_[a-zA-Z0-9_-]{8,64}$" },
        "input_hash": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "created_at": { "type": "string", "format": "date-time" },
        "redaction_summary": {
          "type": "object",
          "required": [
            "raw_provider_payload_excluded",
            "private_account_values_excluded",
            "order_payload_excluded",
            "wallet_values_excluded"
          ],
          "additionalProperties": false,
          "properties": {
            "raw_provider_payload_excluded": { "type": "boolean", "const": true },
            "private_account_values_excluded": { "type": "boolean", "const": true },
            "order_payload_excluded": { "type": "boolean", "const": true },
            "wallet_values_excluded": { "type": "boolean", "const": true }
          }
        },
        "no_live_action_assertion": { "type": "boolean", "const": true }
      }
    },
    "metadata": { "$ref": "#/$defs/public_safe_metadata_object" },
    "non_personalized": { "type": "boolean", "const": true },
    "executable_directly": { "type": "boolean", "const": false },
    "can_execute_orders": { "type": "boolean", "const": false },
    "options_execution_enabled": { "type": "boolean", "const": false },
    "option_order_schema_allowed": { "type": "boolean", "const": false },
    "provider_dispatch_enabled": { "type": "boolean", "const": false },
    "route_can_create_live_read_route": { "type": "boolean", "const": false },
    "route_can_execute": { "type": "boolean", "const": false },
    "route_can_dispatch_provider": { "type": "boolean", "const": false },
    "route_can_approve_options_execution": { "type": "boolean", "const": false },
    "wallet_mutation_enabled": { "type": "boolean", "const": false },
    "x402_settlement_enabled": { "type": "boolean", "const": false },
    "marketplace_publication_enabled": { "type": "boolean", "const": false },
    "capability_publication_enabled": { "type": "boolean", "const": false }
  },
  "$defs": {
    "option_leg": {
      "type": "object",
      "required": [
        "underlying_symbol",
        "expiration",
        "strike",
        "option_type",
        "position_intent",
        "quantity_ratio",
        "contract_descriptor"
      ],
      "additionalProperties": false,
      "properties": {
        "underlying_symbol": { "$ref": "#/$defs/public_safe_symbol" },
        "expiration": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "strike": { "type": "number", "exclusiveMinimum": 0 },
        "option_type": { "type": "string", "enum": ["call", "put"] },
        "position_intent": { "type": "string", "enum": ["long", "short"] },
        "quantity_ratio": { "type": "number", "exclusiveMinimum": 0, "maximum": 10 },
        "contract_descriptor": { "$ref": "#/$defs/public_safe_text_128" }
      }
    },
    "citation": {
      "type": "object",
      "required": ["title", "url"],
      "additionalProperties": false,
      "properties": {
        "title": { "$ref": "#/$defs/public_safe_text_128" },
        "url": {
          "type": "string",
          "pattern": "^https?://[^\\s?#]+(?:[/?#][^\\s]*)?$",
          "not": {
            "pattern": "[?&](token|access_token|refresh_token|api_key|key|secret|authorization)="
          }
        }
      }
    },
    "public_safe_metadata_object": {
      "type": "object",
      "propertyNames": {
        "not": {
          "enum": [
            "account_id",
            "account_number",
            "auth_token",
            "authorization",
            "broker_payload",
            "call_mcp_tool",
            "call_provider",
            "card_number",
            "client_order_id",
            "contract_id",
            "credential",
            "credentials",
            "cvv",
            "execute_order",
            "executable_directly",
            "limit_price",
            "mfa_code",
            "oauth_token",
            "occ_symbol",
            "option_symbol",
            "order_id",
            "order_payload",
            "order_ticket",
            "order_type",
            "password",
            "payment_payload",
            "place_order",
            "provider_dispatch",
            "provider_dispatch_enabled",
            "quantity",
            "raw_payload",
            "raw_provider_payload",
            "refresh_token",
            "robinhood_mcp_dispatch",
            "route_authority",
            "route_can_execute",
            "route_can_dispatch_provider",
            "secret",
            "session_cookie",
            "stop_price",
            "submit_order",
            "time_in_force",
            "token",
            "wallet_private_key",
            "wallet_payload",
            "x402_payment_enabled"
          ]
        }
      },
      "additionalProperties": { "$ref": "#/$defs/public_safe_metadata_value" }
    },
    "public_safe_metadata_value": {
      "anyOf": [
        { "$ref": "#/$defs/public_safe_text_512" },
        { "type": "number" },
        { "type": "boolean" },
        { "type": "null" },
        {
          "type": "array",
          "maxItems": 25,
          "items": { "$ref": "#/$defs/public_safe_metadata_value" }
        },
        { "$ref": "#/$defs/public_safe_metadata_object" }
      ]
    },
    "public_safe_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 96,
      "pattern": "^[a-zA-Z0-9_.:-]+$"
    },
    "public_safe_symbol": {
      "type": "string",
      "minLength": 1,
      "maxLength": 10,
      "pattern": "^[A-Z][A-Z0-9.]{0,9}$"
    },
    "public_safe_text_128": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "not": { "$ref": "#/$defs/private_or_token_text" }
    },
    "public_safe_text_512": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512,
      "not": { "$ref": "#/$defs/private_or_token_text" }
    },
    "private_or_token_text": {
      "anyOf": [
        { "pattern": "[?&](token|access_token|refresh_token|api_key|key|secret|authorization)=" },
        { "pattern": "([Aa][Pp][Ii][_-]?[Kk][Ee][Yy]|[Aa]ccess[_-]?[Tt]oken|[Rr]efresh[_-]?[Tt]oken|[Oo][Aa]uth|[Pp]assword|[Ss]ecret|[Mm][Ff][Aa]|[Cc][Vv][Vv])" },
        { "pattern": "([Aa]ccount|[Cc]ard|[Pp]ayment|[Ww]allet|[Rr]outing)[\\s_-]?([Nn]umber|[Pp]ayload|[Rr]aw|[Vv]alue|[Vv]alues)" }
      ]
    }
  }
}
