langgraph-init-cli 0.1.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.
- langgraph_init_cli-0.1.0/LICENSE +21 -0
- langgraph_init_cli-0.1.0/PKG-INFO +383 -0
- langgraph_init_cli-0.1.0/README.md +358 -0
- langgraph_init_cli-0.1.0/langgraph_cli/__init__.py +5 -0
- langgraph_init_cli-0.1.0/langgraph_cli/cli.py +42 -0
- langgraph_init_cli-0.1.0/langgraph_cli/generator.py +47 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/README.md +3 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/langgraph.json +6 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/pyproject.toml +20 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/__pycache__/main.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/__pycache__/builder.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/__pycache__/constants.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/__pycache__/edges.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/__pycache__/registry.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/__pycache__/state.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/builder.py +18 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/constants.py +20 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/edges.py +14 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/registry.py +8 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/graph/state.py +9 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/main.py +12 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/nodes/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/nodes/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/nodes/__pycache__/intent.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/nodes/__pycache__/output.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/nodes/__pycache__/processing.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/nodes/intent.py +9 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/nodes/output.py +10 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/nodes/processing.py +14 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/prompts/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/prompts/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/prompts/__pycache__/registry.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/prompts/registry.py +12 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/services/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/services/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/services/__pycache__/prompt_service.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/services/prompt_service.py +6 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/utils/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/utils/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/utils/__pycache__/logger.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/advanced/src/app/utils/logger.py +6 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/README.md +3 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/langgraph.json +6 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/pyproject.toml +20 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/src/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/src/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/src/app/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/src/app/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/src/app/__pycache__/main.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/src/app/__pycache__/nodes.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/src/app/__pycache__/state.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/src/app/main.py +27 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/src/app/nodes.py +22 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/base/src/app/state.py +7 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/README.md +121 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/langgraph.json +6 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/pyproject.toml +20 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/__pycache__/config.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/__pycache__/main.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/api/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/api/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/api/__pycache__/app.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/api/__pycache__/routes.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/api/app.py +11 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/api/routes.py +16 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/config.py +37 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/evaluation/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/evaluation/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/evaluation/__pycache__/evaluator.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/evaluation/__pycache__/scoring.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/evaluation/evaluator.py +12 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/evaluation/scoring.py +2 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/__pycache__/builder.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/__pycache__/constants.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/__pycache__/edges.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/__pycache__/registry.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/__pycache__/state.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/builder.py +20 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/constants.py +28 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/edges.py +21 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/registry.py +10 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/graph/state.py +15 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/main.py +27 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/models/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/models/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/models/__pycache__/schema.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/models/__pycache__/workflow.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/models/schema.py +11 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/models/workflow.py +30 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/__pycache__/error.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/__pycache__/intent.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/__pycache__/output.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/__pycache__/processing.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/__pycache__/validation.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/error.py +7 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/intent.py +21 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/output.py +13 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/processing.py +32 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/nodes/validation.py +22 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/observability/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/observability/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/observability/__pycache__/langsmith.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/observability/__pycache__/metrics.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/observability/langsmith.py +31 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/observability/metrics.py +15 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/prompts/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/prompts/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/prompts/__pycache__/registry.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/prompts/registry.py +20 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/prompts/versions/extraction/v1.txt +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/prompts/versions/intent/v1.txt +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/prompts/versions/intent/v2.txt +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/prompts/versions/validation/v1.txt +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/__pycache__/evaluation_service.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/__pycache__/llm_service.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/__pycache__/prompt_service.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/__pycache__/tool_service.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/__pycache__/versioning_service.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/evaluation_service.py +19 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/llm_service.py +56 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/prompt_service.py +21 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/tool_service.py +22 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/services/versioning_service.py +12 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/storage/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/storage/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/storage/__pycache__/cache.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/storage/__pycache__/prompt_store.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/storage/__pycache__/workflow_store.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/storage/cache.py +12 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/storage/prompt_store.py +11 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/storage/workflow_store.py +13 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/__pycache__/base.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/__pycache__/registry.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/api/__pycache__/http_tool.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/api/http_tool.py +12 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/base.py +15 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/db/__pycache__/query_tool.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/db/query_tool.py +12 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/rag/__pycache__/retriever_tool.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/rag/retriever_tool.py +18 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/registry.py +26 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/utils/__pycache__/calculator_tool.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/tools/utils/calculator_tool.py +21 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/utils/__init__.py +1 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/utils/__pycache__/__init__.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/utils/__pycache__/logger.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/utils/__pycache__/parallel.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/utils/__pycache__/tracing.cpython-313.pyc +0 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/utils/logger.py +33 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/utils/parallel.py +9 -0
- langgraph_init_cli-0.1.0/langgraph_cli/templates/production/src/app/utils/tracing.py +16 -0
- langgraph_init_cli-0.1.0/langgraph_init_cli.egg-info/PKG-INFO +383 -0
- langgraph_init_cli-0.1.0/langgraph_init_cli.egg-info/SOURCES.txt +175 -0
- langgraph_init_cli-0.1.0/langgraph_init_cli.egg-info/dependency_links.txt +1 -0
- langgraph_init_cli-0.1.0/langgraph_init_cli.egg-info/entry_points.txt +2 -0
- langgraph_init_cli-0.1.0/langgraph_init_cli.egg-info/requires.txt +5 -0
- langgraph_init_cli-0.1.0/langgraph_init_cli.egg-info/top_level.txt +1 -0
- langgraph_init_cli-0.1.0/pyproject.toml +52 -0
- langgraph_init_cli-0.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Varsha
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: langgraph-init-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: CLI scaffolder for LangGraph projects
|
|
5
|
+
Author: Varsha
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Keywords: langgraph,langchain,cli,scaffolding,agent,python
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Topic :: Software Development :: Code Generators
|
|
15
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
16
|
+
Requires-Python: >=3.10
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Requires-Dist: langgraph>=0.2.0
|
|
20
|
+
Requires-Dist: langchain>=0.3.0
|
|
21
|
+
Requires-Dist: langsmith>=0.1.0
|
|
22
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
23
|
+
Requires-Dist: typer>=0.12.0
|
|
24
|
+
Dynamic: license-file
|
|
25
|
+
|
|
26
|
+
# langgraph-init
|
|
27
|
+
|
|
28
|
+
`langgraph-init` is a production-oriented scaffolding CLI for LangGraph projects. It generates opinionated project layouts that start simple and scale into a modular agentic architecture with graph orchestration, prompts, tools, evaluation, observability, and LangSmith-ready tracing.
|
|
29
|
+
|
|
30
|
+
## What It Generates
|
|
31
|
+
|
|
32
|
+
The CLI ships with three templates:
|
|
33
|
+
|
|
34
|
+
### `base`
|
|
35
|
+
|
|
36
|
+
A minimal LangGraph starter intended for quick experiments.
|
|
37
|
+
|
|
38
|
+
Included:
|
|
39
|
+
|
|
40
|
+
- Small `StateGraph`
|
|
41
|
+
- Simple typed state
|
|
42
|
+
- A few nodes
|
|
43
|
+
- Minimal project structure
|
|
44
|
+
- Runnable `src.app.main:run`
|
|
45
|
+
|
|
46
|
+
### `advanced`
|
|
47
|
+
|
|
48
|
+
A modular architecture for teams that want graph structure and clean boundaries without full production overhead.
|
|
49
|
+
|
|
50
|
+
Included:
|
|
51
|
+
|
|
52
|
+
- `graph/` package with `builder.py`, `state.py`, `edges.py`, `constants.py`, `registry.py`
|
|
53
|
+
- Node registry and `Names` / `Nodes` / `Tags` pattern
|
|
54
|
+
- `nodes/`, `services/`, `prompts/`, and `utils/`
|
|
55
|
+
- Prompt loading abstraction
|
|
56
|
+
- Conditional edges
|
|
57
|
+
|
|
58
|
+
### `production`
|
|
59
|
+
|
|
60
|
+
A complete production-grade scaffold with architecture intended to be extended in real systems.
|
|
61
|
+
|
|
62
|
+
Included:
|
|
63
|
+
|
|
64
|
+
- Graph orchestration with `StateGraph`
|
|
65
|
+
- Conditional routing and retry logic
|
|
66
|
+
- `RunnableParallel` example
|
|
67
|
+
- Modular nodes and services
|
|
68
|
+
- Prompt versioning system
|
|
69
|
+
- Tool framework and registry
|
|
70
|
+
- Evaluation and scoring
|
|
71
|
+
- Structured logging
|
|
72
|
+
- LangSmith integration hooks
|
|
73
|
+
- Metrics and tracing utilities
|
|
74
|
+
- Storage layer abstractions
|
|
75
|
+
- Optional API entry surface
|
|
76
|
+
|
|
77
|
+
## Installation
|
|
78
|
+
|
|
79
|
+
From this repository:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
pip install -e .
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
This installs the CLI command:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
langgraph-init
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Usage
|
|
92
|
+
|
|
93
|
+
Create a project:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
langgraph-init my-app --template production
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Available templates:
|
|
100
|
+
|
|
101
|
+
- `base`
|
|
102
|
+
- `advanced`
|
|
103
|
+
- `production`
|
|
104
|
+
|
|
105
|
+
After generation:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
cd my-app
|
|
109
|
+
python -m src.app.main
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Example Workflow
|
|
113
|
+
|
|
114
|
+
Typical flow for a production scaffold:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
pip install -e .
|
|
118
|
+
langgraph-init my-app --template production
|
|
119
|
+
cd my-app
|
|
120
|
+
pip install -e .
|
|
121
|
+
python -m src.app.main
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## CLI Design
|
|
125
|
+
|
|
126
|
+
The CLI is intentionally small:
|
|
127
|
+
|
|
128
|
+
- `langgraph_cli/cli.py` exposes the Typer command
|
|
129
|
+
- `langgraph_cli/generator.py` copies template files
|
|
130
|
+
- `{{PROJECT_NAME}}` placeholders are replaced during generation
|
|
131
|
+
- Embedded templates live under `langgraph_cli/templates/`
|
|
132
|
+
|
|
133
|
+
The generator also ignores Python cache artifacts so packaged templates remain clean when the CLI itself is compiled locally.
|
|
134
|
+
|
|
135
|
+
## Generated Project Conventions
|
|
136
|
+
|
|
137
|
+
The advanced and production templates use a graph abstraction pattern built around three concepts:
|
|
138
|
+
|
|
139
|
+
- `Names`: stable graph node identifiers used when wiring edges
|
|
140
|
+
- `Nodes`: callable node implementations
|
|
141
|
+
- `Tags`: routing labels for conditional edges
|
|
142
|
+
|
|
143
|
+
This pattern keeps graph wiring readable and separates string identifiers from executable node functions.
|
|
144
|
+
|
|
145
|
+
Example:
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
class Names:
|
|
149
|
+
INTENT = "intent"
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
class Nodes:
|
|
153
|
+
INTENT = intent_node
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
class Tags:
|
|
157
|
+
CONTINUE = "continue"
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Production Template Architecture
|
|
161
|
+
|
|
162
|
+
The production scaffold generates this high-level layout:
|
|
163
|
+
|
|
164
|
+
```text
|
|
165
|
+
src/app/
|
|
166
|
+
├── main.py
|
|
167
|
+
├── config.py
|
|
168
|
+
├── graph/
|
|
169
|
+
├── nodes/
|
|
170
|
+
├── services/
|
|
171
|
+
├── tools/
|
|
172
|
+
├── prompts/
|
|
173
|
+
├── models/
|
|
174
|
+
├── storage/
|
|
175
|
+
├── utils/
|
|
176
|
+
├── observability/
|
|
177
|
+
├── evaluation/
|
|
178
|
+
└── api/
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Graph Layer
|
|
182
|
+
|
|
183
|
+
The graph layer is responsible for:
|
|
184
|
+
|
|
185
|
+
- Declaring typed workflow state
|
|
186
|
+
- Registering nodes
|
|
187
|
+
- Routing execution
|
|
188
|
+
- Handling validation retries
|
|
189
|
+
- Defining the orchestration contract
|
|
190
|
+
|
|
191
|
+
### Nodes
|
|
192
|
+
|
|
193
|
+
Each node handles one concern:
|
|
194
|
+
|
|
195
|
+
- `intent.py`: classify incoming intent
|
|
196
|
+
- `processing.py`: perform extraction and tool-backed enrichment
|
|
197
|
+
- `validation.py`: score output quality
|
|
198
|
+
- `output.py`: build and persist the final workflow result
|
|
199
|
+
- `error.py`: produce a final failure response
|
|
200
|
+
|
|
201
|
+
### Services
|
|
202
|
+
|
|
203
|
+
Services hold reusable logic that should not live inside nodes:
|
|
204
|
+
|
|
205
|
+
- `llm_service.py`: deterministic LLM-style orchestration and parallel enrichment
|
|
206
|
+
- `prompt_service.py`: prompt loading and access tracking
|
|
207
|
+
- `evaluation_service.py`: evaluation coordination
|
|
208
|
+
- `versioning_service.py`: prompt version switching
|
|
209
|
+
- `tool_service.py`: tool dispatch
|
|
210
|
+
|
|
211
|
+
### Tools
|
|
212
|
+
|
|
213
|
+
The production template includes a small but extensible tool framework:
|
|
214
|
+
|
|
215
|
+
- `BaseTool` contract
|
|
216
|
+
- Tool registry
|
|
217
|
+
- Deterministic query tool
|
|
218
|
+
- Deterministic HTTP-style tool
|
|
219
|
+
- Calculator tool
|
|
220
|
+
- Retriever tool
|
|
221
|
+
|
|
222
|
+
### Prompt Versioning
|
|
223
|
+
|
|
224
|
+
Prompts are stored by task and version:
|
|
225
|
+
|
|
226
|
+
```text
|
|
227
|
+
prompts/versions/
|
|
228
|
+
├── intent/v1.txt
|
|
229
|
+
├── intent/v2.txt
|
|
230
|
+
├── extraction/v1.txt
|
|
231
|
+
└── validation/v1.txt
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
The prompt service:
|
|
235
|
+
|
|
236
|
+
- Loads prompts by task/version
|
|
237
|
+
- Falls back to default configured versions
|
|
238
|
+
- Falls back to `v1` if a requested version does not exist
|
|
239
|
+
- Records prompt access through a store abstraction
|
|
240
|
+
|
|
241
|
+
### Evaluation and Observability
|
|
242
|
+
|
|
243
|
+
The production scaffold includes:
|
|
244
|
+
|
|
245
|
+
- Field coverage evaluation
|
|
246
|
+
- Confidence scoring
|
|
247
|
+
- Structured JSON logging
|
|
248
|
+
- Metrics counters
|
|
249
|
+
- LangSmith environment configuration
|
|
250
|
+
- Trace decorators
|
|
251
|
+
|
|
252
|
+
## langgraph.json
|
|
253
|
+
|
|
254
|
+
Generated projects include:
|
|
255
|
+
|
|
256
|
+
```json
|
|
257
|
+
{
|
|
258
|
+
"dependencies": ["."],
|
|
259
|
+
"graphs": {
|
|
260
|
+
"<project-name>": "src.app.main:run"
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
This keeps the project aligned with the requested `src.app.main:run` entrypoint.
|
|
266
|
+
|
|
267
|
+
## Extending the Scaffold
|
|
268
|
+
|
|
269
|
+
Recommended next steps after generation:
|
|
270
|
+
|
|
271
|
+
- Replace deterministic LLM stubs with your provider client
|
|
272
|
+
- Add real persistence in `storage/`
|
|
273
|
+
- Replace demo tools with domain tools
|
|
274
|
+
- Expand evaluation metrics
|
|
275
|
+
- Add tests around graph routing and node behavior
|
|
276
|
+
- Introduce environment-specific config loading
|
|
277
|
+
|
|
278
|
+
## Notes
|
|
279
|
+
|
|
280
|
+
- The generated code is runnable without external services by design
|
|
281
|
+
- LangSmith integration is environment-driven and safe by default when disabled
|
|
282
|
+
- The production template favors clean architecture over tight coupling
|
|
283
|
+
|
|
284
|
+
## Release Guide
|
|
285
|
+
|
|
286
|
+
This package can be published so others can install it with `pip` or `pipx` without cloning the repository.
|
|
287
|
+
|
|
288
|
+
### Before You Publish
|
|
289
|
+
|
|
290
|
+
Review these items first:
|
|
291
|
+
|
|
292
|
+
- Update the version in `pyproject.toml`
|
|
293
|
+
- Make sure the package name is the one you want to publish
|
|
294
|
+
- Confirm the dependency list is still minimal and intentional
|
|
295
|
+
- Add repository URLs to `pyproject.toml` later if you want PyPI to link to your source repo
|
|
296
|
+
|
|
297
|
+
Current runtime dependencies are:
|
|
298
|
+
|
|
299
|
+
- `langgraph`
|
|
300
|
+
- `langchain`
|
|
301
|
+
- `langsmith`
|
|
302
|
+
- `python-dotenv`
|
|
303
|
+
- `typer`
|
|
304
|
+
|
|
305
|
+
If you want an extra safety check, inspect the resolved dependency tree before publishing:
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
pip install -e .
|
|
309
|
+
pip show langgraph langchain langsmith python-dotenv typer
|
|
310
|
+
pip list
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Build the Package
|
|
314
|
+
|
|
315
|
+
Install build tooling:
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
python -m pip install --upgrade build twine
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
Build distributions:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
python -m build
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
This creates files in `dist/`.
|
|
328
|
+
|
|
329
|
+
### Validate the Distribution
|
|
330
|
+
|
|
331
|
+
Run:
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
python -m twine check dist/*
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### Publish to TestPyPI
|
|
338
|
+
|
|
339
|
+
Test the release safely first:
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
python -m twine upload --repository testpypi dist/*
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
Then verify install in a clean environment:
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ langgraph-init-cli
|
|
349
|
+
langgraph-init demo-app --template production
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### Publish to PyPI
|
|
353
|
+
|
|
354
|
+
When the TestPyPI release looks good:
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
python -m twine upload dist/*
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
Users can then install the tool with:
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
pip install langgraph-init-cli
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
Or, for a cleaner CLI-first experience:
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
pipx install langgraph-init-cli
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### Release Checklist
|
|
373
|
+
|
|
374
|
+
- Bump version in `pyproject.toml`
|
|
375
|
+
- Build with `python -m build`
|
|
376
|
+
- Validate with `python -m twine check dist/*`
|
|
377
|
+
- Upload to TestPyPI
|
|
378
|
+
- Smoke test installation
|
|
379
|
+
- Upload to PyPI
|
|
380
|
+
|
|
381
|
+
### Versioning Reminder
|
|
382
|
+
|
|
383
|
+
PyPI does not allow re-uploading the same version. Every release must use a new version number.
|