Metadata-Version: 2.4
Name: game-plugin-oneshot
Version: 0.10.0
Summary: GAME SDK plugin for OneShot real-world AI agent tools
Project-URL: Homepage, https://oneshotagent.com
Project-URL: Repository, https://github.com/oneShotAgentSDK/game-plugin-oneshot
Project-URL: Documentation, https://docs.oneshotagent.com/sdk/overview
License-Expression: MIT
Requires-Python: >=3.10
Requires-Dist: game-sdk>=0.1.5
Requires-Dist: oneshot-python>=0.11.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.21; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Description-Content-Type: text/markdown

# game-plugin-oneshot

GAME SDK plugin that gives Virtuals Protocol agents access to OneShot real-world tools.

## Install

```bash
pip install game-plugin-oneshot
```

## Quick Start

```python
import os
from game_sdk.game.agent import Agent
from game_plugin_oneshot import OneShotPlugin

plugin = OneShotPlugin(
    private_key=os.environ["WALLET_PRIVATE_KEY"],
)

agent = Agent(
    api_key=os.environ["GAME_API_KEY"],
    name="my-agent",
    agent_description="An agent that can interact with the real world",
)

agent.add_worker(plugin.get_worker())
agent.run()
```

## Tools

All **31** OneShot tools (same set as the MCP server and `langchain-oneshot`):

| Tool | Description | Paid? |
|------|-------------|-------|
| `oneshot_email` | Send emails to real recipients | paid |
| `oneshot_sms` | Send SMS text messages | paid |
| `oneshot_voice` | Make phone calls with an AI voice agent | paid |
| `oneshot_research` | Deep research reports | paid |
| `oneshot_web_search` | Web search (fast, synchronous) | paid |
| `oneshot_web_read` | Read a web page as markdown | paid |
| `oneshot_people_search` | Search people by title/company/location | paid |
| `oneshot_enrich_profile` | Enrich a profile from LinkedIn/email/name | paid |
| `oneshot_find_email` | Find an email at a company | paid |
| `oneshot_verify_email` | Verify email deliverability | paid |
| `oneshot_deep_research_person` | Full background report on a person | paid |
| `oneshot_social_profiles` | Find someone's social accounts | paid |
| `oneshot_article_search` | Articles/interviews about a person | paid |
| `oneshot_person_newsfeed` | Recent social posts for a person | paid |
| `oneshot_person_interests` | What a person cares about | paid |
| `oneshot_person_interactions` | Followers/following/replies | paid |
| `oneshot_commerce_search` | Search for products | free |
| `oneshot_commerce_buy` | Purchase products online | paid |
| `oneshot_build` | Generate and deploy a website | paid |
| `oneshot_update_build` | Update an existing website | paid |
| `oneshot_browser` | Browser automation task | paid |
| `oneshot_browser_create_profile` | Create a persistent browser profile | free |
| `oneshot_browser_list_profiles` | List browser profiles | free |
| `oneshot_browser_delete_profile` | Delete a browser profile | free |
| `oneshot_inbox_list` | List inbound emails | free |
| `oneshot_inbox_get` | Get an inbound email by ID | free |
| `oneshot_sms_inbox_list` | List inbound SMS | free |
| `oneshot_sms_inbox_get` | Get an inbound SMS by ID | free |
| `oneshot_notifications` | List agent notifications | free |
| `oneshot_mark_notification_read` | Mark a notification as read | free |
| `oneshot_get_balance` | Get USDC + credits balance | free |

Paid tools are priced in USDC via x402. See [Pricing](https://docs.oneshotagent.com/pricing) for current rates.

## Payment

All paid tools use the [x402 payment protocol](https://www.x402.org/) to deduct USDC from your wallet on Base Mainnet. Fund your wallet with USDC before using paid tools.

## Complex Arguments

GAME `Argument` only supports scalar types. For tools that need structured input (`commerce_buy`, `build`, `update_build`), pass JSON strings; list fields on `people_search` accept comma-separated values:

```python
# The agent will generate these automatically, but for manual testing:
import json

shipping = json.dumps({
    "first_name": "John",
    "last_name": "Doe",
    "street": "123 Main St",
    "city": "Austin",
    "state": "TX",
    "zip_code": "78701",
    "phone": "+15551234567",
})

product = json.dumps({
    "name": "Acme SaaS",
    "description": "Project management for teams",
})
```

## Configuration

| Parameter | Default | Description |
|-----------|---------|-------------|
| `private_key` | (required) | Hex-encoded Ethereum private key |
| `base_url` | `None` | Override API URL |

## Requirements

- Python >= 3.10
- `game-sdk >= 0.1.5`
- `oneshot-python >= 0.11.0`

## Links

- [Documentation](https://docs.oneshotagent.com/sdk/virtuals)
- [langchain-oneshot on PyPI](https://pypi.org/project/langchain-oneshot/) — Full 31-tool LangChain integration
- [oneshot-python on PyPI](https://pypi.org/project/oneshot-python/) — Core HTTP client
- [TypeScript SDK](https://www.npmjs.com/package/@oneshot-agent/sdk)
- [MCP Server](https://www.npmjs.com/package/@oneshot-agent/mcp-server)
- [GitHub](https://github.com/oneshot-agent/sdk)

## License

MIT
