10xscale-agentflow-cli 0.1.7__tar.gz → 0.1.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 10xscale_agentflow_cli-0.1.8/10xscale_agentflow_cli.egg-info/PKG-INFO +468 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/10xscale_agentflow_cli.egg-info/SOURCES.txt +2 -0
- 10xscale_agentflow_cli-0.1.8/10xscale_agentflow_cli.egg-info/requires.txt +27 -0
- 10xscale_agentflow_cli-0.1.8/PKG-INFO +468 -0
- 10xscale_agentflow_cli-0.1.8/README.md +422 -0
- 10xscale_agentflow_cli-0.1.8/agentflow.json +6 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/__init__.py +4 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/core/config.py +12 -24
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/core/validation.py +5 -12
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/templates/defaults.py +18 -24
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/config/graph_config.py +10 -23
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/config/sentry_config.py +18 -8
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/config/settings.py +7 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/config/setup_middleware.py +4 -0
- 10xscale_agentflow_cli-0.1.8/agentflow_cli/src/app/core/exceptions/handle_errors.py +223 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/loader.py +36 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/main.py +8 -2
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/checkpointer/services/checkpointer_service.py +5 -10
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/graph/router.py +98 -8
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/graph/schemas/graph_schemas.py +46 -15
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/graph/services/graph_service.py +168 -59
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/ping/router.py +1 -1
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/store/router.py +17 -49
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/store/schemas/store_schemas.py +12 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/utils/__init__.py +3 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/utils/parse_output.py +4 -4
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/utils/snowflake_id_generator.py +1 -10
- 10xscale_agentflow_cli-0.1.8/agentflow_cli/src/app/utils/thread_name_generator.py +304 -0
- 10xscale_agentflow_cli-0.1.8/graph/__init__.py +0 -0
- 10xscale_agentflow_cli-0.1.8/graph/react.py +286 -0
- 10xscale_agentflow_cli-0.1.8/graph/thread_name_generator.py +6 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/pyproject.toml +12 -15
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/tests/test_utils_parse_and_callable.py +6 -8
- 10xscale_agentflow_cli-0.1.7/10xscale_agentflow_cli.egg-info/PKG-INFO +0 -458
- 10xscale_agentflow_cli-0.1.7/10xscale_agentflow_cli.egg-info/requires.txt +0 -27
- 10xscale_agentflow_cli-0.1.7/PKG-INFO +0 -458
- 10xscale_agentflow_cli-0.1.7/README.md +0 -409
- 10xscale_agentflow_cli-0.1.7/agentflow.json +0 -10
- 10xscale_agentflow_cli-0.1.7/agentflow_cli/src/app/core/exceptions/handle_errors.py +0 -96
- 10xscale_agentflow_cli-0.1.7/graph/__init__.py +0 -4
- 10xscale_agentflow_cli-0.1.7/graph/react.py +0 -134
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/10xscale_agentflow_cli.egg-info/dependency_links.txt +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/10xscale_agentflow_cli.egg-info/entry_points.txt +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/10xscale_agentflow_cli.egg-info/not-zip-safe +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/10xscale_agentflow_cli.egg-info/top_level.txt +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/MANIFEST.in +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/Task.md +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/commands/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/commands/api.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/commands/build.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/commands/init.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/commands/version.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/constants.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/core/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/core/output.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/exceptions.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/logger.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/main.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/cli/templates/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/auth/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/auth/auth_backend.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/auth/base_auth.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/auth/jwt_auth.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/config/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/config/setup_logs.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/config/worker_middleware.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/exceptions/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/exceptions/general_exception.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/exceptions/resources_exceptions.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/core/exceptions/user_exception.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/checkpointer/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/checkpointer/router.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/checkpointer/schemas/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/checkpointer/schemas/checkpointer_schemas.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/checkpointer/services/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/graph/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/graph/schemas/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/graph/services/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/ping/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/setup_router.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/store/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/store/schemas/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/store/services/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/routers/store/services/store_service.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/tasks/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/tasks/user_tasks.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/utils/callable_helper.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/utils/response_helper.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/utils/schemas/__init__.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/utils/schemas/output_schemas.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/utils/schemas/user_schemas.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/utils/swagger_helper.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/agentflow_cli/src/app/worker.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/scripts/generate_docs.py +0 -0
- {10xscale_agentflow_cli-0.1.7 → 10xscale_agentflow_cli-0.1.8}/setup.cfg +0 -0
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: 10xscale-agentflow-cli
|
|
3
|
+
Version: 0.1.8
|
|
4
|
+
Summary: CLI and API for 10xscale AgentFlow
|
|
5
|
+
Author-email: 10xscale <contact@10xscale.ai>
|
|
6
|
+
Maintainer-email: Shudipto Trafder <shudiptotrafder@gmail.com>
|
|
7
|
+
License: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/10xHub/agentflow-cli
|
|
9
|
+
Project-URL: Repository, https://github.com/10xHub/agentflow-cli
|
|
10
|
+
Project-URL: Issues, https://github.com/10xHub/agentflow-cli/issues
|
|
11
|
+
Project-URL: Documentation, https://agentflow-cli.readthedocs.io/
|
|
12
|
+
Keywords: 10xscale AgentFlow,api,fastapi,cli,agentflow
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
22
|
+
Requires-Python: >=3.12
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
Requires-Dist: 10xscale-agentflow>=0.4.0
|
|
25
|
+
Requires-Dist: fastapi
|
|
26
|
+
Requires-Dist: gunicorn
|
|
27
|
+
Requires-Dist: orjson
|
|
28
|
+
Requires-Dist: python-multipart
|
|
29
|
+
Requires-Dist: pydantic
|
|
30
|
+
Requires-Dist: pydantic-settings
|
|
31
|
+
Requires-Dist: uvicorn
|
|
32
|
+
Requires-Dist: typer
|
|
33
|
+
Requires-Dist: python-dotenv
|
|
34
|
+
Requires-Dist: PyJWT
|
|
35
|
+
Provides-Extra: sentry
|
|
36
|
+
Requires-Dist: sentry-sdk>=2.10.0; extra == "sentry"
|
|
37
|
+
Provides-Extra: firebase
|
|
38
|
+
Requires-Dist: firebase-admin>=6.5.0; extra == "firebase"
|
|
39
|
+
Requires-Dist: oauth2client>=4.1.3; extra == "firebase"
|
|
40
|
+
Provides-Extra: snowflakekit
|
|
41
|
+
Requires-Dist: snowflakekit; extra == "snowflakekit"
|
|
42
|
+
Provides-Extra: redis
|
|
43
|
+
Requires-Dist: redis>=5.0.7; extra == "redis"
|
|
44
|
+
Provides-Extra: gcloud
|
|
45
|
+
Requires-Dist: google-cloud-logging; extra == "gcloud"
|
|
46
|
+
|
|
47
|
+
# AgentFlow CLI
|
|
48
|
+
|
|
49
|
+
A professional Python API framework for building agent-based applications with FastAPI, state graph orchestration, and comprehensive CLI tools.
|
|
50
|
+
|
|
51
|
+
## 📚 Documentation
|
|
52
|
+
|
|
53
|
+
- **[CLI Guide](./docs/cli-guide.md)** - Complete command-line interface reference
|
|
54
|
+
- **[Configuration Guide](./docs/configuration.md)** - All configuration options explained
|
|
55
|
+
- **[Deployment Guide](./docs/deployment.md)** - Docker, Kubernetes, and cloud deployment
|
|
56
|
+
- **[Authentication Guide](./docs/authentication.md)** - JWT and custom authentication
|
|
57
|
+
- **[ID Generation Guide](./docs/id-generation.md)** - Snowflake ID generation
|
|
58
|
+
- **[Thread Name Generator Guide](./docs/thread-name-generator.md)** - Thread naming strategies
|
|
59
|
+
|
|
60
|
+
## Quick Start
|
|
61
|
+
|
|
62
|
+
### Installation
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pip install 10xscale-agentflow-cli
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Initialize a New Project
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Create project structure
|
|
72
|
+
agentflow init
|
|
73
|
+
|
|
74
|
+
# Or with production config
|
|
75
|
+
agentflow init --prod
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Start Development Server
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
agentflow api
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Generate Docker Files
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
agentflow build --docker-compose
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Key Features
|
|
91
|
+
|
|
92
|
+
- ✅ **CLI Tools** - Professional command-line interface for scaffolding and deployment
|
|
93
|
+
- ✅ **State Graph Orchestration** - Build complex agent workflows with LangGraph
|
|
94
|
+
- ✅ **FastAPI Backend** - High-performance async web framework
|
|
95
|
+
- ✅ **Authentication** - Built-in JWT auth and custom authentication support
|
|
96
|
+
- ✅ **ID Generation** - Distributed Snowflake ID generation
|
|
97
|
+
- ✅ **Thread Management** - Intelligent thread naming and conversation management
|
|
98
|
+
- ✅ **Docker Ready** - Generate production-ready Docker files
|
|
99
|
+
- ✅ **Dependency Injection** - InjectQ for clean dependency management
|
|
100
|
+
- ✅ **Development Tools** - Hot-reload, pre-commit hooks, testing
|
|
101
|
+
|
|
102
|
+
## CLI Commands
|
|
103
|
+
|
|
104
|
+
For detailed command documentation, see the [CLI Guide](./docs/cli-guide.md).
|
|
105
|
+
|
|
106
|
+
### `agentflow init`
|
|
107
|
+
|
|
108
|
+
Initialize a new project with configuration and sample graph.
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# Basic initialization
|
|
112
|
+
agentflow init
|
|
113
|
+
|
|
114
|
+
# With production config (pyproject.toml, pre-commit hooks)
|
|
115
|
+
agentflow init --prod
|
|
116
|
+
|
|
117
|
+
# Custom directory
|
|
118
|
+
agentflow init --path ./my-project
|
|
119
|
+
|
|
120
|
+
# Force overwrite existing files
|
|
121
|
+
agentflow init --force
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### `agentflow api`
|
|
125
|
+
|
|
126
|
+
Start the development API server.
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
# Start with defaults (localhost:8000)
|
|
130
|
+
agentflow api
|
|
131
|
+
|
|
132
|
+
# Custom host and port
|
|
133
|
+
agentflow api --host 127.0.0.1 --port 9000
|
|
134
|
+
|
|
135
|
+
# Custom config file
|
|
136
|
+
agentflow api --config production.json
|
|
137
|
+
|
|
138
|
+
# Disable auto-reload
|
|
139
|
+
agentflow api --no-reload
|
|
140
|
+
|
|
141
|
+
# Verbose logging
|
|
142
|
+
agentflow api --verbose
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### `agentflow build`
|
|
146
|
+
|
|
147
|
+
Generate production Docker files.
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Generate Dockerfile
|
|
151
|
+
agentflow build
|
|
152
|
+
|
|
153
|
+
# Generate Dockerfile and docker-compose.yml
|
|
154
|
+
agentflow build --docker-compose
|
|
155
|
+
|
|
156
|
+
# Custom Python version and port
|
|
157
|
+
agentflow build --python-version 3.12 --port 9000
|
|
158
|
+
|
|
159
|
+
# Force overwrite
|
|
160
|
+
agentflow build --force
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### `agentflow version`
|
|
164
|
+
|
|
165
|
+
Display version information.
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
agentflow version
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Configuration
|
|
172
|
+
|
|
173
|
+
The configuration file (`agentflow.json`) defines your agent, authentication, and infrastructure settings:
|
|
174
|
+
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
"agent": "graph.react:app",
|
|
178
|
+
"env": ".env",
|
|
179
|
+
"auth": null,
|
|
180
|
+
"checkpointer": null,
|
|
181
|
+
"injectq": null,
|
|
182
|
+
"store": null,
|
|
183
|
+
"redis": null,
|
|
184
|
+
"thread_name_generator": null
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Configuration Options
|
|
189
|
+
|
|
190
|
+
| Field | Type | Description |
|
|
191
|
+
|-------|------|-------------|
|
|
192
|
+
| `agent` | string | Path to your compiled agent graph (required) |
|
|
193
|
+
| `env` | string | Path to environment variables file |
|
|
194
|
+
| `auth` | null\|"jwt"\|object | Authentication configuration |
|
|
195
|
+
| `checkpointer` | string\|null | Path to custom checkpointer |
|
|
196
|
+
| `injectq` | string\|null | Path to InjectQ container |
|
|
197
|
+
| `store` | string\|null | Path to data store |
|
|
198
|
+
| `redis` | string\|null | Redis connection URL |
|
|
199
|
+
| `thread_name_generator` | string\|null | Path to custom thread name generator |
|
|
200
|
+
|
|
201
|
+
See the [Configuration Guide](./docs/configuration.md) for complete details.
|
|
202
|
+
|
|
203
|
+
## Authentication
|
|
204
|
+
|
|
205
|
+
AgentFlow supports multiple authentication strategies. See the [Authentication Guide](./docs/authentication.md) for complete details.
|
|
206
|
+
|
|
207
|
+
### No Authentication
|
|
208
|
+
|
|
209
|
+
```json
|
|
210
|
+
{
|
|
211
|
+
"auth": null
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### JWT Authentication
|
|
216
|
+
|
|
217
|
+
**agentflow.json:**
|
|
218
|
+
```json
|
|
219
|
+
{
|
|
220
|
+
"auth": "jwt"
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**.env:**
|
|
225
|
+
```bash
|
|
226
|
+
JWT_SECRET_KEY=your-super-secret-key
|
|
227
|
+
JWT_ALGORITHM=HS256
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Custom Authentication
|
|
231
|
+
|
|
232
|
+
**agentflow.json:**
|
|
233
|
+
```json
|
|
234
|
+
{
|
|
235
|
+
"auth": {
|
|
236
|
+
"method": "custom",
|
|
237
|
+
"path": "auth.custom:MyAuthBackend"
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
**auth/custom.py:**
|
|
243
|
+
```python
|
|
244
|
+
from agentflow_cli import BaseAuth
|
|
245
|
+
from fastapi import Response, HTTPException
|
|
246
|
+
from fastapi.security import HTTPAuthorizationCredentials
|
|
247
|
+
|
|
248
|
+
class MyAuthBackend(BaseAuth):
|
|
249
|
+
def authenticate(
|
|
250
|
+
self,
|
|
251
|
+
res: Response,
|
|
252
|
+
credential: HTTPAuthorizationCredentials
|
|
253
|
+
) -> dict[str, any] | None:
|
|
254
|
+
# Your authentication logic
|
|
255
|
+
token = credential.credentials
|
|
256
|
+
user = verify_token(token)
|
|
257
|
+
|
|
258
|
+
if not user:
|
|
259
|
+
raise HTTPException(401, "Invalid token")
|
|
260
|
+
|
|
261
|
+
return {
|
|
262
|
+
"user_id": user.id,
|
|
263
|
+
"username": user.username,
|
|
264
|
+
"email": user.email
|
|
265
|
+
}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## ID Generation
|
|
269
|
+
|
|
270
|
+
AgentFlow includes Snowflake ID generation for distributed, time-sortable unique IDs.
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
pip install "10xscale-agentflow-cli[snowflakekit]"
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
**Usage:**
|
|
277
|
+
```python
|
|
278
|
+
from agentflow_cli import SnowFlakeIdGenerator
|
|
279
|
+
|
|
280
|
+
# Initialize
|
|
281
|
+
generator = SnowFlakeIdGenerator(
|
|
282
|
+
snowflake_epoch=1704067200000, # Jan 1, 2024
|
|
283
|
+
snowflake_node_id=1,
|
|
284
|
+
snowflake_worker_id=1
|
|
285
|
+
)
|
|
286
|
+
|
|
287
|
+
# Generate ID
|
|
288
|
+
id = await generator.generate()
|
|
289
|
+
print(f"Generated ID: {id}")
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
**Environment Configuration:**
|
|
293
|
+
```bash
|
|
294
|
+
SNOWFLAKE_EPOCH=1704067200000
|
|
295
|
+
SNOWFLAKE_NODE_ID=1
|
|
296
|
+
SNOWFLAKE_WORKER_ID=1
|
|
297
|
+
SNOWFLAKE_TIME_BITS=39
|
|
298
|
+
SNOWFLAKE_NODE_BITS=5
|
|
299
|
+
SNOWFLAKE_WORKER_BITS=8
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
See the [ID Generation Guide](./docs/id-generation.md) for more details.
|
|
303
|
+
|
|
304
|
+
## Thread Name Generation
|
|
305
|
+
|
|
306
|
+
Generate human-friendly names for conversation threads.
|
|
307
|
+
|
|
308
|
+
```python
|
|
309
|
+
from agentflow_cli.src.app.utils.thread_name_generator import AIThreadNameGenerator
|
|
310
|
+
|
|
311
|
+
generator = AIThreadNameGenerator()
|
|
312
|
+
name = generator.generate_name()
|
|
313
|
+
# Output: "thoughtful-dialogue", "exploring-ideas", etc.
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
See the [Thread Name Generator Guide](./docs/thread-name-generator.md) for custom implementations.
|
|
317
|
+
## Deployment
|
|
318
|
+
|
|
319
|
+
See the [Deployment Guide](./docs/deployment.md) for complete deployment instructions.
|
|
320
|
+
|
|
321
|
+
### Docker Deployment
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
# Generate Docker files
|
|
325
|
+
agentflow build --docker-compose
|
|
326
|
+
|
|
327
|
+
# Build and run
|
|
328
|
+
docker compose up --build -d
|
|
329
|
+
|
|
330
|
+
# Check logs
|
|
331
|
+
docker compose logs -f
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### Kubernetes
|
|
335
|
+
|
|
336
|
+
See [Deployment Guide - Kubernetes](./docs/deployment.md#kubernetes) for complete manifests.
|
|
337
|
+
|
|
338
|
+
### Cloud Platforms
|
|
339
|
+
|
|
340
|
+
- [AWS ECS](./docs/deployment.md#aws-ecs)
|
|
341
|
+
- [Google Cloud Run](./docs/deployment.md#google-cloud-run)
|
|
342
|
+
- [Azure Container Instances](./docs/deployment.md#azure-container-instances)
|
|
343
|
+
- [Heroku](./docs/deployment.md#heroku)
|
|
344
|
+
|
|
345
|
+
## Project Structure
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
agentflow-cli/
|
|
349
|
+
├── agentflow_cli/ # Main package
|
|
350
|
+
│ ├── __init__.py # Package exports
|
|
351
|
+
│ ├── cli/ # CLI commands
|
|
352
|
+
│ │ ├── main.py # CLI entry point
|
|
353
|
+
│ │ └── commands/ # Command implementations
|
|
354
|
+
│ └── src/ # Application source
|
|
355
|
+
│ └── app/ # FastAPI application
|
|
356
|
+
│ ├── main.py # App entry point
|
|
357
|
+
│ ├── core/ # Core functionality
|
|
358
|
+
│ ├── routers/ # API routes
|
|
359
|
+
│ └── utils/ # Utilities
|
|
360
|
+
├── graph/ # Agent graphs
|
|
361
|
+
│ ├── __init__.py
|
|
362
|
+
│ └── react.py # Sample React agent
|
|
363
|
+
├── docs/ # Documentation
|
|
364
|
+
├── tests/ # Test suite
|
|
365
|
+
├── agentflow.json # Configuration
|
|
366
|
+
├── pyproject.toml # Project metadata
|
|
367
|
+
└── README.md # This file
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
## Development
|
|
371
|
+
|
|
372
|
+
### Setup
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
# Clone repository
|
|
376
|
+
git clone https://github.com/10xHub/agentflow-cli.git
|
|
377
|
+
cd agentflow-cli
|
|
378
|
+
|
|
379
|
+
# Create virtual environment
|
|
380
|
+
python -m venv .venv
|
|
381
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
382
|
+
|
|
383
|
+
# Install in development mode
|
|
384
|
+
pip install -e ".[dev]"
|
|
385
|
+
|
|
386
|
+
# Install pre-commit hooks
|
|
387
|
+
pre-commit install
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### Testing
|
|
391
|
+
|
|
392
|
+
```bash
|
|
393
|
+
# Run all tests
|
|
394
|
+
pytest
|
|
395
|
+
|
|
396
|
+
# With coverage
|
|
397
|
+
pytest --cov=agentflow_cli --cov-report=html
|
|
398
|
+
|
|
399
|
+
# Run specific test file
|
|
400
|
+
pytest tests/test_cli.py -v
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
### Code Quality
|
|
404
|
+
|
|
405
|
+
```bash
|
|
406
|
+
# Format code
|
|
407
|
+
ruff format .
|
|
408
|
+
|
|
409
|
+
# Lint code
|
|
410
|
+
ruff check .
|
|
411
|
+
|
|
412
|
+
# Fix auto-fixable issues
|
|
413
|
+
ruff check --fix .
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
### Using the Makefile
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
# Show available commands
|
|
420
|
+
make help
|
|
421
|
+
|
|
422
|
+
# Install development dependencies
|
|
423
|
+
make dev-install
|
|
424
|
+
|
|
425
|
+
# Run tests
|
|
426
|
+
make test
|
|
427
|
+
|
|
428
|
+
# Format and lint
|
|
429
|
+
make format
|
|
430
|
+
make lint
|
|
431
|
+
|
|
432
|
+
# Build package
|
|
433
|
+
make build
|
|
434
|
+
|
|
435
|
+
# Clean build artifacts
|
|
436
|
+
make clean
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
## Contributing
|
|
440
|
+
|
|
441
|
+
Contributions are welcome! Please follow these steps:
|
|
442
|
+
|
|
443
|
+
1. Fork the repository
|
|
444
|
+
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
|
445
|
+
3. Make your changes
|
|
446
|
+
4. Run tests and linting
|
|
447
|
+
5. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
448
|
+
6. Push to the branch (`git push origin feature/amazing-feature`)
|
|
449
|
+
7. Open a Pull Request
|
|
450
|
+
|
|
451
|
+
## License
|
|
452
|
+
|
|
453
|
+
MIT License - see LICENSE file for details.
|
|
454
|
+
|
|
455
|
+
## Support
|
|
456
|
+
|
|
457
|
+
- **Documentation:** [Complete Documentation](./docs/)
|
|
458
|
+
- **Issues:** [GitHub Issues](https://github.com/10xHub/agentflow-cli/issues)
|
|
459
|
+
- **Repository:** [GitHub](https://github.com/10xHub/agentflow-cli)
|
|
460
|
+
|
|
461
|
+
## Credits
|
|
462
|
+
|
|
463
|
+
Developed by [10xScale](https://10xscale.ai) and maintained by the community.
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
**Made with ❤️ for the AI agent development community**
|
|
468
|
+
|
|
@@ -79,10 +79,12 @@ agentflow_cli/src/app/utils/parse_output.py
|
|
|
79
79
|
agentflow_cli/src/app/utils/response_helper.py
|
|
80
80
|
agentflow_cli/src/app/utils/snowflake_id_generator.py
|
|
81
81
|
agentflow_cli/src/app/utils/swagger_helper.py
|
|
82
|
+
agentflow_cli/src/app/utils/thread_name_generator.py
|
|
82
83
|
agentflow_cli/src/app/utils/schemas/__init__.py
|
|
83
84
|
agentflow_cli/src/app/utils/schemas/output_schemas.py
|
|
84
85
|
agentflow_cli/src/app/utils/schemas/user_schemas.py
|
|
85
86
|
graph/__init__.py
|
|
86
87
|
graph/react.py
|
|
88
|
+
graph/thread_name_generator.py
|
|
87
89
|
scripts/generate_docs.py
|
|
88
90
|
tests/test_utils_parse_and_callable.py
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
10xscale-agentflow>=0.4.0
|
|
2
|
+
fastapi
|
|
3
|
+
gunicorn
|
|
4
|
+
orjson
|
|
5
|
+
python-multipart
|
|
6
|
+
pydantic
|
|
7
|
+
pydantic-settings
|
|
8
|
+
uvicorn
|
|
9
|
+
typer
|
|
10
|
+
python-dotenv
|
|
11
|
+
PyJWT
|
|
12
|
+
|
|
13
|
+
[firebase]
|
|
14
|
+
firebase-admin>=6.5.0
|
|
15
|
+
oauth2client>=4.1.3
|
|
16
|
+
|
|
17
|
+
[gcloud]
|
|
18
|
+
google-cloud-logging
|
|
19
|
+
|
|
20
|
+
[redis]
|
|
21
|
+
redis>=5.0.7
|
|
22
|
+
|
|
23
|
+
[sentry]
|
|
24
|
+
sentry-sdk>=2.10.0
|
|
25
|
+
|
|
26
|
+
[snowflakekit]
|
|
27
|
+
snowflakekit
|