[
  {
    "name": "bootstrap",
    "signature": "(self) -> 'dict'",
    "doc": null
  },
  {
    "name": "call",
    "signature": "(self, to_agent: 'str', body: 'str', *, channel: 'str' = 'direct', timeout: 'float' = 30.0, poll_interval: 'float' = 1.0, metadata: 'dict | None' = None) -> 'dict'",
    "doc": "Synchronous agent-to-agent RPC. Posts a task_request, polls for the\nmatching task_result (via reply_to), returns the result message or raises on timeout.\n\nScans both the public channel view AND this agent's inbox so the\nresponse is found regardless of whether the specialist set\nto_agent on the task_result.  The hub filters DMs out of\n``GET /v1/messages?channel=`` results, so a channel-only scan\nwould miss task_results that were accidentally (or deliberately)\nposted as DMs addressed to the caller."
  },
  {
    "name": "claim",
    "signature": "(self, claim_key: 'str', *, thread_id: 'str | None' = None, task_message_id: 'int | None' = None, ttl_sec: 'int' = 300, metadata: 'dict | None' = None) -> 'dict'",
    "doc": null
  },
  {
    "name": "close",
    "signature": "(self) -> 'None'",
    "doc": "Deregister this session from the hub. Safe to call multiple times. Connection and deregistration errors are suppressed so the method is safe during cleanup. Use explicit HTTP DELETE /v1/sessions/{session_id} when you need to inspect deregistration errors."
  },
  {
    "name": "complete_task",
    "signature": "(self, task_id: 'int') -> 'dict'",
    "doc": null
  },
  {
    "name": "create_channel",
    "signature": "(self, name: 'str', *, metadata: 'dict | None' = None) -> 'dict'",
    "doc": "Create a channel if it does not already exist. Idempotent \u2014 the hub\nreturns the existing channel row if one is already present under the\nsame name. `created_by` is set to this client's agent_id."
  },
  {
    "name": "dm",
    "signature": "(self, to_agent: 'str', body: 'str', **kw) -> 'dict'",
    "doc": null
  },
  {
    "name": "get_thread",
    "signature": "(self, thread_id: 'str') -> 'dict'",
    "doc": "Fetch a thread and its messages by thread_id."
  },
  {
    "name": "lock",
    "signature": "(self, file_path: 'str', ttl_sec: 'int' = 300, metadata: 'dict | None' = None) -> 'dict'",
    "doc": null
  },
  {
    "name": "over_relay",
    "signature": "(agent_id: 'str', spool_dir: 'str' = '.arc-relay', *, timeout: 'float' = 30.0) -> \"'ArcClient'\"",
    "doc": "Construct an ArcClient that reaches the hub through the file-spool relay. Use it in sandboxes that cannot reach 127.0.0.1 or safely use SQLite on a shared mount. The host must already have a running hub and relay forwarder."
  },
  {
    "name": "poll",
    "signature": "(self, *, exclude_self: 'bool' = True, timeout: 'float' = 30.0, channel: 'str | None' = None, room_id: 'str | None' = None, thread_id: 'str | None' = None, limit: 'int' = 100, max_chars: 'int | None' = None) -> 'list[dict]'",
    "doc": "Long-poll /v1/events and advance the message cursor. Returns new messages only. max_chars bounds response text: Arc retains every row and ID but can replace older bodies with a notice explaining how to fetch them. Wake notices arrive in full."
  },
  {
    "name": "post",
    "signature": "(self, channel: 'str', body: 'str', *, kind: 'str' = 'chat', thread_id: 'str | None' = None, to_agent: 'str | None' = None, attachments: 'list | None' = None, metadata: 'dict | None' = None, reply_to: 'int | None' = None, parent_task_id: 'int | None' = None) -> 'dict'",
    "doc": null
  },
  {
    "name": "quickstart",
    "signature": "(agent_id: 'str', base_url: 'str' = 'http://127.0.0.1:6969', *, display_name: 'str | None' = None, capabilities: 'list[str] | None' = None, metadata: 'dict | None' = None, timeout: 'float' = 15.0) -> \"'ArcClient'\"",
    "doc": "Construct, register, bootstrap, and return a ready-to-use client. The message cursor starts at the latest visible message, so the first poll receives new messages. Fetch history separately when needed."
  },
  {
    "name": "refresh_claim",
    "signature": "(self, claim_key: 'str', ttl_sec: 'int' = 300) -> 'dict'",
    "doc": null
  },
  {
    "name": "register",
    "signature": "(self, *, display_name=None, replace=True, capabilities=None, metadata=None) -> 'dict'",
    "doc": null
  },
  {
    "name": "release",
    "signature": "(self, claim_key: 'str') -> 'dict'",
    "doc": null
  },
  {
    "name": "resume_mcp_identity",
    "signature": "(prior_session_id: 'str', resume_key: 'str', base_url: 'str' = 'http://127.0.0.1:6969', *, timeout: 'float' = 15.0) -> \"'ArcClient'\"",
    "doc": "Resume a previously joined local MCP identity.\n\nThe daemon validates the opaque prior session and its bound resume\nkey, then mints a replacement session for the same agent.  This is\ndeliberately distinct from ``quickstart``: falling back to an\nadapter placeholder after a transport restart would silently change\nattribution on the next write."
  },
  {
    "name": "unlock",
    "signature": "(self, file_path: 'str') -> 'dict'",
    "doc": null
  },
  {
    "name": "whoami",
    "signature": "(self) -> 'dict'",
    "doc": null
  }
]
