langgraph-cli 0.4.26__tar.gz → 0.4.27__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_cli-0.4.26 → langgraph_cli-0.4.27}/PKG-INFO +2 -2
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/yarn.lock +4 -5
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/package.json +1 -1
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/yarn.lock +43 -44
- langgraph_cli-0.4.27/langgraph_cli/__init__.py +1 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/deploy.py +45 -1
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/pyproject.toml +1 -1
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/test_deploy_helpers.py +155 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/monorepo/apps/agent/pyproject.toml +1 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/monorepo/pyproject.toml +1 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/monorepo/uv.lock +60 -7
- langgraph_cli-0.4.27/uv-examples/simple/uv.lock +988 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv.lock +7 -7
- langgraph_cli-0.4.26/langgraph_cli/__init__.py +0 -1
- langgraph_cli-0.4.26/uv-examples/simple/uv.lock +0 -877
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/.gitignore +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/LICENSE +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/Makefile +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/README.md +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/.env.example +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/.gitignore +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/Makefile +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graph_prerelease_reqs/agent.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graph_prerelease_reqs/deps/additional_deps/pyproject.toml +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graph_prerelease_reqs/deps/zuper_deps/pyproject.toml +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graph_prerelease_reqs/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graph_prerelease_reqs/pyproject.toml +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graph_prerelease_reqs_fail/agent.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graph_prerelease_reqs_fail/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graph_prerelease_reqs_fail/pyproject.toml +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs/agent.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs/storm.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_a/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_a/graphs_submod/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_a/graphs_submod/agent.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_a/graphs_submod/subprompt.txt +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_a/hello.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_a/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_a/prompt.txt +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_a/requirements.txt +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_b/graphs_submod/agent.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_b/graphs_submod/subprompt.txt +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_b/hello.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_b/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_b/prompt.txt +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_b/requirements.txt +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_b/utils/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/graphs_reqs_b/utils/greeter.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/my_app.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/pipconf.txt +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/poetry.lock +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/examples/pyproject.toml +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/generate_schema.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/.dockerignore +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/.editorconfig +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/.env.example +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/.eslintrc.cjs +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/.gitignore +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/LICENSE +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/README.md +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/jest.config.js +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/package.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/src/agent/graph.ts +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/src/agent/state.ts +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/static/studio.png +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/tests/agent.test.ts +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/tests/graph.int.test.ts +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-examples/tsconfig.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/.eslintrc.cjs +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/apps/agent/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/apps/agent/package.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/apps/agent/src/graph.ts +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/apps/agent/src/state.ts +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/apps/agent/tsconfig.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/libs/shared/package.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/libs/shared/src/index.ts +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/libs/shared/tsconfig.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/tsconfig.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/js-monorepo-example/turbo.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/__main__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/_ignore.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/analytics.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/archive.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/cli.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/config.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/constants.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/docker.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/exec.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/host_backend.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/progress.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/py.typed +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/schemas.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/templates.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/util.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/uv_lock.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/langgraph_cli/version.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/apps/agent/.env.example +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/apps/agent/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/apps/agent/pyproject.toml +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/apps/agent/src/agent/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/apps/agent/src/agent/graph.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/apps/agent/src/agent/state.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/libs/common/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/libs/common/helpers.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/libs/shared/pyproject.toml +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/libs/shared/src/shared/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/libs/shared/src/shared/utils.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/python-monorepo-example/pyproject.toml +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/schemas/schema.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/schemas/schema.v0.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/schemas/version.schema.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/integration_tests/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/integration_tests/test_cli.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/agent.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/cli/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/cli/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/cli/pyproject.toml +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/cli/test_cli.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/cli/test_templates.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/conftest.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/graphs/agent.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/helpers.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/multiplatform/js.mts +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/multiplatform/python.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/pipconfig.txt +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/test_archive.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/test_config.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/test_config.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/test_docker.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/test_host_backend.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/test_logs_helpers.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/tests/unit_tests/test_util.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/monorepo/apps/agent/.env.example +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/monorepo/apps/agent/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/monorepo/apps/agent/src/agent/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/monorepo/apps/agent/src/agent/graph.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/monorepo/libs/shared/pyproject.toml +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/monorepo/libs/shared/src/shared/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/monorepo/libs/shared/src/shared/utils.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/simple/.env.example +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/simple/langgraph.json +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/simple/pyproject.toml +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/simple/src/agent/__init__.py +0 -0
- {langgraph_cli-0.4.26 → langgraph_cli-0.4.27}/uv-examples/simple/src/agent/graph.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: langgraph-cli
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.27
|
|
4
4
|
Summary: CLI for interacting with LangGraph API
|
|
5
5
|
Project-URL: Source, https://github.com/langchain-ai/langgraph/tree/main/libs/cli
|
|
6
6
|
Project-URL: Twitter, https://x.com/langchain_oss
|
|
@@ -16,7 +16,7 @@ Requires-Dist: pathspec>=0.11.0
|
|
|
16
16
|
Requires-Dist: python-dotenv>=0.8.0
|
|
17
17
|
Requires-Dist: tomli>=2.0.1; python_version < '3.11'
|
|
18
18
|
Provides-Extra: inmem
|
|
19
|
-
Requires-Dist: langgraph-api<0.
|
|
19
|
+
Requires-Dist: langgraph-api<0.10.0,>=0.5.35; (python_version >= '3.11') and extra == 'inmem'
|
|
20
20
|
Requires-Dist: langgraph-runtime-inmem>=0.7; (python_version >= '3.11') and extra == 'inmem'
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
|
|
@@ -3675,12 +3675,11 @@ keyv@^4.5.4:
|
|
|
3675
3675
|
json-buffer "3.0.1"
|
|
3676
3676
|
|
|
3677
3677
|
"langsmith@>=0.5.0 <1.0.0":
|
|
3678
|
-
version "0.
|
|
3679
|
-
resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.
|
|
3680
|
-
integrity sha512-
|
|
3678
|
+
version "0.6.3"
|
|
3679
|
+
resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.6.3.tgz#a3d8ad58d66a47d3697e3c69b2be3f6df5233190"
|
|
3680
|
+
integrity sha512-pXrQ4/4myQvjFFOAUmt5pWRrLEZR20gzIJD7MNdUH+5/S5nLI4ZRBo/SYKC6coaYj9pYTfQdBIzcs+3kfJ5uDA==
|
|
3681
3681
|
dependencies:
|
|
3682
3682
|
p-queue "6.6.2"
|
|
3683
|
-
uuid "10.0.0"
|
|
3684
3683
|
|
|
3685
3684
|
leven@^3.1.0:
|
|
3686
3685
|
version "3.1.0"
|
|
@@ -4848,7 +4847,7 @@ uri-js@^4.2.2:
|
|
|
4848
4847
|
dependencies:
|
|
4849
4848
|
punycode "^2.1.0"
|
|
4850
4849
|
|
|
4851
|
-
uuid
|
|
4850
|
+
uuid@^10.0.0:
|
|
4852
4851
|
version "10.0.0"
|
|
4853
4852
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294"
|
|
4854
4853
|
integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==
|
|
@@ -166,35 +166,35 @@
|
|
|
166
166
|
resolved "https://registry.yarnpkg.com/@tsconfig/recommended/-/recommended-1.0.13.tgz#269fce3ad04ca70b93269ff44cca81b950f542da"
|
|
167
167
|
integrity sha512-sySRuBfMKyKO/j2ZAhR8kSembhjuPEV4Ra3AHtmWLq51+iGaudr45crPSzNC5b7/Ctrh9dfUpBuTlYrH6rM58Q==
|
|
168
168
|
|
|
169
|
-
"@turbo/darwin-64@2.9.
|
|
170
|
-
version "2.9.
|
|
171
|
-
resolved "https://registry.yarnpkg.com/@turbo/darwin-64/-/darwin-64-2.9.
|
|
172
|
-
integrity sha512-
|
|
173
|
-
|
|
174
|
-
"@turbo/darwin-arm64@2.9.
|
|
175
|
-
version "2.9.
|
|
176
|
-
resolved "https://registry.yarnpkg.com/@turbo/darwin-arm64/-/darwin-arm64-2.9.
|
|
177
|
-
integrity sha512-
|
|
178
|
-
|
|
179
|
-
"@turbo/linux-64@2.9.
|
|
180
|
-
version "2.9.
|
|
181
|
-
resolved "https://registry.yarnpkg.com/@turbo/linux-64/-/linux-64-2.9.
|
|
182
|
-
integrity sha512-
|
|
183
|
-
|
|
184
|
-
"@turbo/linux-arm64@2.9.
|
|
185
|
-
version "2.9.
|
|
186
|
-
resolved "https://registry.yarnpkg.com/@turbo/linux-arm64/-/linux-arm64-2.9.
|
|
187
|
-
integrity sha512-
|
|
188
|
-
|
|
189
|
-
"@turbo/windows-64@2.9.
|
|
190
|
-
version "2.9.
|
|
191
|
-
resolved "https://registry.yarnpkg.com/@turbo/windows-64/-/windows-64-2.9.
|
|
192
|
-
integrity sha512
|
|
193
|
-
|
|
194
|
-
"@turbo/windows-arm64@2.9.
|
|
195
|
-
version "2.9.
|
|
196
|
-
resolved "https://registry.yarnpkg.com/@turbo/windows-arm64/-/windows-arm64-2.9.
|
|
197
|
-
integrity sha512-
|
|
169
|
+
"@turbo/darwin-64@2.9.14":
|
|
170
|
+
version "2.9.14"
|
|
171
|
+
resolved "https://registry.yarnpkg.com/@turbo/darwin-64/-/darwin-64-2.9.14.tgz#b9ec6ac637b9c5fdba5dae9d743f5d121f091242"
|
|
172
|
+
integrity sha512-t7QiPflaEyBE4oayeZtSmu4mEfjgIrcNlNNl1z1dmIVPqEdtA7+CfTf8d7KXsOGPh6aNgWjKxyvQg9uGfDQF+A==
|
|
173
|
+
|
|
174
|
+
"@turbo/darwin-arm64@2.9.14":
|
|
175
|
+
version "2.9.14"
|
|
176
|
+
resolved "https://registry.yarnpkg.com/@turbo/darwin-arm64/-/darwin-arm64-2.9.14.tgz#99d19f3e59842c595d2828c72a2e4ef537408f38"
|
|
177
|
+
integrity sha512-d23147mC9BsCPA9mJ0h/ubcpbRgcJBXbcG3+Vq7YLhjz3IXuvQsJ1UXH8f4MD76ZjJ4m/E4aRdJV+MW88CDfbw==
|
|
178
|
+
|
|
179
|
+
"@turbo/linux-64@2.9.14":
|
|
180
|
+
version "2.9.14"
|
|
181
|
+
resolved "https://registry.yarnpkg.com/@turbo/linux-64/-/linux-64-2.9.14.tgz#9c907434f091cd75529f5496516f79b71935d2bb"
|
|
182
|
+
integrity sha512-P3ZKB5tuUDdDQWuAsACGUR1qv9W7BNWxdxqVJ0kZNuNNPRaVYTPPikLcp79+GiEcW3npsR+KyP38lnQiBc5aSA==
|
|
183
|
+
|
|
184
|
+
"@turbo/linux-arm64@2.9.14":
|
|
185
|
+
version "2.9.14"
|
|
186
|
+
resolved "https://registry.yarnpkg.com/@turbo/linux-arm64/-/linux-arm64-2.9.14.tgz#79ae9060e6ee9e0fb784ae0747e980f582e75313"
|
|
187
|
+
integrity sha512-ZRTlzcUMrrPv9ZuDzRF9n60Ym13bKeG9jDB8WjxyLhWNzV+AJQN+zdpIk3NJYf2zQsGUm1mNar2P0elRzLw25g==
|
|
188
|
+
|
|
189
|
+
"@turbo/windows-64@2.9.14":
|
|
190
|
+
version "2.9.14"
|
|
191
|
+
resolved "https://registry.yarnpkg.com/@turbo/windows-64/-/windows-64-2.9.14.tgz#68a80f299f35189314184c88301caad982d1c0c2"
|
|
192
|
+
integrity sha512-exanwN6sIduZwykYeiTQj8kCmOhazP5WOz3bvXMcYtjhL6Z3iRWLewKrXCBq0bqwSP3iBMb/AerRCnHI4lx46A==
|
|
193
|
+
|
|
194
|
+
"@turbo/windows-arm64@2.9.14":
|
|
195
|
+
version "2.9.14"
|
|
196
|
+
resolved "https://registry.yarnpkg.com/@turbo/windows-arm64/-/windows-arm64-2.9.14.tgz#4dc16684f0ddce53fafe56ad8f55205c4473d17a"
|
|
197
|
+
integrity sha512-fVdCsnmYoKICsycbWuuGp6Jvi51/3G/UluFWuAUCvR8PIW5IJkAk5BM9UF8PSm0Q2IphWHFZjYEgjHsh3B9y/g==
|
|
198
198
|
|
|
199
199
|
"@types/esrecurse@^4.3.1":
|
|
200
200
|
version "4.3.1"
|
|
@@ -1327,12 +1327,11 @@ keyv@^4.5.4:
|
|
|
1327
1327
|
json-buffer "3.0.1"
|
|
1328
1328
|
|
|
1329
1329
|
"langsmith@>=0.5.0 <1.0.0":
|
|
1330
|
-
version "0.
|
|
1331
|
-
resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.
|
|
1332
|
-
integrity sha512-
|
|
1330
|
+
version "0.7.1"
|
|
1331
|
+
resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.7.1.tgz#d721ad2e5211f9a5373e8a84eb4fed36b5621971"
|
|
1332
|
+
integrity sha512-Wjk90UjNoY5cBHMlNAC/eZx5clI8jnjBOBW8uJu8+MWBtx0QesNjsUiLtjI+I3UnrpxFFpDqGXcnhBjH654Mqg==
|
|
1333
1333
|
dependencies:
|
|
1334
1334
|
p-queue "6.6.2"
|
|
1335
|
-
uuid "10.0.0"
|
|
1336
1335
|
|
|
1337
1336
|
levn@^0.4.1:
|
|
1338
1337
|
version "0.4.1"
|
|
@@ -1814,17 +1813,17 @@ tsconfig-paths@^3.15.0:
|
|
|
1814
1813
|
minimist "^1.2.6"
|
|
1815
1814
|
strip-bom "^3.0.0"
|
|
1816
1815
|
|
|
1817
|
-
turbo@^2.9.
|
|
1818
|
-
version "2.9.
|
|
1819
|
-
resolved "https://registry.yarnpkg.com/turbo/-/turbo-2.9.
|
|
1820
|
-
integrity sha512-
|
|
1816
|
+
turbo@^2.9.14:
|
|
1817
|
+
version "2.9.14"
|
|
1818
|
+
resolved "https://registry.yarnpkg.com/turbo/-/turbo-2.9.14.tgz#d412fcc4c9bd8dba29cec5bbd54d5a74ab2b1bee"
|
|
1819
|
+
integrity sha512-BQqXRr4UoWI3UPFrtznCLykYHxwxWh53iCB57x092jPMjIlW1wnm3N895g5irpiXmnxUhREBB0n6+y8BHhs4nw==
|
|
1821
1820
|
optionalDependencies:
|
|
1822
|
-
"@turbo/darwin-64" "2.9.
|
|
1823
|
-
"@turbo/darwin-arm64" "2.9.
|
|
1824
|
-
"@turbo/linux-64" "2.9.
|
|
1825
|
-
"@turbo/linux-arm64" "2.9.
|
|
1826
|
-
"@turbo/windows-64" "2.9.
|
|
1827
|
-
"@turbo/windows-arm64" "2.9.
|
|
1821
|
+
"@turbo/darwin-64" "2.9.14"
|
|
1822
|
+
"@turbo/darwin-arm64" "2.9.14"
|
|
1823
|
+
"@turbo/linux-64" "2.9.14"
|
|
1824
|
+
"@turbo/linux-arm64" "2.9.14"
|
|
1825
|
+
"@turbo/windows-64" "2.9.14"
|
|
1826
|
+
"@turbo/windows-arm64" "2.9.14"
|
|
1828
1827
|
|
|
1829
1828
|
type-check@^0.4.0, type-check@~0.4.0:
|
|
1830
1829
|
version "0.4.0"
|
|
@@ -1900,7 +1899,7 @@ uri-js@^4.2.2:
|
|
|
1900
1899
|
dependencies:
|
|
1901
1900
|
punycode "^2.1.0"
|
|
1902
1901
|
|
|
1903
|
-
uuid
|
|
1902
|
+
uuid@^10.0.0:
|
|
1904
1903
|
version "10.0.0"
|
|
1905
1904
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294"
|
|
1906
1905
|
integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.4.27"
|
|
@@ -849,6 +849,41 @@ def _upload_to_gcs(signed_url: str, file_path: str, file_size: int) -> None:
|
|
|
849
849
|
# ---------------------------------------------------------------------------
|
|
850
850
|
|
|
851
851
|
|
|
852
|
+
def _resolve_pushed_image_digest(
|
|
853
|
+
runner,
|
|
854
|
+
*,
|
|
855
|
+
remote_image: str,
|
|
856
|
+
docker_config_dir: str | None,
|
|
857
|
+
verbose: bool,
|
|
858
|
+
) -> str:
|
|
859
|
+
"""Return ``{registry}/{repo}@sha256:<hex>`` for a freshly-pushed image.
|
|
860
|
+
|
|
861
|
+
Reads ``RepoDigests`` via ``docker image inspect`` — the local daemon
|
|
862
|
+
records the registry's manifest digest there after a successful push.
|
|
863
|
+
Falls back to ``remote_image`` with a warning if no matching digest is
|
|
864
|
+
found, rather than failing the deploy.
|
|
865
|
+
"""
|
|
866
|
+
# rsplit preserves ``:port`` in the registry host.
|
|
867
|
+
repo_no_tag = remote_image.rsplit(":", 1)[0]
|
|
868
|
+
args: list[str] = ["docker"]
|
|
869
|
+
if docker_config_dir:
|
|
870
|
+
args += ["--config", docker_config_dir]
|
|
871
|
+
args += ["image", "inspect", "--format", "{{json .RepoDigests}}", remote_image]
|
|
872
|
+
stdout, _ = runner.run(subp_exec(*args, collect=True, verbose=verbose))
|
|
873
|
+
try:
|
|
874
|
+
digests = json_mod.loads(stdout or "[]") or []
|
|
875
|
+
except json_mod.JSONDecodeError:
|
|
876
|
+
digests = []
|
|
877
|
+
for d in digests:
|
|
878
|
+
if isinstance(d, str) and d.startswith(f"{repo_no_tag}@sha256:"):
|
|
879
|
+
return d
|
|
880
|
+
_get_emitter().warn(
|
|
881
|
+
f"Could not resolve image digest for {remote_image}; "
|
|
882
|
+
"falling back to the tag-based reference. Re-run with --verbose for details."
|
|
883
|
+
)
|
|
884
|
+
return remote_image
|
|
885
|
+
|
|
886
|
+
|
|
852
887
|
def _run_local_build(
|
|
853
888
|
*,
|
|
854
889
|
client: HostBackendClient,
|
|
@@ -1015,9 +1050,18 @@ def _run_local_build(
|
|
|
1015
1050
|
raise
|
|
1016
1051
|
step += 1
|
|
1017
1052
|
|
|
1053
|
+
resolved_image = _resolve_pushed_image_digest(
|
|
1054
|
+
runner,
|
|
1055
|
+
remote_image=remote_image,
|
|
1056
|
+
docker_config_dir=None,
|
|
1057
|
+
verbose=verbose,
|
|
1058
|
+
)
|
|
1059
|
+
|
|
1018
1060
|
# -- Step: Update deployment --
|
|
1019
1061
|
_log_deploy_step(step, f"Updating deployment {deployment_id}")
|
|
1020
|
-
updated = client.update_deployment(
|
|
1062
|
+
updated = client.update_deployment(
|
|
1063
|
+
deployment_id, resolved_image, secrets=secrets
|
|
1064
|
+
)
|
|
1021
1065
|
|
|
1022
1066
|
return BuildResult(
|
|
1023
1067
|
updated=updated if isinstance(updated, dict) else {},
|
|
@@ -23,7 +23,7 @@ dependencies = [
|
|
|
23
23
|
path = "langgraph_cli/__init__.py"
|
|
24
24
|
[project.optional-dependencies]
|
|
25
25
|
inmem = [
|
|
26
|
-
"langgraph-api>=0.5.35,<0.
|
|
26
|
+
"langgraph-api>=0.5.35,<0.10.0 ; python_version >= '3.11'",
|
|
27
27
|
"langgraph-runtime-inmem>=0.7 ; python_version >= '3.11'",
|
|
28
28
|
]
|
|
29
29
|
|
|
@@ -3,6 +3,7 @@ import io
|
|
|
3
3
|
import json
|
|
4
4
|
import os
|
|
5
5
|
import sys
|
|
6
|
+
from unittest.mock import MagicMock
|
|
6
7
|
|
|
7
8
|
import click
|
|
8
9
|
import httpx
|
|
@@ -16,6 +17,7 @@ from langgraph_cli.deploy import (
|
|
|
16
17
|
_env_without_deployment_name,
|
|
17
18
|
_parse_env_from_config,
|
|
18
19
|
_resolve_env_path,
|
|
20
|
+
_resolve_pushed_image_digest,
|
|
19
21
|
_smith_dashboard_base_url,
|
|
20
22
|
normalize_image_tag,
|
|
21
23
|
normalize_name,
|
|
@@ -532,3 +534,156 @@ class TestSmithDashboardBaseUrl:
|
|
|
532
534
|
_smith_dashboard_base_url("https://custom.example.com")
|
|
533
535
|
== "https://smith.langchain.com"
|
|
534
536
|
)
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
class TestResolvePushedImageDigest:
|
|
540
|
+
"""Tests for ``_resolve_pushed_image_digest`` — runner is mocked to
|
|
541
|
+
return the ``(stdout, stderr)`` tuple that ``subp_exec(collect=True)``
|
|
542
|
+
would produce.
|
|
543
|
+
"""
|
|
544
|
+
|
|
545
|
+
@staticmethod
|
|
546
|
+
def _runner(stdout: str | None) -> MagicMock:
|
|
547
|
+
# Close the unawaited subp_exec coroutine to silence gc warnings.
|
|
548
|
+
runner = MagicMock()
|
|
549
|
+
|
|
550
|
+
def _run(coro, *args, **kwargs):
|
|
551
|
+
if hasattr(coro, "close"):
|
|
552
|
+
coro.close()
|
|
553
|
+
return (stdout, "")
|
|
554
|
+
|
|
555
|
+
runner.run.side_effect = _run
|
|
556
|
+
return runner
|
|
557
|
+
|
|
558
|
+
def test_happy_path_returns_digest(self):
|
|
559
|
+
runner = self._runner('["us-central1-docker.pkg.dev/proj/repo@sha256:abc123"]')
|
|
560
|
+
out = _resolve_pushed_image_digest(
|
|
561
|
+
runner,
|
|
562
|
+
remote_image="us-central1-docker.pkg.dev/proj/repo:latest",
|
|
563
|
+
docker_config_dir=None,
|
|
564
|
+
verbose=False,
|
|
565
|
+
)
|
|
566
|
+
assert out == "us-central1-docker.pkg.dev/proj/repo@sha256:abc123"
|
|
567
|
+
|
|
568
|
+
def test_filters_to_matching_repo(self):
|
|
569
|
+
# Same image ID can hold digests for multiple repos — pick the one
|
|
570
|
+
# matching the just-pushed repo.
|
|
571
|
+
runner = self._runner(
|
|
572
|
+
json.dumps(
|
|
573
|
+
[
|
|
574
|
+
"other-registry.example.com/some/repo@sha256:000000",
|
|
575
|
+
"us-central1-docker.pkg.dev/proj/repo@sha256:abc123",
|
|
576
|
+
]
|
|
577
|
+
)
|
|
578
|
+
)
|
|
579
|
+
out = _resolve_pushed_image_digest(
|
|
580
|
+
runner,
|
|
581
|
+
remote_image="us-central1-docker.pkg.dev/proj/repo:v1.2.3",
|
|
582
|
+
docker_config_dir=None,
|
|
583
|
+
verbose=False,
|
|
584
|
+
)
|
|
585
|
+
assert out == "us-central1-docker.pkg.dev/proj/repo@sha256:abc123"
|
|
586
|
+
|
|
587
|
+
def test_empty_repodigests_falls_back_with_warning(self, mocker):
|
|
588
|
+
emitter = mocker.MagicMock()
|
|
589
|
+
mocker.patch("langgraph_cli.deploy._get_emitter", return_value=emitter)
|
|
590
|
+
runner = self._runner("[]")
|
|
591
|
+
remote = "us-central1-docker.pkg.dev/proj/repo:latest"
|
|
592
|
+
out = _resolve_pushed_image_digest(
|
|
593
|
+
runner,
|
|
594
|
+
remote_image=remote,
|
|
595
|
+
docker_config_dir=None,
|
|
596
|
+
verbose=False,
|
|
597
|
+
)
|
|
598
|
+
assert out == remote
|
|
599
|
+
assert emitter.warn.called
|
|
600
|
+
assert remote in emitter.warn.call_args.args[0]
|
|
601
|
+
|
|
602
|
+
def test_null_repodigests_falls_back_with_warning(self, mocker):
|
|
603
|
+
# ``docker inspect --format '{{json .RepoDigests}}'`` emits ``null``
|
|
604
|
+
# when the field is absent.
|
|
605
|
+
emitter = mocker.MagicMock()
|
|
606
|
+
mocker.patch("langgraph_cli.deploy._get_emitter", return_value=emitter)
|
|
607
|
+
runner = self._runner("null")
|
|
608
|
+
remote = "us-central1-docker.pkg.dev/proj/repo:latest"
|
|
609
|
+
out = _resolve_pushed_image_digest(
|
|
610
|
+
runner,
|
|
611
|
+
remote_image=remote,
|
|
612
|
+
docker_config_dir=None,
|
|
613
|
+
verbose=False,
|
|
614
|
+
)
|
|
615
|
+
assert out == remote
|
|
616
|
+
assert emitter.warn.called
|
|
617
|
+
|
|
618
|
+
def test_no_matching_repo_falls_back_with_warning(self, mocker):
|
|
619
|
+
# No matching digest for the pushed repo — warn and fall back to the
|
|
620
|
+
# tag-based ref rather than failing the deploy.
|
|
621
|
+
emitter = mocker.MagicMock()
|
|
622
|
+
mocker.patch("langgraph_cli.deploy._get_emitter", return_value=emitter)
|
|
623
|
+
runner = self._runner('["other-registry.example.com/some/repo@sha256:000000"]')
|
|
624
|
+
remote = "us-central1-docker.pkg.dev/proj/repo:latest"
|
|
625
|
+
out = _resolve_pushed_image_digest(
|
|
626
|
+
runner,
|
|
627
|
+
remote_image=remote,
|
|
628
|
+
docker_config_dir=None,
|
|
629
|
+
verbose=False,
|
|
630
|
+
)
|
|
631
|
+
assert out == remote
|
|
632
|
+
assert emitter.warn.called
|
|
633
|
+
|
|
634
|
+
def test_registry_with_port_in_host(self):
|
|
635
|
+
# Only the rightmost ``:`` (the ``:latest`` tag) should be stripped.
|
|
636
|
+
runner = self._runner('["localhost:5000/repo@sha256:deadbeef"]')
|
|
637
|
+
out = _resolve_pushed_image_digest(
|
|
638
|
+
runner,
|
|
639
|
+
remote_image="localhost:5000/repo:latest",
|
|
640
|
+
docker_config_dir=None,
|
|
641
|
+
verbose=False,
|
|
642
|
+
)
|
|
643
|
+
assert out == "localhost:5000/repo@sha256:deadbeef"
|
|
644
|
+
|
|
645
|
+
@staticmethod
|
|
646
|
+
def _capturing_runner(stdout: str) -> tuple[MagicMock, dict]:
|
|
647
|
+
"""Like ``_runner`` but exposes the coroutine for arg introspection.
|
|
648
|
+
Caller must close ``captured["coro"]``.
|
|
649
|
+
"""
|
|
650
|
+
runner = MagicMock()
|
|
651
|
+
captured: dict = {}
|
|
652
|
+
|
|
653
|
+
def _run(coro, *args, **kwargs):
|
|
654
|
+
captured["coro"] = coro
|
|
655
|
+
return (stdout, "")
|
|
656
|
+
|
|
657
|
+
runner.run.side_effect = _run
|
|
658
|
+
return runner, captured
|
|
659
|
+
|
|
660
|
+
def test_passes_docker_config_dir(self):
|
|
661
|
+
runner, captured = self._capturing_runner(
|
|
662
|
+
'["us-central1-docker.pkg.dev/proj/repo@sha256:abc"]'
|
|
663
|
+
)
|
|
664
|
+
_resolve_pushed_image_digest(
|
|
665
|
+
runner,
|
|
666
|
+
remote_image="us-central1-docker.pkg.dev/proj/repo:latest",
|
|
667
|
+
docker_config_dir="/tmp/some-cfg",
|
|
668
|
+
verbose=False,
|
|
669
|
+
)
|
|
670
|
+
frame_locals = captured["coro"].cr_frame.f_locals
|
|
671
|
+
assert frame_locals["cmd"] == "docker"
|
|
672
|
+
assert "--config" in frame_locals["args"]
|
|
673
|
+
cfg_idx = frame_locals["args"].index("--config")
|
|
674
|
+
assert frame_locals["args"][cfg_idx + 1] == "/tmp/some-cfg"
|
|
675
|
+
captured["coro"].close()
|
|
676
|
+
|
|
677
|
+
def test_omits_docker_config_dir_when_none(self):
|
|
678
|
+
runner, captured = self._capturing_runner(
|
|
679
|
+
'["us-central1-docker.pkg.dev/proj/repo@sha256:abc"]'
|
|
680
|
+
)
|
|
681
|
+
_resolve_pushed_image_digest(
|
|
682
|
+
runner,
|
|
683
|
+
remote_image="us-central1-docker.pkg.dev/proj/repo:latest",
|
|
684
|
+
docker_config_dir=None,
|
|
685
|
+
verbose=False,
|
|
686
|
+
)
|
|
687
|
+
frame_locals = captured["coro"].cr_frame.f_locals
|
|
688
|
+
assert "--config" not in frame_locals["args"]
|
|
689
|
+
captured["coro"].close()
|
|
@@ -16,13 +16,15 @@ source = { editable = "apps/agent" }
|
|
|
16
16
|
dependencies = [
|
|
17
17
|
{ name = "langchain-core" },
|
|
18
18
|
{ name = "langgraph" },
|
|
19
|
+
{ name = "langgraph-checkpoint-postgres" },
|
|
19
20
|
{ name = "shared" },
|
|
20
21
|
]
|
|
21
22
|
|
|
22
23
|
[package.metadata]
|
|
23
24
|
requires-dist = [
|
|
24
|
-
{ name = "langchain-core", specifier = ">=
|
|
25
|
+
{ name = "langchain-core", specifier = ">=0.2.14" },
|
|
25
26
|
{ name = "langgraph", specifier = ">=0.6.0,<2" },
|
|
27
|
+
{ name = "langgraph-checkpoint-postgres", specifier = ">=3.0.0" },
|
|
26
28
|
{ name = "shared", editable = "libs/shared" },
|
|
27
29
|
]
|
|
28
30
|
|
|
@@ -275,6 +277,21 @@ wheels = [
|
|
|
275
277
|
{ url = "https://files.pythonhosted.org/packages/65/4c/09a4a0c42f5d2fc38d6c4d67884788eff7fd2cfdf367fdf7033de908b4c0/langgraph_checkpoint-4.0.1-py3-none-any.whl", hash = "sha256:e3adcd7a0e0166f3b48b8cf508ce0ea366e7420b5a73aa81289888727769b034", size = 50453, upload-time = "2026-02-27T21:06:14.293Z" },
|
|
276
278
|
]
|
|
277
279
|
|
|
280
|
+
[[package]]
|
|
281
|
+
name = "langgraph-checkpoint-postgres"
|
|
282
|
+
version = "3.0.5"
|
|
283
|
+
source = { registry = "https://pypi.org/simple" }
|
|
284
|
+
dependencies = [
|
|
285
|
+
{ name = "langgraph-checkpoint" },
|
|
286
|
+
{ name = "orjson" },
|
|
287
|
+
{ name = "psycopg" },
|
|
288
|
+
{ name = "psycopg-pool" },
|
|
289
|
+
]
|
|
290
|
+
sdist = { url = "https://files.pythonhosted.org/packages/95/7a/8f439966643d32111248a225e6cb33a182d07c90de780c4dbfc1e0377832/langgraph_checkpoint_postgres-3.0.5.tar.gz", hash = "sha256:a8fd7278a63f4f849b5cbc7884a15ca8f41e7d5f7467d0a66b31e8c24492f7eb", size = 127856, upload-time = "2026-03-18T21:25:29.785Z" }
|
|
291
|
+
wheels = [
|
|
292
|
+
{ url = "https://files.pythonhosted.org/packages/e8/87/b0f98b33a67204bca9d5619bcd9574222f6b025cf3c125eedcec9a50ecbc/langgraph_checkpoint_postgres-3.0.5-py3-none-any.whl", hash = "sha256:86d7040a88fd70087eaafb72251d796696a0a2d856168f5c11ef620771411552", size = 42907, upload-time = "2026-03-18T21:25:28.75Z" },
|
|
293
|
+
]
|
|
294
|
+
|
|
278
295
|
[[package]]
|
|
279
296
|
name = "langgraph-prebuilt"
|
|
280
297
|
version = "1.0.9"
|
|
@@ -303,7 +320,7 @@ wheels = [
|
|
|
303
320
|
|
|
304
321
|
[[package]]
|
|
305
322
|
name = "langsmith"
|
|
306
|
-
version = "0.
|
|
323
|
+
version = "0.8.0"
|
|
307
324
|
source = { registry = "https://pypi.org/simple" }
|
|
308
325
|
dependencies = [
|
|
309
326
|
{ name = "httpx" },
|
|
@@ -316,9 +333,9 @@ dependencies = [
|
|
|
316
333
|
{ name = "xxhash" },
|
|
317
334
|
{ name = "zstandard" },
|
|
318
335
|
]
|
|
319
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
336
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a8/64/95f1f013531395f4e8ed73caeee780f65c7c58fe028cb543f8937b45611b/langsmith-0.8.0.tar.gz", hash = "sha256:59fe5b2a56bbbe14a08aa76691f84b49e8675dd21e11b57d80c6db8c08bac2e3", size = 4432996, upload-time = "2026-04-30T22:13:07.341Z" }
|
|
320
337
|
wheels = [
|
|
321
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
338
|
+
{ url = "https://files.pythonhosted.org/packages/f3/e1/a4be2e696c9473bb53298df398237da5674704d781d4b748ed35aeef592a/langsmith-0.8.0-py3-none-any.whl", hash = "sha256:12cc4bc5622b835a6d841964d6034df3617bdb912dae0c1381fd0a68a9b3a3ef", size = 393268, upload-time = "2026-04-30T22:13:05.56Z" },
|
|
322
339
|
]
|
|
323
340
|
|
|
324
341
|
[[package]]
|
|
@@ -446,6 +463,31 @@ wheels = [
|
|
|
446
463
|
{ url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" },
|
|
447
464
|
]
|
|
448
465
|
|
|
466
|
+
[[package]]
|
|
467
|
+
name = "psycopg"
|
|
468
|
+
version = "3.3.4"
|
|
469
|
+
source = { registry = "https://pypi.org/simple" }
|
|
470
|
+
dependencies = [
|
|
471
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
|
|
472
|
+
{ name = "tzdata", marker = "sys_platform == 'win32'" },
|
|
473
|
+
]
|
|
474
|
+
sdist = { url = "https://files.pythonhosted.org/packages/db/2f/cb91e5502ec9de1de6f1b76cfbf69531932725361168bb06963620c77e2e/psycopg-3.3.4.tar.gz", hash = "sha256:e21207764952cff81b6b8bdacad9a3939f2793367fdac2987b3aac36a651b5bc", size = 165799, upload-time = "2026-05-01T23:31:55.179Z" }
|
|
475
|
+
wheels = [
|
|
476
|
+
{ url = "https://files.pythonhosted.org/packages/5c/e0/7b3dee031daae7743609ce3c746565d4a3ed7c2c186479eb48e34e838c64/psycopg-3.3.4-py3-none-any.whl", hash = "sha256:b6bbc25ccf05c8fad3b061d9db2ef0909a555171b84b07f29458a447253d679a", size = 213001, upload-time = "2026-05-01T23:20:50.816Z" },
|
|
477
|
+
]
|
|
478
|
+
|
|
479
|
+
[[package]]
|
|
480
|
+
name = "psycopg-pool"
|
|
481
|
+
version = "3.3.1"
|
|
482
|
+
source = { registry = "https://pypi.org/simple" }
|
|
483
|
+
dependencies = [
|
|
484
|
+
{ name = "typing-extensions" },
|
|
485
|
+
]
|
|
486
|
+
sdist = { url = "https://files.pythonhosted.org/packages/90/82/7a23d26039827ecd4ebe93905651029ddd307c5182ad59296dfb6f67b528/psycopg_pool-3.3.1.tar.gz", hash = "sha256:b10b10b7a175d5cc1592147dc5b7eec8a9e0834eb3ed2c4a92c858e2f51eb63c", size = 31661, upload-time = "2026-05-01T23:31:59.809Z" }
|
|
487
|
+
wheels = [
|
|
488
|
+
{ url = "https://files.pythonhosted.org/packages/37/ed/89c2c620af0e1660354cd8aabf9f5b21f911597ce22acb37c805d6c86bc8/psycopg_pool-3.3.1-py3-none-any.whl", hash = "sha256:2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5", size = 40023, upload-time = "2026-05-01T23:31:53.136Z" },
|
|
489
|
+
]
|
|
490
|
+
|
|
449
491
|
[[package]]
|
|
450
492
|
name = "pydantic"
|
|
451
493
|
version = "2.12.5"
|
|
@@ -675,13 +717,22 @@ wheels = [
|
|
|
675
717
|
{ url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" },
|
|
676
718
|
]
|
|
677
719
|
|
|
720
|
+
[[package]]
|
|
721
|
+
name = "tzdata"
|
|
722
|
+
version = "2026.2"
|
|
723
|
+
source = { registry = "https://pypi.org/simple" }
|
|
724
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ba/19/1b9b0e29f30c6d35cb345486df41110984ea67ae69dddbc0e8a100999493/tzdata-2026.2.tar.gz", hash = "sha256:9173fde7d80d9018e02a662e168e5a2d04f87c41ea174b139fbef642eda62d10", size = 198254, upload-time = "2026-04-24T15:22:08.651Z" }
|
|
725
|
+
wheels = [
|
|
726
|
+
{ url = "https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl", hash = "sha256:bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7", size = 349321, upload-time = "2026-04-24T15:22:05.876Z" },
|
|
727
|
+
]
|
|
728
|
+
|
|
678
729
|
[[package]]
|
|
679
730
|
name = "urllib3"
|
|
680
|
-
version = "2.
|
|
731
|
+
version = "2.7.0"
|
|
681
732
|
source = { registry = "https://pypi.org/simple" }
|
|
682
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
733
|
+
sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" }
|
|
683
734
|
wheels = [
|
|
684
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
735
|
+
{ url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" },
|
|
685
736
|
]
|
|
686
737
|
|
|
687
738
|
[[package]]
|
|
@@ -720,12 +771,14 @@ source = { virtual = "." }
|
|
|
720
771
|
dependencies = [
|
|
721
772
|
{ name = "langchain-core" },
|
|
722
773
|
{ name = "langgraph" },
|
|
774
|
+
{ name = "langgraph-checkpoint-postgres" },
|
|
723
775
|
]
|
|
724
776
|
|
|
725
777
|
[package.metadata]
|
|
726
778
|
requires-dist = [
|
|
727
779
|
{ name = "langchain-core", specifier = ">=1.3.3" },
|
|
728
780
|
{ name = "langgraph", specifier = ">=0.6.0,<2" },
|
|
781
|
+
{ name = "langgraph-checkpoint-postgres", specifier = ">=3.0.0" },
|
|
729
782
|
]
|
|
730
783
|
|
|
731
784
|
[[package]]
|