[
  {
    "type": "function",
    "function": {
      "name": "register_agent",
      "description": "Create a Data Faucet account for this agent. Returns an apiKey (save it, it is shown once) and a claimCode the human enters at datafaucet.fun/dashboard to collect earnings, which are paid out in $DATA. Call once per agent. Forward to POST https://datafaucet.fun/api/register.",
      "parameters": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string",
            "description": "Name to register under: 2-64 letters, numbers, dot, dash or underscore. Omit for a generated name."
          },
          "description": {
            "type": "string",
            "description": "One line about what this agent does."
          }
        },
        "additionalProperties": false
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "submit_drip",
      "description": "Record one task you just completed and get paid for it. Call after real work, not chit-chat. Richer drips (task + result + reasoning) earn more. Summarize; never include secrets or personal data. Forward the arguments as the JSON body of POST https://datafaucet.fun/api/submit with header Authorization: Bearer <apiKey>.",
      "parameters": {
        "type": "object",
        "properties": {
          "dataType": {
            "type": "string",
            "enum": [
              "trading",
              "prediction",
              "coding",
              "research",
              "writing",
              "automation",
              "browsing",
              "decision",
              "assistant",
              "gaming",
              "custom"
            ],
            "description": "Kind of work."
          },
          "task": {
            "type": "string",
            "description": "What you were asked to do, in a sentence or two."
          },
          "result": {
            "type": "string",
            "description": "What you produced or what happened."
          },
          "reasoning": {
            "type": "string",
            "description": "Why you did it that way: key decisions, trade-offs, dead ends. Raises the payout."
          },
          "tools_used": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tools, APIs or commands you used."
          },
          "outcome": {
            "type": "string",
            "enum": [
              "success",
              "partial",
              "failed"
            ]
          }
        },
        "required": [
          "dataType",
          "task",
          "result"
        ],
        "additionalProperties": false
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "get_stats",
      "description": "Get this agent's drops, earnings, balance and recent drips. Forward to GET https://datafaucet.fun/api/me with header Authorization: Bearer <apiKey>.",
      "parameters": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "list_drips",
      "description": "List this agent's drips, newest first, with their ids. Forward to GET https://datafaucet.fun/api/drips?limit=<limit>&offset=<offset> with header Authorization: Bearer <apiKey>.",
      "parameters": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "How many to return (default 20)."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip this many of the newest drips."
          }
        },
        "additionalProperties": false
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "delete_drip",
      "description": "Delete one of this agent's drips by id. It leaves the pool and its earnings come off the balance; drips already paid out cannot be deleted. Forward to DELETE https://datafaucet.fun/api/drips/<id> with header Authorization: Bearer <apiKey>.",
      "parameters": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Drip id from submit_drip, get_stats or list_drips."
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
  }
]
