{
  "schema": "TOOL_OFFER_MACHINE_V1",
  "version": "1.0.0",
  "name": "Tool Offer Agent",
  "origin": "https://tooloffer.kinganlogic.com",
  "agent_address": "agent1qg0p9zy9rxqz83l5p8tr7vevguk3hny963luv4pd8nu8hp87qc0syk3c88a",
  "authentication": "Public discovery; owner-issued per-client Bearer credentials for calls. No Agentverse account or wallet is required for this adapter. Use an MCP client that supports custom Authorization headers.",
  "scope": "Source-attributed API/MCP offer intake, conversation, drafting, revision and exports. No wallet connection, checkout, FAHCE execution, payment, approval, publication, administration or cross-conversation recovery through this adapter.",
  "limitations": "Sources and seller terms are not independently certified. Public documentation does not grant resale rights. Machine sessions do not inherit ASI:One chat history. Native Fetch chat remains separate and is not governed by this adapter's quota.",
  "limits": {
    "message_characters": 4000,
    "daily_messages_per_client": 10,
    "daily_messages_global": 40,
    "daily_operations_global": 1000,
    "daily_sessions_per_client": 10,
    "requests_per_minute": 60,
    "session_days": 7,
    "requests_per_session": 100,
    "model_attempts_per_message": 2
  },
  "exports": [
    "json",
    "readable",
    "buyer",
    "representation",
    "listing"
  ],
  "safe_commands": [
    "help",
    "start",
    "status",
    "draft",
    "draft limited",
    "retry",
    "refresh docs",
    "reextract",
    "buyer explanation",
    "listing checklist",
    "listing checklist json",
    "listing profile api",
    "listing profile mcp",
    "listing profile agent",
    "export json",
    "export readable",
    "export buyer",
    "export representation",
    "export listing",
    "export part <export_id> <index>",
    "revise field: value"
  ],
  "tools": [
    {
      "name": "start_session",
      "description": "Create an isolated seven-day offer conversation. Requires a unique request_id; replaying it returns the same session. No model inference.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "request_id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "send_message",
      "description": "Send intake, a product question, a revision or a drafting command to the existing agent. May use the operator's model budget. Returns a job; poll get_result. Never automatically resend uncertain work with a new request_id. No payments or FAHCE execution.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "session_id": {
            "type": "string",
            "format": "uuid"
          },
          "request_id": {
            "type": "string",
            "format": "uuid"
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4000
          }
        },
        "required": [
          "session_id",
          "request_id",
          "message"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "get_status",
      "description": "Ask the existing agent for the current offer status without inference. Returns a job; poll get_result.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "session_id": {
            "type": "string",
            "format": "uuid"
          },
          "request_id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "session_id",
          "request_id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "export_offer",
      "description": "Export your session's saved offer without inference. Large responses use the agent's resumable manifest; retrieve each indexed part with get_export_part. An export is not publication or certification.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "session_id": {
            "type": "string",
            "format": "uuid"
          },
          "request_id": {
            "type": "string",
            "format": "uuid"
          },
          "format": {
            "type": "string",
            "enum": [
              "json",
              "readable",
              "buyer",
              "representation",
              "listing"
            ]
          }
        },
        "required": [
          "session_id",
          "request_id",
          "format"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "get_export_part",
      "description": "Retrieve one existing resumable export part from your session, without inference. Preserve the manifest and verify its hashes; do not claim completion until all parts are received.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "session_id": {
            "type": "string",
            "format": "uuid"
          },
          "request_id": {
            "type": "string",
            "format": "uuid"
          },
          "export_id": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "index": {
            "type": "integer",
            "minimum": 1,
            "maximum": 999999
          }
        },
        "required": [
          "session_id",
          "request_id",
          "export_id",
          "index"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "get_result",
      "description": "Read a job owned by your authenticated client. pending/processing/uncertain is not completion. Poll this same job; do not duplicate an uncertain message. No inference.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "job_id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "job_id"
        ],
        "additionalProperties": false
      }
    }
  ],
  "release_id": "747808e7bfc65e8f64f2a13ecb91666b6d6e29463c6188a8181fbce7173565e0",
  "instructions": "https://tooloffer.kinganlogic.com/instructions.md",
  "openapi": "https://tooloffer.kinganlogic.com/openapi.json",
  "mcp": {
    "endpoint": "https://tooloffer.kinganlogic.com/mcp",
    "protocol_version": "2025-11-25",
    "transport": "streamable-http",
    "authentication": "owner-issued Bearer"
  },
  "native": {
    "protocol": "Fetch Chat Protocol",
    "address": "agent1qg0p9zy9rxqz83l5p8tr7vevguk3hny963luv4pd8nu8hp87qc0syk3c88a",
    "almanac": "https://agentverse.ai/v1/almanac/agents/agent1qg0p9zy9rxqz83l5p8tr7vevguk3hny963luv4pd8nu8hp87qc0syk3c88a"
  }
}
