{
  "id": "openfinclaw-strategy",
  "name": "OpenFinClaw",
  "description": "Unified financial tools: market data (price/K-line/crypto/compare/search), strategy publishing, fork, and validation. Single API key for Hub and DataHub.",
  "kind": "financial",
  "enabledByDefault": true,
  "version": "2026.3.25",
  "skills": ["."],
  "configSchema": {
    "type": "object",
    "properties": {
      "apiKey": {
        "type": "string",
        "minLength": 1,
        "description": "API Key for Hub and DataHub (fch_ prefix). Also accepted via OPENFINCLAW_API_KEY env var.",
        "sensitive": true
      },
      "hubApiUrl": {
        "type": "string",
        "description": "Hub API URL",
        "default": "https://hub.openfinclaw.ai"
      },
      "datahubGatewayUrl": {
        "type": "string",
        "description": "DataHub Gateway URL for market data",
        "default": "https://datahub.openfinclaw.ai"
      },
      "requestTimeoutMs": {
        "type": "number",
        "default": 60000,
        "minimum": 5000,
        "maximum": 300000,
        "description": "HTTP request timeout in milliseconds"
      },
      "httpPort": {
        "type": "number",
        "default": 18792,
        "minimum": 1024,
        "maximum": 65535,
        "description": "Dashboard HTTP server port (loopback only)"
      },
      "schedulerEnabled": {
        "type": "boolean",
        "default": true,
        "description": "Enable scheduled tasks (daily scan, price monitor, reports)"
      },
      "scanCronExpr": {
        "type": "string",
        "default": "0 8 * * *",
        "description": "Cron expression for daily strategy scan"
      },
      "monitorCronExpr": {
        "type": "string",
        "default": "*/30 * * * *",
        "description": "Cron expression for price monitoring"
      },
      "weeklyReportCronExpr": {
        "type": "string",
        "default": "0 20 * * 0",
        "description": "Cron expression for weekly report"
      },
      "monthlyReportCronExpr": {
        "type": "string",
        "default": "0 20 1 * *",
        "description": "Cron expression for monthly report"
      },
      "scanTimezone": {
        "type": "string",
        "default": "Asia/Shanghai",
        "description": "Timezone for scheduled tasks"
      },
      "cronSessionTarget": {
        "type": "string",
        "default": "isolated",
        "description": "Cron job session mode: 'isolated' (own session, won't block main chat) or 'main' (legacy, runs in main conversation)"
      },
      "cronDeliveryMode": {
        "type": "string",
        "default": "announce",
        "description": "Cron result delivery: 'announce' (push to user's last active channel) or 'none' (silent)"
      },
      "newsApiKey": {
        "type": "string",
        "description": "Optional API key for Finnhub or NewsAPI news provider",
        "sensitive": true
      },
      "newsProvider": {
        "type": "string",
        "default": "coingecko",
        "description": "News provider: coingecko (free, no key), finnhub, or newsapi"
      },
      "priceAlertThreshold": {
        "type": "number",
        "default": 5,
        "minimum": 0.1,
        "maximum": 100,
        "description": "Price change alert threshold in percent"
      }
    }
  },
  "uiHints": {
    "apiKey": {
      "label": "API Key",
      "help": "统一 API Key（用于 Hub 和 DataHub）。从 hub.openfinclaw.ai 获取。",
      "sensitive": true,
      "placeholder": "fch_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    },
    "hubApiUrl": {
      "label": "Hub API URL",
      "placeholder": "https://hub.openfinclaw.ai"
    },
    "datahubGatewayUrl": {
      "label": "DataHub Gateway URL",
      "placeholder": "https://datahub.openfinclaw.ai"
    }
  }
}
