10xscale-agentflow-cli 0.3.2.8__tar.gz → 0.4.0__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.4.0/10xscale_agentflow_cli.egg-info/PKG-INFO +497 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/10xscale_agentflow_cli.egg-info/SOURCES.txt +8 -9
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/10xscale_agentflow_cli.egg-info/requires.txt +7 -1
- 10xscale_agentflow_cli-0.4.0/CLAUDE.md +151 -0
- 10xscale_agentflow_cli-0.4.0/LICENSE +21 -0
- 10xscale_agentflow_cli-0.4.0/PKG-INFO +497 -0
- 10xscale_agentflow_cli-0.4.0/README.md +440 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/__init__.py +5 -2
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/__init__.py +6 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/commands/__init__.py +2 -2
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/commands/api.py +1 -1
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/commands/eval.py +188 -20
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/commands/init.py +5 -2
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/commands/skills.py +43 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/commands/version.py +1 -1
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/constants.py +25 -2
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/core/config.py +1 -1
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/exceptions.py +9 -9
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/logger.py +1 -1
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/main.py +8 -8
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/defaults.py +5 -5
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/dev/graph/agent.py +63 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/prod/graph/agent.py +50 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/skills/agent-skills/references/agents-and-tools.md +355 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/skills/agent-skills/references/architecture.md +91 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/callbacks-and-command.md +17 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/cli-commands.md +1 -1
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/skills/agent-skills/references/prebuilt-agents-and-tools.md +394 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/publishers-and-runtime-protocols.md +7 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/skills/agent-skills/references/realtime.md +172 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/rest-api-and-errors.md +5 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/security-and-validators.md +18 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/skills/agent-skills/references/state-graph.md +232 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/skills/claude/SKILL.md +83 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/skills/codex/SKILL.md +83 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/skills/copilot/SKILL.md +83 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/skills/copilot/agentflow.instructions.md +108 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/src/app/core/auth/permissions.py +254 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/config/graph_config.py +44 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/config/settings.py +8 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/config/setup_logs.py +7 -25
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/config/setup_middleware.py +100 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/src/app/core/middleware/rate_limit/keying.py +24 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/middleware/rate_limit/middleware.py +2 -10
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/middleware/request_limits.py +3 -3
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/utils/log_sanitizer.py +10 -5
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/src/app/routers/graph/realtime_guard.py +91 -0
- 10xscale_agentflow_cli-0.4.0/agentflow_cli/src/app/routers/graph/router.py +553 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/graph/schemas/graph_schemas.py +96 -2
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/graph/services/graph_service.py +57 -1
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/setup_router.py +1 -1
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/media/__init__.py +2 -2
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/media/extractor.py +1 -1
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/pyproject.toml +10 -3
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/tests/test_multimodal_sprint2_extraction.py +1 -1
- 10xscale_agentflow_cli-0.3.2.8/10xscale_agentflow_cli.egg-info/PKG-INFO +0 -614
- 10xscale_agentflow_cli-0.3.2.8/PKG-INFO +0 -614
- 10xscale_agentflow_cli-0.3.2.8/README.md +0 -564
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/__init__.py +0 -3
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/dev/graph/agent.py +0 -132
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/prod/graph/agent.py +0 -45
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/prod/graph/nodes/__init__.py +0 -5
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/prod/graph/nodes/main_node.py +0 -27
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/prod/graph/nodes/tool_node.py +0 -10
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/prod/graph/utils/tool_decision.py +0 -30
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/skills/agent-skills/SKILL.md +0 -108
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/skills/agent-skills/references/agents-and-tools.md +0 -65
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/skills/agent-skills/references/architecture.md +0 -53
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/skills/agent-skills/references/prebuilt-agents-and-tools.md +0 -59
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/skills/agent-skills/references/state-graph.md +0 -67
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/skills/copilot/agentflow.instructions.md +0 -54
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/src/app/core/auth/permissions.py +0 -157
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/src/app/routers/graph/router.py +0 -269
- 10xscale_agentflow_cli-0.3.2.8/agentflow_cli/src/app/tasks/__init__.py +0 -0
- 10xscale_agentflow_cli-0.3.2.8/graph/__init__.py +0 -0
- 10xscale_agentflow_cli-0.3.2.8/graph/react.py +0 -95
- 10xscale_agentflow_cli-0.3.2.8/requirements.txt +0 -29
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/10xscale_agentflow_cli.egg-info/dependency_links.txt +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/10xscale_agentflow_cli.egg-info/entry_points.txt +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/10xscale_agentflow_cli.egg-info/not-zip-safe +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/10xscale_agentflow_cli.egg-info/top_level.txt +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/MANIFEST.in +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow.json +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/commands/build.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/commands/test.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/core/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/core/output.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/core/validation.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/dev/agentflow.json +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/dev/graph/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/.pre-commot-config.yaml +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/agentflow.json +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/auth/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/auth/agent_auth.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/evals/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/evals/user_simulator_eval.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/evals/weather_agents_eval.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/graph/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/graph/state.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/graph/thread_name_generator.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/graph/tools/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/graph/tools/weather_tool.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/prod/graph/utils → 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/prod/graph/validators}/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/graph/validators/lifecyle.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/graph/validators/manager.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/graph/validators/validators.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/prod/graph/validators → 10xscale_agentflow_cli-0.4.0/agentflow_cli/cli/templates/prod/tests}/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/tests/conftest.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/tests/test_agent_eval.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/tests/test_catalog_tools.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/prod/tests/test_graph_nodes.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/api-client.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/api-configuration.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/api-settings-and-middleware.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/auth-and-authorization.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/checkpointing-and-threads.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/client-auth-and-errors.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/client-messages-invoke-stream.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/client-threads-memory-files.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/context-id-background.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/dependency-injection.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/evaluation.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/id-and-thread-name-generators.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/media-and-files.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/memory-and-store.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/production-runtime.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/providers-and-adapters.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/rate-limiting.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/remote-tools.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/state-and-messages.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/stream-emitter.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/streaming.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/testing-and-evaluation.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/cli/templates/skills/agent-skills/references/unit-testing.md +0 -0
- {10xscale_agentflow_cli-0.3.2.8/agentflow_cli/cli/templates/prod/tests → 10xscale_agentflow_cli-0.4.0/agentflow_cli/src}/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8/agentflow_cli/src → 10xscale_agentflow_cli-0.4.0/agentflow_cli/src/app/core/auth}/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/auth/auth_backend.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/auth/authorization.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/auth/base_auth.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/auth/jwt_auth.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8/agentflow_cli/src/app/core/auth → 10xscale_agentflow_cli-0.4.0/agentflow_cli/src/app/core/config}/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/config/media_settings.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/config/sentry_config.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/config/worker_middleware.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/exceptions/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/exceptions/general_exception.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/exceptions/handle_errors.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/exceptions/resources_exceptions.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/exceptions/user_exception.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/middleware/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/middleware/rate_limit/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/middleware/rate_limit/base.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/middleware/rate_limit/factory.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/middleware/rate_limit/memory.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/middleware/rate_limit/redis.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/middleware/security_headers.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/core/utils/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/loader.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/main.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/a2a.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/a2ui.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/checkpointer/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/checkpointer/router.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/checkpointer/schemas/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/checkpointer/schemas/checkpointer_schemas.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/checkpointer/services/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/checkpointer/services/checkpointer_service.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/graph/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/graph/schemas/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/graph/services/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/graph/services/multimodal_preprocessor.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/media/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/media/router.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/media/schemas.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/ping/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/ping/router.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/store/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/store/router.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/store/schemas/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/store/schemas/store_schemas.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/store/services/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/routers/store/services/store_service.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8/agentflow_cli/src/app/core/config → 10xscale_agentflow_cli-0.4.0/agentflow_cli/src/app/tasks}/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/tasks/user_tasks.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/callable_helper.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/media/pipeline.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/parse_output.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/response_helper.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/schemas/__init__.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/schemas/output_schemas.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/schemas/user_schemas.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/snowflake_id_generator.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/swagger_helper.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/utils/thread_name_generator.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/agentflow_cli/src/app/worker.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/setup.cfg +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/tests/test_sprint4_media_api.py +0 -0
- {10xscale_agentflow_cli-0.3.2.8 → 10xscale_agentflow_cli-0.4.0}/tests/test_utils_parse_and_callable.py +0 -0
|
@@ -0,0 +1,497 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: 10xscale-agentflow-cli
|
|
3
|
+
Version: 0.4.0
|
|
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
|
+
License-File: LICENSE
|
|
25
|
+
Requires-Dist: 10xscale-agentflow>=0.8.0
|
|
26
|
+
Requires-Dist: fastapi
|
|
27
|
+
Requires-Dist: gunicorn
|
|
28
|
+
Requires-Dist: orjson
|
|
29
|
+
Requires-Dist: python-multipart
|
|
30
|
+
Requires-Dist: pydantic
|
|
31
|
+
Requires-Dist: pydantic-settings
|
|
32
|
+
Requires-Dist: uvicorn
|
|
33
|
+
Requires-Dist: typer
|
|
34
|
+
Requires-Dist: python-dotenv
|
|
35
|
+
Requires-Dist: questionary
|
|
36
|
+
Provides-Extra: sentry
|
|
37
|
+
Requires-Dist: sentry-sdk>=2.10.0; extra == "sentry"
|
|
38
|
+
Provides-Extra: firebase
|
|
39
|
+
Requires-Dist: firebase-admin>=6.5.0; extra == "firebase"
|
|
40
|
+
Requires-Dist: oauth2client>=4.1.3; extra == "firebase"
|
|
41
|
+
Provides-Extra: snowflakekit
|
|
42
|
+
Requires-Dist: snowflakekit; extra == "snowflakekit"
|
|
43
|
+
Provides-Extra: redis
|
|
44
|
+
Requires-Dist: redis>=5.0.7; extra == "redis"
|
|
45
|
+
Provides-Extra: jwt
|
|
46
|
+
Requires-Dist: PyJWT; extra == "jwt"
|
|
47
|
+
Provides-Extra: media
|
|
48
|
+
Requires-Dist: textxtract[docx,html,md,pdf,xml]>=0.2.0; extra == "media"
|
|
49
|
+
Provides-Extra: gcloud
|
|
50
|
+
Requires-Dist: google-cloud-logging; extra == "gcloud"
|
|
51
|
+
Provides-Extra: otel
|
|
52
|
+
Requires-Dist: opentelemetry-api>=1.20.0; extra == "otel"
|
|
53
|
+
Requires-Dist: opentelemetry-sdk>=1.20.0; extra == "otel"
|
|
54
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.40b0; extra == "otel"
|
|
55
|
+
Requires-Dist: opentelemetry-exporter-otlp>=1.20.0; extra == "otel"
|
|
56
|
+
Dynamic: license-file
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
# 10xScale Agentflow CLI
|
|
60
|
+
|
|
61
|
+
[](https://github.com/10xHub/agentflow-cli/actions/workflows/ci.yaml)
|
|
62
|
+
[](https://github.com/10xHub/agentflow-cli/actions/workflows/release.yml)
|
|
63
|
+
|
|
64
|
+
[](https://pypi.org/project/10xscale-agentflow-cli/)
|
|
65
|
+
[](https://pypi.org/project/10xscale-agentflow-cli/)
|
|
66
|
+
[](https://github.com/10xHub/agentflow-cli/blob/main/LICENSE)
|
|
67
|
+
[](https://github.com/10xHub/agentflow-cli/actions/workflows/ci.yaml)
|
|
68
|
+
[](https://github.com/10xHub/agentflow-cli/actions/workflows/ci.yaml)
|
|
69
|
+
[](https://pypi.org/project/10xscale-agentflow-cli/)
|
|
70
|
+
[](https://github.com/astral-sh/ruff)
|
|
71
|
+
|
|
72
|
+
**10xScale Agentflow CLI** turns an Agentflow `CompiledGraph` into a production-grade FastAPI service, plus a Typer-based command line to scaffold, run, build, test, and evaluate it. You write a graph, point `agentflow.json` at it, and `agentflow api` serves it over REST + WebSocket with authentication, rate limiting, media handling, checkpointer/thread management, and a memory store API.
|
|
73
|
+
|
|
74
|
+
> ### 📦 Part of the 10xScale Agentflow library
|
|
75
|
+
>
|
|
76
|
+
> This package (`10xscale-agentflow-cli`) is the **API server + CLI layer** of the larger
|
|
77
|
+
> [**10xScale Agentflow**](https://github.com/10xHub/agentflow) framework. The core orchestration
|
|
78
|
+
> engine — `StateGraph`, `Agent`, `ToolNode`, state, persistence, memory, and tools — lives in the
|
|
79
|
+
> separate [`10xscale-agentflow`](https://pypi.org/project/10xscale-agentflow/) package. This CLI
|
|
80
|
+
> builds on top of it to expose your agent graphs as a deployable service.
|
|
81
|
+
>
|
|
82
|
+
> - **Core framework:** [`10xscale-agentflow`](https://pypi.org/project/10xscale-agentflow/) · [source](https://github.com/10xHub/agentflow)
|
|
83
|
+
> - **This package (API + CLI):** [`10xscale-agentflow-cli`](https://pypi.org/project/10xscale-agentflow-cli/)
|
|
84
|
+
> - **TypeScript client:** [`@10xscale/agentflow-client`](https://www.npmjs.com/package/@10xscale/agentflow-client)
|
|
85
|
+
> - **Docs:** [agentflow.10xscale.ai](https://agentflow.10xscale.ai/)
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## ✨ Key Features
|
|
90
|
+
|
|
91
|
+
- **🖥️ Professional CLI** - Scaffold, run, build, test, and evaluate agents from one command line
|
|
92
|
+
- **⚡ FastAPI Backend** - Your compiled graph auto-served over REST + WebSocket, high-performance and async
|
|
93
|
+
- **🔌 Config-Driven** - One `agentflow.json` wires agent, auth, checkpointer, store, Redis, and rate limits
|
|
94
|
+
- **🔐 Authentication** - Built-in JWT auth, custom `BaseAuth` backends, and RBAC authorization
|
|
95
|
+
- **🚦 Rate Limiting** - Sliding-window limits with memory, Redis, or custom backends
|
|
96
|
+
- **🆔 Distributed IDs** - Snowflake ID generation for multi-node deployments
|
|
97
|
+
- **🧵 Thread Management** - Conversation thread naming, listing, state, and message APIs
|
|
98
|
+
- **🖼️ Multimodal & Media** - File upload/download endpoints and media handling for multimodal agents
|
|
99
|
+
- **🎙️ Realtime Audio Bridge** - WebSocket endpoint for live audio-to-audio agents (Gemini Live)
|
|
100
|
+
- **🐳 Docker & Kubernetes Ready** - Generate production Dockerfiles and compose files with one command
|
|
101
|
+
- **🛡️ Production Hardening** - Error/log sanitization, request size limits, security headers, startup validation
|
|
102
|
+
- **💉 Dependency Injection** - InjectQ for clean, testable dependency wiring
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Installation
|
|
107
|
+
|
|
108
|
+
**Basic installation:**
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
pip install 10xscale-agentflow-cli
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Optional extras — install only what you configure:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
pip install "10xscale-agentflow-cli[redis]" # Redis rate-limit / cache backend
|
|
118
|
+
pip install "10xscale-agentflow-cli[jwt]" # JWT authentication
|
|
119
|
+
pip install "10xscale-agentflow-cli[media]" # Document text extraction (multimodal)
|
|
120
|
+
pip install "10xscale-agentflow-cli[otel]" # OpenTelemetry tracing
|
|
121
|
+
pip install "10xscale-agentflow-cli[snowflakekit]" # Snowflake ID generation
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Requires **Python ≥ 3.12**. Depends on the core `10xscale-agentflow` framework.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 🚀 Quick Start
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# 1. Scaffold a project (interactive: dev vs production, auth, rate limiting)
|
|
132
|
+
agentflow init
|
|
133
|
+
|
|
134
|
+
# 2. Start the dev API server (127.0.0.1:8000)
|
|
135
|
+
agentflow api
|
|
136
|
+
|
|
137
|
+
# 3. Or start the server and open the hosted playground
|
|
138
|
+
agentflow play
|
|
139
|
+
|
|
140
|
+
# 4. Generate production Docker files
|
|
141
|
+
agentflow build --docker-compose
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 🖥️ CLI Commands
|
|
147
|
+
|
|
148
|
+
For detailed command documentation, see the **[CLI Guide](./docs/cli-guide.md)**.
|
|
149
|
+
|
|
150
|
+
### `agentflow init`
|
|
151
|
+
|
|
152
|
+
Initialize a new project with configuration and a sample graph.
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
agentflow init # interactive (chooses dev vs production setup)
|
|
156
|
+
agentflow init --path ./my-app # custom directory
|
|
157
|
+
agentflow init --force # overwrite existing files
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### `agentflow api`
|
|
161
|
+
|
|
162
|
+
Start the development API server.
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
agentflow api # defaults (127.0.0.1:8000)
|
|
166
|
+
agentflow api --host 127.0.0.1 --port 9000 # custom host/port
|
|
167
|
+
agentflow api --config production.json # custom config file
|
|
168
|
+
agentflow api --no-reload # disable auto-reload
|
|
169
|
+
agentflow api --verbose # verbose logging
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### `agentflow play`
|
|
173
|
+
|
|
174
|
+
Start the dev server and open the hosted playground with your local backend URL preconfigured.
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
agentflow play
|
|
178
|
+
agentflow play --host 127.0.0.1 --port 9000
|
|
179
|
+
agentflow play --config production.json
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### `agentflow build`
|
|
183
|
+
|
|
184
|
+
Generate production Docker files.
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
agentflow build # Dockerfile
|
|
188
|
+
agentflow build --docker-compose # Dockerfile + docker-compose.yml
|
|
189
|
+
agentflow build --python-version 3.12 --port 9000
|
|
190
|
+
agentflow build --force
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### `agentflow eval` / `agentflow test`
|
|
194
|
+
|
|
195
|
+
Run agent evaluations (discovers `*_eval.py` / `eval_*.py`, writes HTML + JSON to `eval_reports/`) and project tests (pytest).
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
agentflow eval --parallel --threshold 0.8
|
|
199
|
+
agentflow test --coverage
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### `agentflow skills`
|
|
203
|
+
|
|
204
|
+
Install bundled coding-agent skills (Codex, Claude, GitHub Copilot) into your project so your AI assistant knows how to build with Agentflow.
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
agentflow skills --all # install for every supported agent
|
|
208
|
+
agentflow skills --agent claude # install for one
|
|
209
|
+
agentflow skills --list # show supported agents
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### `agentflow version`
|
|
213
|
+
|
|
214
|
+
Display CLI and package version information.
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
agentflow version
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## ⚙️ Configuration
|
|
223
|
+
|
|
224
|
+
The configuration file (`agentflow.json`) defines your agent, authentication, and infrastructure settings:
|
|
225
|
+
|
|
226
|
+
```json
|
|
227
|
+
{
|
|
228
|
+
"agent": "graph.react:app",
|
|
229
|
+
"env": ".env",
|
|
230
|
+
"auth": null,
|
|
231
|
+
"checkpointer": null,
|
|
232
|
+
"injectq": null,
|
|
233
|
+
"store": null,
|
|
234
|
+
"redis": null,
|
|
235
|
+
"thread_name_generator": null,
|
|
236
|
+
"rate_limit": {}
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Configuration Options
|
|
241
|
+
|
|
242
|
+
| Field | Type | Description |
|
|
243
|
+
|-------|------|-------------|
|
|
244
|
+
| `agent` | string | Path to your compiled agent graph, `"module:attribute"` (required) |
|
|
245
|
+
| `env` | string | Path to environment variables file |
|
|
246
|
+
| `auth` | null \| "jwt" \| object | Authentication configuration |
|
|
247
|
+
| `authorization` | string \| null | Path to an `AuthorizationBackend` (RBAC / per-tool access) |
|
|
248
|
+
| `checkpointer` | string \| null | Path to a custom checkpointer |
|
|
249
|
+
| `injectq` | string \| null | Path to an InjectQ container |
|
|
250
|
+
| `store` | string \| null | Path to a data store |
|
|
251
|
+
| `redis` | string \| null | Redis connection URL |
|
|
252
|
+
| `rate_limit` | object \| null | Sliding-window rate limiting configuration |
|
|
253
|
+
| `thread_name_generator` | string \| null | Path to a custom thread name generator |
|
|
254
|
+
|
|
255
|
+
See the **[Configuration Guide](./docs/configuration.md)** for complete details.
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 🔐 Authentication
|
|
260
|
+
|
|
261
|
+
Agentflow supports multiple authentication strategies. See the **[Authentication Guide](./docs/authentication.md)** for details.
|
|
262
|
+
|
|
263
|
+
### JWT Authentication
|
|
264
|
+
|
|
265
|
+
**agentflow.json:**
|
|
266
|
+
```json
|
|
267
|
+
{ "auth": "jwt" }
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
**.env:**
|
|
271
|
+
```bash
|
|
272
|
+
JWT_SECRET_KEY=your-super-secret-key
|
|
273
|
+
JWT_ALGORITHM=HS256
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Custom Authentication
|
|
277
|
+
|
|
278
|
+
**agentflow.json:**
|
|
279
|
+
```json
|
|
280
|
+
{ "auth": { "method": "custom", "path": "auth.custom:MyAuthBackend" } }
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**auth/custom.py:**
|
|
284
|
+
```python
|
|
285
|
+
from agentflow_cli import BaseAuth
|
|
286
|
+
from fastapi import Response, HTTPException
|
|
287
|
+
from fastapi.security import HTTPAuthorizationCredentials
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
class MyAuthBackend(BaseAuth):
|
|
291
|
+
def authenticate(
|
|
292
|
+
self,
|
|
293
|
+
res: Response,
|
|
294
|
+
credential: HTTPAuthorizationCredentials,
|
|
295
|
+
) -> dict[str, any] | None:
|
|
296
|
+
token = credential.credentials
|
|
297
|
+
user = verify_token(token)
|
|
298
|
+
if not user:
|
|
299
|
+
raise HTTPException(401, "Invalid token")
|
|
300
|
+
return {"user_id": user.id, "username": user.username, "email": user.email}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## 🆔 ID Generation
|
|
306
|
+
|
|
307
|
+
Agentflow includes Snowflake ID generation for distributed, time-sortable unique IDs.
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
pip install "10xscale-agentflow-cli[snowflakekit]"
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
```python
|
|
314
|
+
from agentflow_cli import SnowFlakeIdGenerator
|
|
315
|
+
|
|
316
|
+
generator = SnowFlakeIdGenerator(
|
|
317
|
+
snowflake_epoch=1704067200000, # Jan 1, 2024
|
|
318
|
+
snowflake_node_id=1,
|
|
319
|
+
snowflake_worker_id=1,
|
|
320
|
+
)
|
|
321
|
+
new_id = await generator.generate()
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
**Environment configuration:**
|
|
325
|
+
```bash
|
|
326
|
+
SNOWFLAKE_EPOCH=1704067200000
|
|
327
|
+
SNOWFLAKE_NODE_ID=1
|
|
328
|
+
SNOWFLAKE_WORKER_ID=1
|
|
329
|
+
SNOWFLAKE_TIME_BITS=39
|
|
330
|
+
SNOWFLAKE_NODE_BITS=5
|
|
331
|
+
SNOWFLAKE_WORKER_BITS=8
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
See the **[ID Generation Guide](./docs/id-generation.md)** for more details.
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## 🧵 Thread Name Generation
|
|
339
|
+
|
|
340
|
+
Generate human-friendly names for conversation threads.
|
|
341
|
+
|
|
342
|
+
```python
|
|
343
|
+
from agentflow_cli.src.app.utils.thread_name_generator import AIThreadNameGenerator
|
|
344
|
+
|
|
345
|
+
generator = AIThreadNameGenerator()
|
|
346
|
+
name = generator.generate_name()
|
|
347
|
+
# "thoughtful-dialogue", "exploring-ideas", ...
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
See the **[Thread Name Generator Guide](./docs/thread-name-generator.md)** for custom implementations.
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## 🛡️ Security
|
|
355
|
+
|
|
356
|
+
Agentflow CLI provides production-grade security features.
|
|
357
|
+
|
|
358
|
+
- ✅ **Authentication** - JWT and custom authentication backends
|
|
359
|
+
- ✅ **Authorization** - Resource-based access control with extensible backends
|
|
360
|
+
- ✅ **Request Limits** - DoS protection with configurable size limits (default 10MB)
|
|
361
|
+
- ✅ **Error Sanitization** - Production-safe error messages preventing information disclosure
|
|
362
|
+
- ✅ **Log Sanitization** - Automatic redaction of sensitive data (tokens, passwords, secrets)
|
|
363
|
+
- ✅ **Security Warnings** - Startup validation for insecure configurations
|
|
364
|
+
- ✅ **HTTPS Ready** - SSL/TLS support with secure headers
|
|
365
|
+
|
|
366
|
+
### Production Security Checklist
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
MODE=production # production mode
|
|
370
|
+
JWT_SECRET_KEY=<32+ chars> # strong secret (secrets.token_urlsafe(32))
|
|
371
|
+
IS_DEBUG=false # disable debug
|
|
372
|
+
ORIGINS=https://yourdomain.com # specific CORS origins (never *)
|
|
373
|
+
ALLOWED_HOST=yourdomain.com # specific allowed hosts (never *)
|
|
374
|
+
DOCS_PATH= # recommended: disable API docs
|
|
375
|
+
REDOCS_PATH=
|
|
376
|
+
MAX_REQUEST_SIZE=10485760 # request size limit (10MB default)
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
For deployment hardening and authentication patterns, see the
|
|
380
|
+
**[Deployment Guide](./docs/deployment.md)** and **[Authentication Guide](./docs/authentication.md)**.
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## 🐳 Deployment
|
|
385
|
+
|
|
386
|
+
See the **[Deployment Guide](./docs/deployment.md)** for full instructions.
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
# Generate Docker files
|
|
390
|
+
agentflow build --docker-compose
|
|
391
|
+
|
|
392
|
+
# Build and run
|
|
393
|
+
docker compose up --build -d
|
|
394
|
+
|
|
395
|
+
# Check logs
|
|
396
|
+
docker compose logs -f
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
Cloud targets covered in the guide: [AWS ECS](./docs/deployment.md#aws-ecs),
|
|
400
|
+
[Google Cloud Run](./docs/deployment.md#google-cloud-run),
|
|
401
|
+
[Azure Container Instances](./docs/deployment.md#azure-container-instances),
|
|
402
|
+
[Kubernetes](./docs/deployment.md#kubernetes), and [Heroku](./docs/deployment.md#heroku).
|
|
403
|
+
|
|
404
|
+
---
|
|
405
|
+
|
|
406
|
+
## 📁 Project Structure
|
|
407
|
+
|
|
408
|
+
```
|
|
409
|
+
agentflow-cli/
|
|
410
|
+
├── agentflow_cli/ # Main package
|
|
411
|
+
│ ├── __init__.py # Package exports (BaseAuth, SnowFlakeIdGenerator, ThreadNameGenerator)
|
|
412
|
+
│ ├── cli/ # Typer CLI: main.py + commands/ + templates/
|
|
413
|
+
│ └── src/app/ # FastAPI application (main.py, loader.py, core/, routers/, utils/)
|
|
414
|
+
├── docs/ # Documentation
|
|
415
|
+
├── tests/ # Test suite
|
|
416
|
+
├── agentflow.json # Configuration
|
|
417
|
+
├── pyproject.toml # Project metadata
|
|
418
|
+
└── README.md # This file
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## 🔧 Development
|
|
424
|
+
|
|
425
|
+
```bash
|
|
426
|
+
# Clone and set up
|
|
427
|
+
git clone https://github.com/10xHub/agentflow-cli.git
|
|
428
|
+
cd agentflow-cli
|
|
429
|
+
python -m venv .venv && source .venv/bin/activate
|
|
430
|
+
pip install -e ".[dev]"
|
|
431
|
+
pre-commit install
|
|
432
|
+
|
|
433
|
+
# Quality gate
|
|
434
|
+
pytest # tests (coverage gate: 80%)
|
|
435
|
+
pytest --cov=agentflow_cli --cov-report=html
|
|
436
|
+
ruff check . && ruff format . # lint + format
|
|
437
|
+
pre-commit run --all-files # full gate (ruff + bandit, pinned versions)
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
### Using the Makefile
|
|
441
|
+
|
|
442
|
+
```bash
|
|
443
|
+
make build # build sdist + wheel
|
|
444
|
+
make test # run tests
|
|
445
|
+
make test-cov # run tests with coverage
|
|
446
|
+
make publish # upload to PyPI (maintainers)
|
|
447
|
+
make clean # remove build artifacts
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
### Releasing
|
|
451
|
+
|
|
452
|
+
Releases are cut by pushing a version tag that matches `pyproject.toml`. The
|
|
453
|
+
[`release.yml`](./.github/workflows/release.yml) workflow then verifies the tag, builds the
|
|
454
|
+
sdist + wheel, checks the distribution metadata, and creates a GitHub Release with auto-generated
|
|
455
|
+
notes and the artifacts attached. PyPI publishing is manual (`make publish`).
|
|
456
|
+
|
|
457
|
+
```bash
|
|
458
|
+
git tag v0.3.2.9 && git push origin v0.3.2.9
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
## 📄 License
|
|
464
|
+
|
|
465
|
+
MIT License - see [LICENSE](https://github.com/10xHub/agentflow-cli/blob/main/LICENSE) for details.
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## 🔗 Links & Resources
|
|
470
|
+
|
|
471
|
+
- **[Documentation](https://agentflow.10xscale.ai/)** - Full framework docs
|
|
472
|
+
- **[Core framework (`10xscale-agentflow`)](https://github.com/10xHub/agentflow)** - The orchestration engine this CLI serves
|
|
473
|
+
- **[This repository](https://github.com/10xHub/agentflow-cli)** - Source code and issues
|
|
474
|
+
- **[PyPI Project](https://pypi.org/project/10xscale-agentflow-cli/)** - Package releases
|
|
475
|
+
- **[Local docs](./docs/)** - CLI, configuration, deployment, auth, rate limiting, IDs, thread names
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
## 🙏 Contributing
|
|
480
|
+
|
|
481
|
+
Contributions are welcome! Fork the repo, create a feature branch, run tests and linting, and open a
|
|
482
|
+
Pull Request. See the [repository](https://github.com/10xHub/agentflow-cli) for issue reporting and
|
|
483
|
+
guidelines.
|
|
484
|
+
|
|
485
|
+
---
|
|
486
|
+
|
|
487
|
+
## 💬 Support
|
|
488
|
+
|
|
489
|
+
- **Documentation:** [agentflow.10xscale.ai](https://agentflow.10xscale.ai/) and [local docs](./docs/)
|
|
490
|
+
- **Issues:** [GitHub Issues](https://github.com/10xHub/agentflow-cli/issues)
|
|
491
|
+
- **Repository:** [GitHub](https://github.com/10xHub/agentflow-cli)
|
|
492
|
+
|
|
493
|
+
---
|
|
494
|
+
|
|
495
|
+
Developed by [10xScale](https://10xscale.ai) and maintained by the community.
|
|
496
|
+
|
|
497
|
+
**Made with ❤️ for the AI agent development community**
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
CLAUDE.md
|
|
2
|
+
LICENSE
|
|
1
3
|
MANIFEST.in
|
|
2
4
|
README.md
|
|
3
5
|
agentflow.json
|
|
4
6
|
pyproject.toml
|
|
5
|
-
requirements.txt
|
|
6
7
|
10xscale_agentflow_cli.egg-info/PKG-INFO
|
|
7
8
|
10xscale_agentflow_cli.egg-info/SOURCES.txt
|
|
8
9
|
10xscale_agentflow_cli.egg-info/dependency_links.txt
|
|
@@ -44,13 +45,8 @@ agentflow_cli/cli/templates/prod/graph/__init__.py
|
|
|
44
45
|
agentflow_cli/cli/templates/prod/graph/agent.py
|
|
45
46
|
agentflow_cli/cli/templates/prod/graph/state.py
|
|
46
47
|
agentflow_cli/cli/templates/prod/graph/thread_name_generator.py
|
|
47
|
-
agentflow_cli/cli/templates/prod/graph/nodes/__init__.py
|
|
48
|
-
agentflow_cli/cli/templates/prod/graph/nodes/main_node.py
|
|
49
|
-
agentflow_cli/cli/templates/prod/graph/nodes/tool_node.py
|
|
50
48
|
agentflow_cli/cli/templates/prod/graph/tools/__init__.py
|
|
51
49
|
agentflow_cli/cli/templates/prod/graph/tools/weather_tool.py
|
|
52
|
-
agentflow_cli/cli/templates/prod/graph/utils/__init__.py
|
|
53
|
-
agentflow_cli/cli/templates/prod/graph/utils/tool_decision.py
|
|
54
50
|
agentflow_cli/cli/templates/prod/graph/validators/__init__.py
|
|
55
51
|
agentflow_cli/cli/templates/prod/graph/validators/lifecyle.py
|
|
56
52
|
agentflow_cli/cli/templates/prod/graph/validators/manager.py
|
|
@@ -60,7 +56,6 @@ agentflow_cli/cli/templates/prod/tests/conftest.py
|
|
|
60
56
|
agentflow_cli/cli/templates/prod/tests/test_agent_eval.py
|
|
61
57
|
agentflow_cli/cli/templates/prod/tests/test_catalog_tools.py
|
|
62
58
|
agentflow_cli/cli/templates/prod/tests/test_graph_nodes.py
|
|
63
|
-
agentflow_cli/cli/templates/skills/agent-skills/SKILL.md
|
|
64
59
|
agentflow_cli/cli/templates/skills/agent-skills/references/agents-and-tools.md
|
|
65
60
|
agentflow_cli/cli/templates/skills/agent-skills/references/api-client.md
|
|
66
61
|
agentflow_cli/cli/templates/skills/agent-skills/references/api-configuration.md
|
|
@@ -84,6 +79,7 @@ agentflow_cli/cli/templates/skills/agent-skills/references/production-runtime.md
|
|
|
84
79
|
agentflow_cli/cli/templates/skills/agent-skills/references/providers-and-adapters.md
|
|
85
80
|
agentflow_cli/cli/templates/skills/agent-skills/references/publishers-and-runtime-protocols.md
|
|
86
81
|
agentflow_cli/cli/templates/skills/agent-skills/references/rate-limiting.md
|
|
82
|
+
agentflow_cli/cli/templates/skills/agent-skills/references/realtime.md
|
|
87
83
|
agentflow_cli/cli/templates/skills/agent-skills/references/remote-tools.md
|
|
88
84
|
agentflow_cli/cli/templates/skills/agent-skills/references/rest-api-and-errors.md
|
|
89
85
|
agentflow_cli/cli/templates/skills/agent-skills/references/security-and-validators.md
|
|
@@ -93,6 +89,9 @@ agentflow_cli/cli/templates/skills/agent-skills/references/stream-emitter.md
|
|
|
93
89
|
agentflow_cli/cli/templates/skills/agent-skills/references/streaming.md
|
|
94
90
|
agentflow_cli/cli/templates/skills/agent-skills/references/testing-and-evaluation.md
|
|
95
91
|
agentflow_cli/cli/templates/skills/agent-skills/references/unit-testing.md
|
|
92
|
+
agentflow_cli/cli/templates/skills/claude/SKILL.md
|
|
93
|
+
agentflow_cli/cli/templates/skills/codex/SKILL.md
|
|
94
|
+
agentflow_cli/cli/templates/skills/copilot/SKILL.md
|
|
96
95
|
agentflow_cli/cli/templates/skills/copilot/agentflow.instructions.md
|
|
97
96
|
agentflow_cli/src/__init__.py
|
|
98
97
|
agentflow_cli/src/app/__init__.py
|
|
@@ -125,6 +124,7 @@ agentflow_cli/src/app/core/middleware/security_headers.py
|
|
|
125
124
|
agentflow_cli/src/app/core/middleware/rate_limit/__init__.py
|
|
126
125
|
agentflow_cli/src/app/core/middleware/rate_limit/base.py
|
|
127
126
|
agentflow_cli/src/app/core/middleware/rate_limit/factory.py
|
|
127
|
+
agentflow_cli/src/app/core/middleware/rate_limit/keying.py
|
|
128
128
|
agentflow_cli/src/app/core/middleware/rate_limit/memory.py
|
|
129
129
|
agentflow_cli/src/app/core/middleware/rate_limit/middleware.py
|
|
130
130
|
agentflow_cli/src/app/core/middleware/rate_limit/redis.py
|
|
@@ -141,6 +141,7 @@ agentflow_cli/src/app/routers/checkpointer/schemas/checkpointer_schemas.py
|
|
|
141
141
|
agentflow_cli/src/app/routers/checkpointer/services/__init__.py
|
|
142
142
|
agentflow_cli/src/app/routers/checkpointer/services/checkpointer_service.py
|
|
143
143
|
agentflow_cli/src/app/routers/graph/__init__.py
|
|
144
|
+
agentflow_cli/src/app/routers/graph/realtime_guard.py
|
|
144
145
|
agentflow_cli/src/app/routers/graph/router.py
|
|
145
146
|
agentflow_cli/src/app/routers/graph/schemas/__init__.py
|
|
146
147
|
agentflow_cli/src/app/routers/graph/schemas/graph_schemas.py
|
|
@@ -173,8 +174,6 @@ agentflow_cli/src/app/utils/media/pipeline.py
|
|
|
173
174
|
agentflow_cli/src/app/utils/schemas/__init__.py
|
|
174
175
|
agentflow_cli/src/app/utils/schemas/output_schemas.py
|
|
175
176
|
agentflow_cli/src/app/utils/schemas/user_schemas.py
|
|
176
|
-
graph/__init__.py
|
|
177
|
-
graph/react.py
|
|
178
177
|
tests/test_multimodal_sprint2_extraction.py
|
|
179
178
|
tests/test_sprint4_media_api.py
|
|
180
179
|
tests/test_utils_parse_and_callable.py
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
10xscale-agentflow>=0.
|
|
1
|
+
10xscale-agentflow>=0.8.0
|
|
2
2
|
fastapi
|
|
3
3
|
gunicorn
|
|
4
4
|
orjson
|
|
@@ -23,6 +23,12 @@ PyJWT
|
|
|
23
23
|
[media]
|
|
24
24
|
textxtract[docx,html,md,pdf,xml]>=0.2.0
|
|
25
25
|
|
|
26
|
+
[otel]
|
|
27
|
+
opentelemetry-api>=1.20.0
|
|
28
|
+
opentelemetry-sdk>=1.20.0
|
|
29
|
+
opentelemetry-instrumentation-fastapi>=0.40b0
|
|
30
|
+
opentelemetry-exporter-otlp>=1.20.0
|
|
31
|
+
|
|
26
32
|
[redis]
|
|
27
33
|
redis>=5.0.7
|
|
28
34
|
|