Metadata-Version: 2.4
Name: autobots-devtools-shared-lib
Version: 0.2.1
Summary: Shared library functions to be used for all autobots projects
License: MIT
Author: Pralhad
Author-email: pralhad.kamath@pratishthanventures.com
Requires-Python: >=3.12,<4.0.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: chainlit (>=2.9.6)
Requires-Dist: fastapi (>=0.115.0)
Requires-Dist: jsonschema (>=4.26.0)
Requires-Dist: langchain (>=1.0.0)
Requires-Dist: langchain-anthropic (>=0.3.0)
Requires-Dist: langchain-google-genai (>=4.2.0)
Requires-Dist: langfuse (>=3.12.1)
Requires-Dist: opentelemetry-api (>=1.30.0,<2.0.0)
Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.30.0,<2.0.0)
Requires-Dist: opentelemetry-instrumentation-fastapi (>=0.49b0)
Requires-Dist: opentelemetry-sdk (>=1.30.0,<2.0.0)
Requires-Dist: pydantic-settings (>=2.10.1)
Requires-Dist: python-dotenv (>=1.1.1)
Requires-Dist: pyyaml (>=6.0.3)
Requires-Dist: uvicorn[standard] (>=0.32.0)
Description-Content-Type: text/markdown

# Autobots DevTools Shared Library

**Dyn**amic **Agent** (**Dynagent**) is the core of this library. It turns your prompts and business processes into production-ready, multi-agent applications—chatbots and unsupervised workflows—in hours. You focus on prompts, output schemas, and domain logic; Dynagent handles multi-LLM wiring, UI integration, observability, and batch processing out of the box.

**Quickstart**
Build your first agent by following Scaffolding guide [here](https://github.com/Pratishthan/autobots-agents-jarvis/blob/main/docs/user-manuals/scaffolding.md).

### Essential features

| Feature | Description |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Dynagent framework** | Build dynamic AI agents with YAML configs, prompts, and tools. Agent handoff and default/coordinator agents for mesh-style flows. |
| **Multi-LLM support** | Swap LLMs like swapping batteries. Use Gemini, Claude, or others via a single integration layer. |
| **Chainlit UI** | Pre-built streaming, tool steps, and structured output for Chainlit. OAuth-ready. |
| **State & context** | Session state and context management with caching and durable storage. Tools receive `ToolRuntime` with shared state across handoffs. |
| **Batch processing** | Run prompts in parallel for batch-enabled agents. Sync API with `batch_invoker` and `BatchResult`. |
| **Observability** | Langfuse integration for tracing and monitoring. `TraceMetadata` for session, app, and tags. |
| **Pythonic** | Native Python and LangChain tools. Type hints, async/sync, pytest—no DSLs. |
| **Extensible** | File server, workspace management, Jenkins integration, and helpers that plug into the framework. |
| **Containerization** | Docker images with bundled dependencies for consistent deployment. |
| **Prompt versioning** | Prompts as source — version-controlled markdown files alongside code. |
| **Prompt evaluation** | Tooling to tweak and evaluate prompt quality across versions. |

### Batteries included

| Helper | Description |
| ------ | ----------- |
| **File server** | Serve and manage files within agent sessions. |
| **Workspace management** | Manage working directories and session artifacts. |
| **Context management** | Caching and durable storage for session context. |
| **Jenkins integration** | Trigger and monitor Jenkins pipelines from agents. |

## Quickstart

| Guide | Description |
| ------ | ----------- |
| **[Try Jarvis](https://github.com/Pratishthan/autobots-agents-jarvis)** | See Dynagent in action with a multi-domain multi-agent demo (Concierge, Customer Support, Sales). |
| **[Install](#workspace-setup)** | Set up the shared workspace, virtual environment, and install this library. |
| **[Development](#development)** | Run tests, format, lint, type-check, and use the Makefile from this repo or the workspace root. |

## How-to guides

| Guide | Description |
| ------ | ----------- |
| **[Workspace setup](#workspace-setup)** | Clone the workspace, create the shared `.venv`, clone this repo, and install dependencies. |
| **[Development](#development)** | Available `make` targets: test, format, lint, type-check, install, build, clean. |
| **[Project structure](#project-structure)** | Layout of `autobots_devtools_shared_lib` (dynagent, chainlit_ui, llm_tools, observability, batch). |
| **[Testing](#testing)** | Unit, integration, and e2e tests. Run with `make test`, `make test-fast`, or `make test-one`. |
| **[Contributing](#contributing)** | See CONTRIBUTING.md for guidelines and workflow. |
| **[Publishing](#publishing)** | See PUBLISHING.md for PyPI publishing. |

## Advanced

| Topic | Description |
| ------ | ----------- |
| **[Code quality](#code-quality-standards)** | Type safety (Pyright), pytest, Ruff format/lint, pre-commit hooks. |
| **[Type checking](#type-checking)** | Pyright in basic mode; type annotations required. |
| **[Workspace commands](#workspace-level-commands)** | From workspace root: `make test`, `make lint`, `make format`, `make type-check`, `make all-checks` across all repos. |

---

## Workspace setup

This library is part of a multi-repository workspace. Use a shared virtual environment at the workspace root.

**Prerequisites:** Python 3.12+, Poetry (e.g. `brew install poetry` on macOS).

### 1. Clone the workspace

```bash
cd /path/to/your/work
git clone <workspace-url> ws-jarvis
cd ws-jarvis
```

### 2. Create shared virtual environment

```bash
make setup
```

This creates a shared `.venv` at the workspace root.

### 3. Clone this repository

```bash
git clone https://github.com/Pratishthan/autobots-devtools-shared-lib.git
cd autobots-devtools-shared-lib
```

### 4. Install dependencies

```bash
make install-dev   # with dev dependencies (recommended)
# or
make install       # runtime only
```

### 5. Pre-commit hooks

```bash
make install-hooks
```

## Development

Run from `autobots-devtools-shared-lib/`:

```bash
# Testing
make test              # with coverage
make test-fast         # no coverage
make test-one TEST=tests/unit/test_example.py::test_function

# Code quality
make format            # Ruff format
make lint              # Ruff lint (auto-fix)
make check-format      # check only
make type-check        # Pyright
make all-checks        # format, type, test

# Dependencies & build
make install / make install-dev / make update-deps
make build
make clean
make help
```

### Workspace-level commands

From the workspace root:

```bash
make test
make lint
make format
make type-check
make all-checks
```

## Project structure

```
autobots-devtools-shared-lib/
├── src/autobots_devtools_shared_lib/
│   ├── dynagent/           # Multi-agent framework
│   ├── chainlit_ui/        # Chainlit UI components
│   ├── llm_tools/          # LLM integrations
│   ├── observability/      # Observability helpers
│   └── batch_processing/   # Batch utilities
├── tests/
│   ├── unit/
│   ├── integration/
│   └── e2e/
├── .github/workflows/
├── pyproject.toml
├── poetry.toml             # Poetry settings (uses workspace .venv)
├── Makefile
├── CONTRIBUTING.md
└── PUBLISHING.md
```

## Code quality standards

- **Type safety:** Type annotations; Pyright (basic mode).
- **Testing:** pytest; unit, integration, e2e.
- **Formatting:** Ruff, line length 100.
- **Linting:** Ruff, strict rules.
- **Pre-commit:** Format, lint, type-check, tests on commit.

## Testing

```bash
make test
make test-one TEST=tests/unit/test_example.py
make test-cov   # HTML coverage report
```

- **Unit** (`tests/unit/`): Functions and classes.
- **Integration** (`tests/integration/`): Component interactions.
- **E2E** (`tests/e2e/`): Full workflows.

## Type checking

```bash
make type-check
```

All code must have type annotations. Pyright runs in basic mode.

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md) for development workflow and guidelines.

## Publishing

See [PUBLISHING.md](PUBLISHING.md) for PyPI publishing.

## License

MIT

## Authors

- **Pra1had** — [GitHub](https://github.com/pra1had) · pralhad.kamath@pratishthanventures.com

## Questions?

Open an issue on the project repository.

