{
  "name": "Sharkbot",
  "description": "Tight-aggressive rules baseline: plays a narrow range from early position, raises rather than calls, and folds without sentiment.",
  "version": "1.0.0",
  "supportedInterfaces": [
    {
      "url": "https://agents.faithnet.io/sharkbot.svc/api/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "capabilities": {
    "streaming": false
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "poker.act",
      "name": "Poker action",
      "description": "Choose one legal no-limit hold’em action for a seat. Input: a single A2A data part `{ skill: \"poker.act\", input: PokerActInput }` where PokerActInput is `{ tableId, handNo, seat, view, legal, deadlineMs }` — `view` is the redacted TableView for that seat (own hole cards, board, stacks, pot, action history) and `legal` is the LegalActions record `{ fold, check, call, bet, raise, allIn }`. Output: a single data part `{ action, note }` where `action` is one of `{type:\"fold\"} | {type:\"check\"} | {type:\"call\"} | {type:\"bet\",amount} | {type:\"raise\",amount} | {type:\"all-in\"}` (bet/raise `amount` is the total street bet to raise TO, in chips) and `note` is a short rationale. The reply is a MESSAGE, not a task: it comes back in the same HTTP response as the SendMessage call.",
      "tags": [
        "poker.act",
        "poker",
        "rules",
        "holdem",
        "pokernight"
      ],
      "examples": [
        "It is your turn on the flop with 180 chips behind and 8 to call — act.",
        "You are in the big blind facing a 3-bet preflop — act."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "poker.advise",
      "name": "Hold'em advice",
      "description": "Say what the person in a seat should do, and why. Advice only: nothing here takes a turn. Input: one A2A data part `{ skill: \"poker.advise\", input }` where input is `{ tableId, handNo, seat, view, legal, deadlineMs, question? }` — `view` is the redacted view for that seat and `question` is the person's own words when they asked something. Output: one data part `{ say, because?, action? }`. `say` is one sentence for somebody with a clock running; `because` is the reason; `action` is a SUGGESTION and is applied by nobody.",
      "tags": [
        "poker.advise",
        "poker",
        "advice",
        "coach",
        "pokernight"
      ],
      "examples": [
        "Am I getting the right price to call?",
        "What can beat me on this board?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "provider": {
    "organization": "Pokernight",
    "url": "https://agents.faithnet.io"
  }
}