langgraph-api 0.0.18__tar.gz → 0.0.20__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.

Potentially problematic release.


This version of langgraph-api might be problematic. Click here for more details.

Files changed (93) hide show
  1. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/PKG-INFO +2 -2
  2. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/custom.py +2 -2
  3. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/build.mts +5 -4
  4. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/client.mts +5 -4
  5. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/client.new.mts +5 -4
  6. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/graph.mts +6 -0
  7. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/ops.py +1 -0
  8. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/pyproject.toml +2 -2
  9. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/LICENSE +0 -0
  10. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/README.md +0 -0
  11. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/__init__.py +0 -0
  12. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/__init__.py +0 -0
  13. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/assistants.py +0 -0
  14. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/meta.py +0 -0
  15. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/openapi.py +0 -0
  16. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/runs.py +0 -0
  17. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/store.py +0 -0
  18. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/threads.py +0 -0
  19. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/asyncio.py +0 -0
  20. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/__init__.py +0 -0
  21. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/langsmith/__init__.py +0 -0
  22. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/langsmith/backend.py +0 -0
  23. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/langsmith/client.py +0 -0
  24. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/middleware.py +0 -0
  25. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/noop.py +0 -0
  26. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/studio_user.py +0 -0
  27. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/cli.py +0 -0
  28. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/config.py +0 -0
  29. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/cron_scheduler.py +0 -0
  30. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/errors.py +0 -0
  31. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/graph.py +0 -0
  32. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/http.py +0 -0
  33. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/http_logger.py +0 -0
  34. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/.gitignore +0 -0
  35. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/base.py +0 -0
  36. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/errors.py +0 -0
  37. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/global.d.ts +0 -0
  38. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/package.json +0 -0
  39. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/remote.py +0 -0
  40. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/remote_new.py +0 -0
  41. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/remote_old.py +0 -0
  42. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/schema.py +0 -0
  43. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/server_sent_events.py +0 -0
  44. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/hooks.mjs +0 -0
  45. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/parser/parser.mts +0 -0
  46. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/parser/parser.worker.mjs +0 -0
  47. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/schema/types.mts +0 -0
  48. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/schema/types.template.mts +0 -0
  49. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/utils/importMap.mts +0 -0
  50. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
  51. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/utils/serde.mts +0 -0
  52. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/api.test.mts +0 -0
  53. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/compose-postgres.yml +0 -0
  54. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/.gitignore +0 -0
  55. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/agent.mts +0 -0
  56. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/delay.mts +0 -0
  57. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/error.mts +0 -0
  58. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/langgraph.json +0 -0
  59. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/nested.mts +0 -0
  60. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/package.json +0 -0
  61. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/weather.mts +0 -0
  62. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/yarn.lock +0 -0
  63. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/parser.test.mts +0 -0
  64. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/utils.mts +0 -0
  65. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/yarn.lock +0 -0
  66. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/lifespan.py +0 -0
  67. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/logging.py +0 -0
  68. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/metadata.py +0 -0
  69. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/models/__init__.py +0 -0
  70. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/models/run.py +0 -0
  71. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/patch.py +0 -0
  72. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/queue.py +0 -0
  73. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/route.py +0 -0
  74. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/schema.py +0 -0
  75. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/serde.py +0 -0
  76. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/server.py +0 -0
  77. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/sse.py +0 -0
  78. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/state.py +0 -0
  79. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/stream.py +0 -0
  80. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/utils.py +0 -0
  81. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/validation.py +0 -0
  82. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_license/__init__.py +0 -0
  83. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_license/middleware.py +0 -0
  84. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_license/validation.py +0 -0
  85. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/__init__.py +0 -0
  86. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/checkpoint.py +0 -0
  87. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/database.py +0 -0
  88. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/queue.py +0 -0
  89. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/retry.py +0 -0
  90. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/store.py +0 -0
  91. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/ttl_dict.py +0 -0
  92. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/logging.json +0 -0
  93. {langgraph_api-0.0.18 → langgraph_api-0.0.20}/openapi.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langgraph-api
3
- Version: 0.0.18
3
+ Version: 0.0.20
4
4
  Summary:
5
5
  License: Elastic-2.0
6
6
  Author: Nuno Campos
@@ -23,7 +23,7 @@ Requires-Dist: pyjwt (>=2.9.0,<3.0.0)
23
23
  Requires-Dist: sse-starlette (>=2.1.0,<2.2.0)
24
24
  Requires-Dist: starlette (>=0.38.6)
25
25
  Requires-Dist: structlog (>=24.4.0,<25.0.0)
26
- Requires-Dist: tenacity (>=8.3.0,<9.0.0)
26
+ Requires-Dist: tenacity (>=8.3.0,<10)
27
27
  Requires-Dist: uvicorn (>=0.26.0)
28
28
  Requires-Dist: watchfiles (>=0.13)
29
29
  Description-Content-Type: text/markdown
@@ -78,8 +78,8 @@ async def handle_event(
78
78
  - Raises HTTPException(403) if any handler rejects the request
79
79
 
80
80
  Handlers are run in order from most specific to most general:
81
- 1. Resource+action specific handlers (e.g. "runs", "create")
82
- 2. Resource handlers (e.g. "runs", "*")
81
+ 1. Resource+action specific handlers (e.g. "threads", "create")
82
+ 2. Resource handlers (e.g. "threads", "*")
83
83
  3. Action handlers (e.g. "*", "create")
84
84
  4. Global handlers ("*", "*")
85
85
  """
@@ -4,6 +4,7 @@ import { z } from "zod";
4
4
  import * as fs from "node:fs/promises";
5
5
  import * as path from "node:path";
6
6
  import {
7
+ filterValidGraphSpecs,
7
8
  GraphSchema,
8
9
  resolveGraph,
9
10
  runGraphSchemaWorker,
@@ -12,15 +13,15 @@ import {
12
13
  const __dirname = new URL(".", import.meta.url).pathname;
13
14
 
14
15
  async function main() {
15
- const specs = z
16
- .record(z.string())
17
- .parse(JSON.parse(process.env.LANGSERVE_GRAPHS));
16
+ const specs = filterValidGraphSpecs(
17
+ z.record(z.string()).parse(JSON.parse(process.env.LANGSERVE_GRAPHS))
18
+ );
18
19
 
19
20
  const GRAPH_SCHEMAS: Record<string, Record<string, GraphSchema>> = {};
20
21
 
21
22
  try {
22
23
  await Promise.all(
23
- Object.entries(specs).map(async ([graphId, rawSpec]) => {
24
+ specs.map(async ([graphId, rawSpec]) => {
24
25
  console.info(`[${graphId}]: Checking for source file existence`);
25
26
  const { resolved, ...spec } = await resolveGraph(rawSpec, {
26
27
  onlyFilePresence: true,
@@ -41,6 +41,7 @@ import {
41
41
  GraphSchema,
42
42
  resolveGraph,
43
43
  GraphSpec,
44
+ filterValidGraphSpecs,
44
45
  } from "./src/graph.mts";
45
46
 
46
47
  const logger = createLogger({
@@ -725,9 +726,9 @@ async function main() {
725
726
  const checkpointer = new RemoteCheckpointer();
726
727
  const store = new RemoteStore();
727
728
 
728
- const specs = z
729
- .record(z.string())
730
- .parse(JSON.parse(process.env.LANGSERVE_GRAPHS ?? "{}"));
729
+ const specs = filterValidGraphSpecs(
730
+ z.record(z.string()).parse(JSON.parse(process.env.LANGSERVE_GRAPHS ?? "{}"))
731
+ );
731
732
 
732
733
  if (!process.argv.includes("--skip-schema-cache")) {
733
734
  try {
@@ -742,7 +743,7 @@ async function main() {
742
743
  }
743
744
 
744
745
  await Promise.all(
745
- Object.entries(specs).map(async ([graphId, rawSpec]) => {
746
+ specs.map(async ([graphId, rawSpec]) => {
746
747
  logger.info(`Resolving graph ${graphId}`);
747
748
  const { resolved, ...spec } = await resolveGraph(rawSpec);
748
749
 
@@ -37,6 +37,7 @@ import {
37
37
  GraphSchema,
38
38
  resolveGraph,
39
39
  GraphSpec,
40
+ filterValidGraphSpecs,
40
41
  } from "./src/graph.mts";
41
42
 
42
43
  const logger = createLogger({
@@ -784,9 +785,9 @@ async function main() {
784
785
  const checkpointer = new RemoteCheckpointer();
785
786
  const store = new RemoteStore();
786
787
 
787
- const specs = z
788
- .record(z.string())
789
- .parse(JSON.parse(process.env.LANGSERVE_GRAPHS ?? "{}"));
788
+ const specs = filterValidGraphSpecs(
789
+ z.record(z.string()).parse(JSON.parse(process.env.LANGSERVE_GRAPHS ?? "{}"))
790
+ );
790
791
 
791
792
  if (!process.argv.includes("--skip-schema-cache")) {
792
793
  try {
@@ -801,7 +802,7 @@ async function main() {
801
802
  }
802
803
 
803
804
  await Promise.all(
804
- Object.entries(specs).map(async ([graphId, rawSpec]) => {
805
+ specs.map(async ([graphId, rawSpec]) => {
805
806
  logger.info(`Resolving graph ${graphId}`);
806
807
  const { resolved, ...spec } = await resolveGraph(rawSpec);
807
808
 
@@ -20,6 +20,12 @@ export interface GraphSpec {
20
20
  exportSymbol: string;
21
21
  }
22
22
 
23
+ export function filterValidGraphSpecs(specs: Record<string, string>) {
24
+ return Object.entries(specs).filter(
25
+ ([_, spec]) => !spec.split(":")[0].endsWith(".py")
26
+ );
27
+ }
28
+
23
29
  export async function resolveGraph(
24
30
  spec: string,
25
31
  options?: { onlyFilePresence?: false }
@@ -1328,6 +1328,7 @@ class Runs(Authenticated):
1328
1328
  metadata={
1329
1329
  "graph_id": assistant["graph_id"],
1330
1330
  "assistant_id": str(assistant_id),
1331
+ **metadata,
1331
1332
  },
1332
1333
  config=Runs._merge_jsonb(
1333
1334
  assistant["config"],
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "langgraph-api"
3
- version = "0.0.18"
3
+ version = "0.0.20"
4
4
  description = ""
5
5
  authors = [
6
6
  "Nuno Campos <nuno@langchain.dev>",
@@ -30,7 +30,7 @@ uvicorn = ">=0.26.0"
30
30
  langsmith = ">=0.1.63,<0.3.0"
31
31
  httpx = ">=0.27.0"
32
32
  langchain-core = ">=0.2.38,<0.4.0"
33
- tenacity = "^8.3.0"
33
+ tenacity = ">=8.3.0,<10"
34
34
  jsonschema-rs = "^0.25.0"
35
35
  structlog = "^24.4.0"
36
36
  pyjwt = "^2.9.0"
File without changes
File without changes