$ show SolaceLabs/solace-agent-mesh
Solace Agent Mesh is a production-grade, full-stack platform for building, deploying, and managing event-driven multi-agent AI systems. It comprises a Python backend (FastAPI, Google ADK, SAC), a React/TypeScript web UI (chat, projects, workflows, prompts, scheduled tasks), a Click-based CLI, and a Docusaurus documentation site. The system uses a microservices-like architecture with separate gateway (HTTP/SSE), platform service (model configuration, storage), and agent components, all communicating via the Solace event broker and the A2A (Agent-to-Agent) protocol. Key entry points include the CLI (`solace-agent-mesh`), the web UI (`/chat`, `/projects`, `/workflows`), and the REST API (`/api/v1`). Data flows involve user requests via SSE, agent orchestration with workflow DAGs, tool execution (built-in, MCP, OpenAPI), artifact storage (S3/GCS/Azure/filesystem), and session persistence in SQL databases (SQLite/PostgreSQL/MySQL). External dependencies include a Solace broker, LLM endpoints (LiteLLM), optional databases, and cloud storage services. The repository is marked as deprecated (Development Status 7 – Inactive), with the new version being a desktop application.
The LLM identified 6 files worth highlighting for reuse:
Provides an async httpx transport (`SSRFSafeTransport`) that blocks requests to private, loopback, and cloud metadata IPs, including redirect re-validation. This is a self-contained, defensively coded module that can be extracted into any Python project making outbound HTTP calls to prevent server-side request forgery.
A complete feature flag framework with a YAML-based registry, environment variable overrides, and an OpenFeature-compatible provider. The `FeatureRegistry` loads flags from a YAML file, the `FeatureChecker` evaluates them, and the registry supports two-tier enablement. This is reusable in any Python application needing runtime feature gating without external services.
Implements the transactional outbox pattern for reliable event publishing. Includes an `OutboxEvent` entity with partitioning, an `OutboxEventRepository` for insertion and polling, and a `Poller` that processes pending events with deduplication and cleanup. This is a clean, abstract implementation that can be reused in any relational-database-backed system requiring at-least-once event delivery.
Provides an abstract `ObjectStorageClient` interface with concrete implementations for S3, GCS, Azure Blob, and local filesystem. The factory (`create_storage_client`) handles configuration-based initialization, and each client translates provider-specific exceptions into a unified hierarchy. This is a reusable storage abstraction layer suitable for any application needing pluggable blob storage.
Renders Liquid-style templates with support for JSON/CSV/YAML data sources, JSONPath-based variable extraction, row limiting, and error handling for invalid expressions. This is a self-contained utility for dynamic content generation that can be extracted into any Python project requiring secure, data-driven template processing.
A TypeScript implementation of a semaphore for limiting concurrent asynchronous operations, e.g., API calls or file uploads. Provides `acquire`, `release`, and `runExclusive` methods with proper promise resolution ordering. This is a clean, dependency-free utility that can be reused in any frontend or Node.js project needing concurrency throttling.