langgraph-cli 0.4.1__tar.gz → 0.4.2__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.
Files changed (115) hide show
  1. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/PKG-INFO +1 -1
  2. langgraph_cli-0.4.2/examples/graph_prerelease_reqs/agent.py +95 -0
  3. langgraph_cli-0.4.2/examples/graph_prerelease_reqs/langgraph.json +11 -0
  4. langgraph_cli-0.4.2/examples/graph_prerelease_reqs/requirements.txt +6 -0
  5. langgraph_cli-0.4.2/langgraph_cli/__init__.py +1 -0
  6. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/config.py +1 -1
  7. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/cli/test_cli.py +2 -2
  8. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/test_config.py +21 -21
  9. langgraph_cli-0.4.1/langgraph_cli/__init__.py +0 -1
  10. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/.gitignore +0 -0
  11. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/LICENSE +0 -0
  12. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/Makefile +0 -0
  13. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/README.md +0 -0
  14. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/.env.example +0 -0
  15. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/.gitignore +0 -0
  16. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/Makefile +0 -0
  17. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs/agent.py +0 -0
  18. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs/langgraph.json +0 -0
  19. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs/storm.py +0 -0
  20. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_a/__init__.py +0 -0
  21. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_a/graphs_submod/__init__.py +0 -0
  22. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_a/graphs_submod/agent.py +0 -0
  23. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_a/graphs_submod/subprompt.txt +0 -0
  24. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_a/hello.py +0 -0
  25. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_a/langgraph.json +0 -0
  26. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_a/prompt.txt +0 -0
  27. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_a/requirements.txt +0 -0
  28. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_b/graphs_submod/agent.py +0 -0
  29. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_b/graphs_submod/subprompt.txt +0 -0
  30. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_b/hello.py +0 -0
  31. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_b/langgraph.json +0 -0
  32. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_b/prompt.txt +0 -0
  33. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_b/requirements.txt +0 -0
  34. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_b/utils/__init__.py +0 -0
  35. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/graphs_reqs_b/utils/greeter.py +0 -0
  36. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/langgraph.json +0 -0
  37. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/my_app.py +0 -0
  38. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/pipconf.txt +0 -0
  39. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/poetry.lock +0 -0
  40. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/examples/pyproject.toml +0 -0
  41. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/generate_schema.py +0 -0
  42. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/.dockerignore +0 -0
  43. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/.env.example +0 -0
  44. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/.eslintrc.cjs +0 -0
  45. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/.gitignore +0 -0
  46. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/LICENSE +0 -0
  47. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/README.md +0 -0
  48. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/jest.config.js +0 -0
  49. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/langgraph.json +0 -0
  50. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/package.json +0 -0
  51. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/src/agent/graph.ts +0 -0
  52. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/src/agent/state.ts +0 -0
  53. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/static/studio.png +0 -0
  54. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/tests/agent.test.ts +0 -0
  55. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/tests/graph.int.test.ts +0 -0
  56. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/tsconfig.json +0 -0
  57. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-examples/yarn.lock +0 -0
  58. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/.eslintrc.cjs +0 -0
  59. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/apps/agent/langgraph.json +0 -0
  60. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/apps/agent/package.json +0 -0
  61. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/apps/agent/src/graph.ts +0 -0
  62. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/apps/agent/src/state.ts +0 -0
  63. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/apps/agent/tsconfig.json +0 -0
  64. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/libs/shared/package.json +0 -0
  65. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/libs/shared/src/index.ts +0 -0
  66. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/libs/shared/tsconfig.json +0 -0
  67. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/package.json +0 -0
  68. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/tsconfig.json +0 -0
  69. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/turbo.json +0 -0
  70. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/js-monorepo-example/yarn.lock +0 -0
  71. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/__main__.py +0 -0
  72. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/analytics.py +0 -0
  73. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/cli.py +0 -0
  74. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/constants.py +0 -0
  75. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/docker.py +0 -0
  76. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/exec.py +0 -0
  77. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/progress.py +0 -0
  78. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/py.typed +0 -0
  79. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/templates.py +0 -0
  80. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/util.py +0 -0
  81. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/langgraph_cli/version.py +0 -0
  82. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/pyproject.toml +0 -0
  83. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/apps/agent/.env.example +0 -0
  84. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/apps/agent/langgraph.json +0 -0
  85. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/apps/agent/pyproject.toml +0 -0
  86. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/apps/agent/src/agent/__init__.py +0 -0
  87. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/apps/agent/src/agent/graph.py +0 -0
  88. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/apps/agent/src/agent/state.py +0 -0
  89. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/libs/common/__init__.py +0 -0
  90. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/libs/common/helpers.py +0 -0
  91. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/libs/shared/pyproject.toml +0 -0
  92. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/libs/shared/src/shared/__init__.py +0 -0
  93. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/libs/shared/src/shared/utils.py +0 -0
  94. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/python-monorepo-example/pyproject.toml +0 -0
  95. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/schemas/schema.json +0 -0
  96. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/schemas/schema.v0.json +0 -0
  97. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/schemas/version.schema.json +0 -0
  98. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/__init__.py +0 -0
  99. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/integration_tests/__init__.py +0 -0
  100. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/integration_tests/test_cli.py +0 -0
  101. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/__init__.py +0 -0
  102. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/agent.py +0 -0
  103. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/cli/__init__.py +0 -0
  104. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/cli/langgraph.json +0 -0
  105. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/cli/pyproject.toml +0 -0
  106. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/cli/test_templates.py +0 -0
  107. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/conftest.py +0 -0
  108. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/graphs/agent.py +0 -0
  109. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/helpers.py +0 -0
  110. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/multiplatform/js.mts +0 -0
  111. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/multiplatform/python.py +0 -0
  112. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/pipconfig.txt +0 -0
  113. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/test_config.json +0 -0
  114. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/tests/unit_tests/test_docker.py +0 -0
  115. {langgraph_cli-0.4.1 → langgraph_cli-0.4.2}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-cli
3
- Version: 0.4.1
3
+ Version: 0.4.2
4
4
  Summary: CLI for interacting with LangGraph API
5
5
  Project-URL: Repository, https://www.github.com/langchain-ai/langgraph
6
6
  License-Expression: MIT
@@ -0,0 +1,95 @@
1
+ from collections.abc import Sequence
2
+ from typing import Annotated, Literal, TypedDict
3
+
4
+ from langchain.chat_models import init_chat_model
5
+ from langchain_community.tools.tavily_search import TavilySearchResults
6
+ from langchain_core.messages import BaseMessage
7
+ from langchain_openai import ChatOpenAI
8
+ from langgraph.graph import END, StateGraph, add_messages
9
+ from langgraph.prebuilt import ToolNode
10
+
11
+ tools = [TavilySearchResults(max_results=1)]
12
+
13
+ model_anth = init_chat_model("claude-3-7-sonnet-20250219", model_provider="anthropic")
14
+ model_oai = ChatOpenAI(temperature=0)
15
+
16
+ model_anth = model_anth.bind_tools(tools)
17
+ model_oai = model_oai.bind_tools(tools)
18
+
19
+
20
+ class AgentState(TypedDict):
21
+ messages: Annotated[Sequence[BaseMessage], add_messages]
22
+
23
+
24
+ # Define the function that determines whether to continue or not
25
+ def should_continue(state):
26
+ messages = state["messages"]
27
+ last_message = messages[-1]
28
+ # If there are no tool calls, then we finish
29
+ if not last_message.tool_calls:
30
+ return "end"
31
+ # Otherwise if there is, we continue
32
+ else:
33
+ return "continue"
34
+
35
+
36
+ # Define the function that calls the model
37
+ def call_model(state, config):
38
+ if config["configurable"].get("model", "anthropic") == "anthropic":
39
+ model = model_anth
40
+ else:
41
+ model = model_oai
42
+ messages = state["messages"]
43
+ response = model.invoke(messages)
44
+ # We return a list, because this will get added to the existing list
45
+ return {"messages": [response]}
46
+
47
+
48
+ # Define the function to execute tools
49
+ tool_node = ToolNode(tools)
50
+
51
+
52
+ class ContextSchema(TypedDict):
53
+ model: Literal["anthropic", "openai"]
54
+
55
+
56
+ # Define a new graph
57
+ workflow = StateGraph(AgentState, context_schema=ContextSchema)
58
+
59
+ # Define the two nodes we will cycle between
60
+ workflow.add_node("agent", call_model)
61
+ workflow.add_node("action", tool_node)
62
+
63
+ # Set the entrypoint as `agent`
64
+ # This means that this node is the first one called
65
+ workflow.set_entry_point("agent")
66
+
67
+ # We now add a conditional edge
68
+ workflow.add_conditional_edges(
69
+ # First, we define the start node. We use `agent`.
70
+ # This means these are the edges taken after the `agent` node is called.
71
+ "agent",
72
+ # Next, we pass in the function that will determine which node is called next.
73
+ should_continue,
74
+ # Finally we pass in a mapping.
75
+ # The keys are strings, and the values are other nodes.
76
+ # END is a special node marking that the graph should finish.
77
+ # What will happen is we will call `should_continue`, and then the output of that
78
+ # will be matched against the keys in this mapping.
79
+ # Based on which one it matches, that node will then be called.
80
+ {
81
+ # If `tools`, then we call the tool node.
82
+ "continue": "action",
83
+ # Otherwise we finish.
84
+ "end": END,
85
+ },
86
+ )
87
+
88
+ # We now add a normal edge from `tools` to `agent`.
89
+ # This means that after `tools` is called, `agent` node is called next.
90
+ workflow.add_edge("action", "agent")
91
+
92
+ # Finally, we compile it!
93
+ # This compiles it into a LangChain Runnable,
94
+ # meaning you can use it as you would any other runnable
95
+ graph = workflow.compile()
@@ -0,0 +1,11 @@
1
+ {
2
+ "python_version": "3.12",
3
+ "dependencies": [
4
+ "."
5
+ ],
6
+ "graphs": {
7
+ "agent": "./agent.py:graph"
8
+ },
9
+ "env": "../.env"
10
+ }
11
+
@@ -0,0 +1,6 @@
1
+ requests
2
+ langchain_anthropic
3
+ langchain_openai
4
+ langchain_community
5
+ langchain
6
+ langgraph==1.0.0a2
@@ -0,0 +1 @@
1
+ __version__ = "0.4.2"
@@ -1256,7 +1256,7 @@ def python_config_to_docker(
1256
1256
  else:
1257
1257
  pip_installer = "pip"
1258
1258
  if pip_installer == "uv":
1259
- install_cmd = "uv pip install --system"
1259
+ install_cmd = "uv pip install --system --prerelease=allow"
1260
1260
  elif pip_installer == "pip":
1261
1261
  install_cmd = "pip install"
1262
1262
  else:
@@ -15,7 +15,7 @@ from langgraph_cli.docker import DEFAULT_POSTGRES_URI, DockerCapabilities, Versi
15
15
  from langgraph_cli.util import clean_empty_lines
16
16
 
17
17
  FORMATTED_CLEANUP_LINES = _get_pip_cleanup_lines(
18
- install_cmd="uv pip install --system",
18
+ install_cmd="uv pip install --system --prerelease=allow",
19
19
  to_uninstall=("pip", "setuptools", "wheel"),
20
20
  pip_installer="uv",
21
21
  )
@@ -149,7 +149,7 @@ services:
149
149
  COPY --from=cli_1 . /deps/cli_1
150
150
  # -- End of local package ../../.. --
151
151
  # -- Installing all local dependencies --
152
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
152
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
153
153
  # -- End of local dependencies install --
154
154
  ENV LANGSERVE_GRAPHS='{{"agent": "agent.py:graph"}}'
155
155
  {textwrap.indent(textwrap.dedent(FORMATTED_CLEANUP_LINES), " ")}
@@ -20,7 +20,7 @@ from langgraph_cli.config import (
20
20
  from langgraph_cli.util import clean_empty_lines
21
21
 
22
22
  FORMATTED_CLEANUP_LINES = _get_pip_cleanup_lines(
23
- install_cmd="uv pip install --system",
23
+ install_cmd="uv pip install --system --prerelease=allow",
24
24
  to_uninstall=("pip", "setuptools", "wheel"),
25
25
  pip_installer="uv",
26
26
  )
@@ -422,7 +422,7 @@ def test_config_to_docker_simple():
422
422
  FROM langchain/langgraph-api:3.11
423
423
  # -- Installing local requirements --
424
424
  COPY --from=outer-requirements.txt requirements.txt /deps/outer-graphs_reqs_a/graphs_reqs_a/requirements.txt
425
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -r /deps/outer-graphs_reqs_a/graphs_reqs_a/requirements.txt
425
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -r /deps/outer-graphs_reqs_a/graphs_reqs_a/requirements.txt
426
426
  # -- End of local requirements install --
427
427
  # -- Adding local package ../../examples --
428
428
  COPY --from=examples . /deps/examples
@@ -456,7 +456,7 @@ RUN set -ex && \\
456
456
  done
457
457
  # -- End of non-package dependency graphs_reqs_a --
458
458
  # -- Installing all local dependencies --
459
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
459
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
460
460
  # -- End of local dependencies install --
461
461
  ENV LANGGRAPH_HTTP='{{"app": "/deps/examples/my_app.py:app"}}'
462
462
  ENV LANGSERVE_GRAPHS='{{"agent": "/deps/outer-unit_tests/unit_tests/agent.py:graph"}}'
@@ -512,7 +512,7 @@ RUN set -ex && \\
512
512
  done
513
513
  # -- End of non-package dependency tests --
514
514
  # -- Installing all local dependencies --
515
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
515
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
516
516
  # -- End of local dependencies install --
517
517
  ENV LANGSERVE_GRAPHS='{"agent": "/deps/outer-unit_tests/unit_tests/agent.py:graph"}'
518
518
  """
@@ -559,7 +559,7 @@ RUN set -ex && \\
559
559
  done
560
560
  # -- End of non-package dependency unit_tests --
561
561
  # -- Installing all local dependencies --
562
- RUN PIP_CONFIG_FILE=/pipconfig.txt PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
562
+ RUN PIP_CONFIG_FILE=/pipconfig.txt PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
563
563
  # -- End of local dependencies install --
564
564
  ENV LANGSERVE_GRAPHS='{"agent": "/deps/outer-unit_tests/unit_tests/agent.py:graph"}'
565
565
  """
@@ -621,7 +621,7 @@ RUN set -ex && \\
621
621
  done
622
622
  # -- End of non-package dependency graphs --
623
623
  # -- Installing all local dependencies --
624
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
624
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
625
625
  # -- End of local dependencies install --
626
626
  ENV LANGSERVE_GRAPHS='{{"agent": "/deps/outer-graphs/src/agent.py:graph"}}'
627
627
  {FORMATTED_CLEANUP_LINES}\
@@ -657,7 +657,7 @@ dependencies = ["langchain"]"""
657
657
  ADD . /deps/unit_tests
658
658
  # -- End of local package . --
659
659
  # -- Installing all local dependencies --
660
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
660
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
661
661
  # -- End of local dependencies install --
662
662
  ENV LANGSERVE_GRAPHS='{"agent": "/deps/unit_tests/graphs/agent.py:graph"}'
663
663
  """
@@ -689,7 +689,7 @@ def test_config_to_docker_end_to_end():
689
689
  ARG meow
690
690
  ARG foo
691
691
  ADD pipconfig.txt /pipconfig.txt
692
- RUN PIP_CONFIG_FILE=/pipconfig.txt PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt langchain langchain_openai
692
+ RUN PIP_CONFIG_FILE=/pipconfig.txt PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt langchain langchain_openai
693
693
  # -- Adding non-package dependency graphs --
694
694
  ADD ./graphs/ /deps/outer-graphs/src
695
695
  RUN set -ex && \\
@@ -705,7 +705,7 @@ RUN set -ex && \\
705
705
  done
706
706
  # -- End of non-package dependency graphs --
707
707
  # -- Installing all local dependencies --
708
- RUN PIP_CONFIG_FILE=/pipconfig.txt PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
708
+ RUN PIP_CONFIG_FILE=/pipconfig.txt PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
709
709
  # -- End of local dependencies install --
710
710
  ENV LANGSERVE_GRAPHS='{{"agent": "/deps/outer-graphs/src/agent.py:graph"}}'
711
711
  {FORMATTED_CLEANUP_LINES}"""
@@ -811,7 +811,7 @@ RUN set -ex && \\
811
811
  done
812
812
  # -- End of non-package dependency unit_tests --
813
813
  # -- Installing all local dependencies --
814
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
814
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
815
815
  # -- End of local dependencies install --
816
816
  ENV LANGGRAPH_UI='{{"agent": "./graphs/agent.ui.jsx"}}'
817
817
  ENV LANGGRAPH_UI_CONFIG='{{"shared": ["nuqs"]}}'
@@ -857,7 +857,7 @@ RUN set -ex && \\
857
857
  done
858
858
  # -- End of non-package dependency unit_tests --
859
859
  # -- Installing all local dependencies --
860
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
860
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
861
861
  # -- End of local dependencies install --
862
862
  ENV LANGSERVE_GRAPHS='{{"python": "/deps/outer-unit_tests/unit_tests/multiplatform/python.py:graph", "js": "/deps/outer-unit_tests/unit_tests/multiplatform/js.mts:graph"}}'
863
863
  # -- Installing JS dependencies --
@@ -887,7 +887,7 @@ def test_config_to_docker_pip_installer():
887
887
  docker_auto, _ = config_to_docker(
888
888
  PATH_TO_CONFIG, config_auto, "langchain/langgraph-api:0.2.47"
889
889
  )
890
- assert "uv pip install --system" in docker_auto
890
+ assert "uv pip install --system --prerelease=allow" in docker_auto
891
891
  assert "rm /usr/bin/uv /usr/bin/uvx" in docker_auto
892
892
 
893
893
  # Test explicit pip setting
@@ -895,7 +895,7 @@ def test_config_to_docker_pip_installer():
895
895
  docker_pip, _ = config_to_docker(
896
896
  PATH_TO_CONFIG, config_pip, "langchain/langgraph-api:0.2.47"
897
897
  )
898
- assert "uv pip install --system" not in docker_pip
898
+ assert "uv pip install --system --prerelease=allow" not in docker_pip
899
899
  assert "pip install" in docker_pip
900
900
  assert "rm /usr/bin/uv" not in docker_pip
901
901
 
@@ -904,7 +904,7 @@ def test_config_to_docker_pip_installer():
904
904
  docker_uv, _ = config_to_docker(
905
905
  PATH_TO_CONFIG, config_uv, "langchain/langgraph-api:0.2.47"
906
906
  )
907
- assert "uv pip install --system" in docker_uv
907
+ assert "uv pip install --system --prerelease=allow" in docker_uv
908
908
  assert "rm /usr/bin/uv /usr/bin/uvx" in docker_uv
909
909
 
910
910
  # Test auto behavior with older image (should use pip)
@@ -914,7 +914,7 @@ def test_config_to_docker_pip_installer():
914
914
  docker_auto_old, _ = config_to_docker(
915
915
  PATH_TO_CONFIG, config_auto_old, "langchain/langgraph-api:0.2.46"
916
916
  )
917
- assert "uv pip install --system" not in docker_auto_old
917
+ assert "uv pip install --system --prerelease=allow" not in docker_auto_old
918
918
  assert "pip install" in docker_auto_old
919
919
  assert "rm /usr/bin/uv" not in docker_auto_old
920
920
 
@@ -923,7 +923,7 @@ def test_config_to_docker_pip_installer():
923
923
  docker_default, _ = config_to_docker(
924
924
  PATH_TO_CONFIG, config_default, "langchain/langgraph-api:0.2.47"
925
925
  )
926
- assert "uv pip install --system" in docker_default
926
+ assert "uv pip install --system --prerelease=allow" in docker_default
927
927
 
928
928
 
929
929
  def test_config_retain_build_tools():
@@ -998,7 +998,7 @@ def test_config_to_compose_simple_config():
998
998
  done
999
999
  # -- End of non-package dependency unit_tests --
1000
1000
  # -- Installing all local dependencies --
1001
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
1001
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
1002
1002
  # -- End of local dependencies install --
1003
1003
  ENV LANGSERVE_GRAPHS='{{"agent": "/deps/outer-unit_tests/unit_tests/agent.py:graph"}}'
1004
1004
  {textwrap.indent(textwrap.dedent(FORMATTED_CLEANUP_LINES), " ")}
@@ -1039,7 +1039,7 @@ def test_config_to_compose_env_vars():
1039
1039
  done
1040
1040
  # -- End of non-package dependency unit_tests --
1041
1041
  # -- Installing all local dependencies --
1042
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
1042
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
1043
1043
  # -- End of local dependencies install --
1044
1044
  ENV LANGSERVE_GRAPHS='{{"agent": "/deps/outer-unit_tests/unit_tests/agent.py:graph"}}'
1045
1045
  {textwrap.indent(textwrap.dedent(FORMATTED_CLEANUP_LINES), " ")}
@@ -1084,7 +1084,7 @@ def test_config_to_compose_env_file():
1084
1084
  done
1085
1085
  # -- End of non-package dependency unit_tests --
1086
1086
  # -- Installing all local dependencies --
1087
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
1087
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
1088
1088
  # -- End of local dependencies install --
1089
1089
  ENV LANGSERVE_GRAPHS='{{"agent": "/deps/outer-unit_tests/unit_tests/agent.py:graph"}}'
1090
1090
  {textwrap.indent(textwrap.dedent(FORMATTED_CLEANUP_LINES), " ")}
@@ -1122,7 +1122,7 @@ def test_config_to_compose_watch():
1122
1122
  done
1123
1123
  # -- End of non-package dependency unit_tests --
1124
1124
  # -- Installing all local dependencies --
1125
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
1125
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
1126
1126
  # -- End of local dependencies install --
1127
1127
  ENV LANGSERVE_GRAPHS='{{"agent": "/deps/outer-unit_tests/unit_tests/agent.py:graph"}}'
1128
1128
  {textwrap.indent(textwrap.dedent(FORMATTED_CLEANUP_LINES), " ")}
@@ -1169,7 +1169,7 @@ def test_config_to_compose_end_to_end():
1169
1169
  done
1170
1170
  # -- End of non-package dependency unit_tests --
1171
1171
  # -- Installing all local dependencies --
1172
- RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --no-cache-dir -c /api/constraints.txt -e /deps/*
1172
+ RUN PYTHONDONTWRITEBYTECODE=1 uv pip install --system --prerelease=allow --no-cache-dir -c /api/constraints.txt -e /deps/*
1173
1173
  # -- End of local dependencies install --
1174
1174
  ENV LANGSERVE_GRAPHS='{{"agent": "/deps/outer-unit_tests/unit_tests/agent.py:graph"}}'
1175
1175
  {textwrap.indent(textwrap.dedent(FORMATTED_CLEANUP_LINES), " ")}
@@ -1 +0,0 @@
1
- __version__ = "0.4.1"
File without changes
File without changes
File without changes
File without changes
File without changes