Metadata-Version: 2.4
Name: agentkit-runtime
Version: 0.1.2
Summary: Agent Runtime SDK for igentbase — build sandboxed AI agents with one import
Project-URL: Homepage, https://www.igentbase.com
Project-URL: Documentation, https://www.igentbase.com/docs-developer
Project-URL: Repository, https://github.com/igentbase/agentkit-runtime-python
Author: igentbase Inc.
License-Expression: LicenseRef-Proprietary
License-File: LICENSE
Keywords: a2a,agent,ai,igentbase,mcp,runtime,sandbox
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.9
Provides-Extra: yaml
Requires-Dist: pyyaml>=6.0; extra == 'yaml'
Description-Content-Type: text/markdown

# agentkit-runtime — Agent Runtime SDK for igentbase

Build sandboxed AI agents with 38 permissions, encrypted vault, scoped storage, and sandboxing.

## Install

```bash
pip install agentkit-runtime
```

## Usage

```python
from agentkit_runtime import AgentRuntime

agent = AgentRuntime()

# Network requests (declared hosts only)
resp = agent.internet.get("https://api.openai.com/v1/models")

# Encrypted secrets vault
api_key = agent.secrets.require("OPENAI_API_KEY")

# Clipboard
text = agent.clipboard.read()

# Scoped storage (declared directories only)
files = agent.storage_read.list_files("Documents", "*.pdf")
content = agent.storage_read.read_text(files[0].path)

# Notifications
agent.notifications.send("Done!", "Processed all files")

# Logging (local file + stderr + syslog)
agent.local.log.info("task complete")

# Push log to Manager UI
agent.system.log.info("Agent ready")

# Check permissions at runtime
if agent.permissions.is_granted("CAMERA"):
    photo = agent.camera.capture()

# Check agent dependencies
if agent.dependencies.is_installed("com.dev.other-agent"):
    result = agent.call("com.dev.other-agent", "analyze", {"text": "hello"})
```

## Permissions

Agents declare permissions in `manifest.yaml`. Users review and approve at install time. Runtime permissions prompt the user on first use (Allow / Allow Once / Don't Allow).

**38 permissions across 14 categories:**

| Category | Permissions |
|----------|------------|
| Network | `INTERNET`, `LISTEN_PORT` |
| Display | `CLIPBOARD`, `SCREEN_CAPTURE` |
| Device | `CAMERA`, `MICROPHONE`, `AUDIO_OUTPUT` |
| System | `NOTIFICATIONS`, `SYSTEM_INFO`, `ENV_VARS`, `SECRETS`, `RUN_COMMAND`, `OPEN_URL` |
| Inspection | `NETWORK_INFO`, `INSTALLED_SOFTWARE`, `PROCESS_LIST`, `SERVICE_LIST` |
| Modification | `INSTALL_SOFTWARE` |
| Storage | `STORAGE_READ`, `STORAGE_WRITE`, `FULL_STORAGE_READ`, `FULL_STORAGE_WRITE`, `AGENT_SHARED_DATA` |
| Hardware | `BLUETOOTH`, `LOCATION`, `USB` |
| PIM | `CONTACTS`, `CALENDAR` |
| Power | `WAKE_LOCK`, `SYSTEM_SETTINGS`, `WALLPAPER`, `VIBRATE` |
| Connectivity | `NFC` |
| Security | `BIOMETRIC`, `ACCESSIBILITY` |
| Scheduling | `SCHEDULED_TASKS` |
| Service | `BACKGROUND_SERVICE`, `RECEIVE_EVENTS` |

## Security

Agents run in a secure, isolated environment. Every system resource is access-controlled through permissions — agents can only do what the user explicitly allows.

## Docs

- Developer Guide: https://www.igentbase.com/docs-developer
- Provider Reference: https://www.igentbase.com/docs-providers
- Marketplace: https://www.igentbase.com

---

Built by [igentbase Inc.](https://www.igentbase.com)
