Metadata-Version: 2.1
Name: ticos-agent
Version: 0.4.0
Summary: Ticos Agent
License: Apache-2.0
Author: Ticos Dev
Author-email: hi@tiwater.com
Requires-Python: >=3.8.1,<4.0
Classifier: License :: OSI Approved :: Apache Software 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
Provides-Extra: yan
Requires-Dist: flake8 (>=7.1.1,<8.0.0)
Requires-Dist: opentelemetry-api (>=1.19.0,<2.0.0)
Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.27.0,<2.0.0)
Requires-Dist: opentelemetry-sdk (>=1.19.0,<2.0.0)
Requires-Dist: psutil (>=6.0.0,<7.0.0)
Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
Requires-Dist: requests (>=2.32.3,<3.0.0)
Requires-Dist: tomli (>=2.0.1,<3.0.0)
Description-Content-Type: text/markdown

<img src="https://dash.ticos.ai/logo.svg" alt="Ticos Logo" width="80" height="auto">

# Ticos Agent

## What is Ticos?

Ticos is an advanced Embodied AI platform for Humanoid Robotics. It provides a comprehensive suite of tools and frameworks for developing, deploying, and managing intelligent systems for humanoid robots. The Ticos Agent is a crucial component of this ecosystem, responsible for collecting and transmitting data from robotic systems to the Ticos cloud infrastructure.

## Overview

The Ticos Agent is an extensible, efficient, and secure data collection and transmission system designed for robotic applications, with a focus on humanoid robotics. It serves as the bridge between the physical robot and the Ticos cloud platform, enabling real-time monitoring, analytics, and AI-driven decision making.

## Features

- Real-time system information collection
- Extensible architecture for custom data collection modules
- Secure and efficient data transmission
- Configurable data collection intervals
- Support for running as a daemon process
- Easy-to-use command-line interface

## Installation

To install the Ticos Agent, you can use pip:

```bash
pip install ticos-agent
```

Or clone the repository and install:

```bash
git clone https://github.com/tiwater/ticos-agent.git
cd ticos-agent
pip install .
```

## Configuration

The Ticos Agent uses a YAML configuration file. By default, it looks for `/etc/ticos_agent.conf`. Here's an example configuration:

```yaml
# Default path for custom robots
custom_robots_path: examples/custom_robots
api_url: https://dash.ticos.ai
api_key: <api-key> # You can create one on dash.ticos.ai
# device_id: 1 # Optional, if not provided, the mac address of the current device will be used.

# Telemetry configuration
telemetry:
  exporter: console # Options: otlp, logging, file
  # otlp_endpoint: http://localhost:4318/v1/traces # Only used if exporter is otlp

devices:
  # - name: yan_robot
  #   type: builtin
  #   model: yan
  #   class_name: YanRobot
  - name: desktop_agent
    type: builtin
    model: desktop
    class_name: DesktopAgent
  # - name: custom_mock_robot
  #   type: custom
  #   path: mock_robot.robot
  #   class_name: MockRobot

collect_interval: 5
send_interval: 5
```

## Usage

To run the Ticos Agent:

```bash
ticos-agent --config /path/to/config.yaml
```

To run as a daemon:

```bash
ticos-agent --config /path/to/config.yaml --daemon
```

## Extending the Ticos Agent

The Ticos Agent supports custom extensions for data collection. To create an extension:

1. Create a Python file in the `extensions_dir` specified in your config.
2. Implement the `DeviceInterface` as shown below.

```py
class DeviceInterface(ABC):
    @abstractmethod
    def get_device_info(self):
        pass

    @abstractmethod
    def collect_data(self):
        pass

    @abstractmethod
    def execute_command(self, command_name, **kwargs):
        pass
```

You can look into folder `examples/custom_robots/` for robot examples, or `src/ticos_agent/robots` for builtin robots.

## Contributing

We welcome contributions to the Ticos Agent! Please see our [Contributing Guide](CONTRIBUTING.md) for more details.

## License

The Ticos Agent is released under the [MIT License](LICENSE).

## Support

For support, please open an issue on our [GitHub repository](https://github.com/tiwater/ticos-agent) or contact our support team at support@ticos.ai.

## Acknowledgements

The Ticos Agent is developed and maintained by the Tiwater Intelligent Cloud OS team. We thank all our contributors and the open-source community for their valuable input and support.

