langgraph-api 0.0.1__py3-none-any.whl
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.
- LICENSE +93 -0
- langgraph_api/__init__.py +0 -0
- langgraph_api/api/__init__.py +63 -0
- langgraph_api/api/assistants.py +326 -0
- langgraph_api/api/meta.py +71 -0
- langgraph_api/api/openapi.py +32 -0
- langgraph_api/api/runs.py +463 -0
- langgraph_api/api/store.py +116 -0
- langgraph_api/api/threads.py +263 -0
- langgraph_api/asyncio.py +201 -0
- langgraph_api/auth/__init__.py +0 -0
- langgraph_api/auth/langsmith/__init__.py +0 -0
- langgraph_api/auth/langsmith/backend.py +67 -0
- langgraph_api/auth/langsmith/client.py +145 -0
- langgraph_api/auth/middleware.py +41 -0
- langgraph_api/auth/noop.py +14 -0
- langgraph_api/cli.py +209 -0
- langgraph_api/config.py +70 -0
- langgraph_api/cron_scheduler.py +60 -0
- langgraph_api/errors.py +52 -0
- langgraph_api/graph.py +314 -0
- langgraph_api/http.py +168 -0
- langgraph_api/http_logger.py +89 -0
- langgraph_api/js/.gitignore +2 -0
- langgraph_api/js/build.mts +49 -0
- langgraph_api/js/client.mts +849 -0
- langgraph_api/js/global.d.ts +6 -0
- langgraph_api/js/package.json +33 -0
- langgraph_api/js/remote.py +673 -0
- langgraph_api/js/server_sent_events.py +126 -0
- langgraph_api/js/src/graph.mts +88 -0
- langgraph_api/js/src/hooks.mjs +12 -0
- langgraph_api/js/src/parser/parser.mts +443 -0
- langgraph_api/js/src/parser/parser.worker.mjs +12 -0
- langgraph_api/js/src/schema/types.mts +2136 -0
- langgraph_api/js/src/schema/types.template.mts +74 -0
- langgraph_api/js/src/utils/importMap.mts +85 -0
- langgraph_api/js/src/utils/pythonSchemas.mts +28 -0
- langgraph_api/js/src/utils/serde.mts +21 -0
- langgraph_api/js/tests/api.test.mts +1566 -0
- langgraph_api/js/tests/compose-postgres.yml +56 -0
- langgraph_api/js/tests/graphs/.gitignore +1 -0
- langgraph_api/js/tests/graphs/agent.mts +127 -0
- langgraph_api/js/tests/graphs/error.mts +17 -0
- langgraph_api/js/tests/graphs/langgraph.json +8 -0
- langgraph_api/js/tests/graphs/nested.mts +44 -0
- langgraph_api/js/tests/graphs/package.json +7 -0
- langgraph_api/js/tests/graphs/weather.mts +57 -0
- langgraph_api/js/tests/graphs/yarn.lock +159 -0
- langgraph_api/js/tests/parser.test.mts +870 -0
- langgraph_api/js/tests/utils.mts +17 -0
- langgraph_api/js/yarn.lock +1340 -0
- langgraph_api/lifespan.py +41 -0
- langgraph_api/logging.py +121 -0
- langgraph_api/metadata.py +101 -0
- langgraph_api/models/__init__.py +0 -0
- langgraph_api/models/run.py +229 -0
- langgraph_api/patch.py +42 -0
- langgraph_api/queue.py +245 -0
- langgraph_api/route.py +118 -0
- langgraph_api/schema.py +190 -0
- langgraph_api/serde.py +124 -0
- langgraph_api/server.py +48 -0
- langgraph_api/sse.py +118 -0
- langgraph_api/state.py +67 -0
- langgraph_api/stream.py +289 -0
- langgraph_api/utils.py +60 -0
- langgraph_api/validation.py +141 -0
- langgraph_api-0.0.1.dist-info/LICENSE +93 -0
- langgraph_api-0.0.1.dist-info/METADATA +26 -0
- langgraph_api-0.0.1.dist-info/RECORD +86 -0
- langgraph_api-0.0.1.dist-info/WHEEL +4 -0
- langgraph_api-0.0.1.dist-info/entry_points.txt +3 -0
- langgraph_license/__init__.py +0 -0
- langgraph_license/middleware.py +21 -0
- langgraph_license/validation.py +11 -0
- langgraph_storage/__init__.py +0 -0
- langgraph_storage/checkpoint.py +94 -0
- langgraph_storage/database.py +190 -0
- langgraph_storage/ops.py +1523 -0
- langgraph_storage/queue.py +108 -0
- langgraph_storage/retry.py +27 -0
- langgraph_storage/store.py +28 -0
- langgraph_storage/ttl_dict.py +54 -0
- logging.json +22 -0
- openapi.json +4304 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
services:
|
|
2
|
+
langgraph-postgres:
|
|
3
|
+
image: postgres:16.3
|
|
4
|
+
ports:
|
|
5
|
+
- "5433:5432"
|
|
6
|
+
environment:
|
|
7
|
+
POSTGRES_DB: postgres
|
|
8
|
+
POSTGRES_USER: postgres
|
|
9
|
+
POSTGRES_PASSWORD: postgres
|
|
10
|
+
healthcheck:
|
|
11
|
+
test: pg_isready -U postgres
|
|
12
|
+
start_period: 10s
|
|
13
|
+
timeout: 1s
|
|
14
|
+
retries: 5
|
|
15
|
+
interval: 60s
|
|
16
|
+
start_interval: 1s
|
|
17
|
+
langgraph-redis:
|
|
18
|
+
image: redis:6
|
|
19
|
+
restart: on-failure
|
|
20
|
+
ports:
|
|
21
|
+
- "6381:6379"
|
|
22
|
+
healthcheck:
|
|
23
|
+
test: redis-cli ping
|
|
24
|
+
start_period: 10s
|
|
25
|
+
timeout: 1s
|
|
26
|
+
retries: 5
|
|
27
|
+
interval: 60s
|
|
28
|
+
start_interval: 1s
|
|
29
|
+
api:
|
|
30
|
+
build:
|
|
31
|
+
context: graphs
|
|
32
|
+
dockerfile_inline: |
|
|
33
|
+
FROM langchain/langgraphjs-api:20
|
|
34
|
+
ADD . /deps/graphs
|
|
35
|
+
WORKDIR /deps/graphs
|
|
36
|
+
RUN yarn install --frozen-lockfile
|
|
37
|
+
ENV LANGSERVE_GRAPHS='{"agent":"./agent.mts:graph", "nested": "./nested.mts:graph", "weather": "./weather.mts:graph", "error": "./error.mts:graph"}'
|
|
38
|
+
ENV LANGGRAPH_CONFIG='{"agent": {"configurable": {"model_name": "openai"}}}'
|
|
39
|
+
RUN tsx /api/langgraph_api/js/build.mts
|
|
40
|
+
depends_on:
|
|
41
|
+
langgraph-postgres:
|
|
42
|
+
condition: service_healthy
|
|
43
|
+
langgraph-redis:
|
|
44
|
+
condition: service_healthy
|
|
45
|
+
ports:
|
|
46
|
+
- "9123:8000"
|
|
47
|
+
healthcheck:
|
|
48
|
+
test: python /api/healthcheck.py
|
|
49
|
+
interval: 60s
|
|
50
|
+
start_interval: 1s
|
|
51
|
+
start_period: 10s
|
|
52
|
+
environment:
|
|
53
|
+
REDIS_URI: redis://langgraph-redis:6379
|
|
54
|
+
DATABASE_URI: postgres://postgres:postgres@langgraph-postgres:5432/postgres?sslmode=disable
|
|
55
|
+
N_JOBS_PER_WORKER: "2"
|
|
56
|
+
LANGGRAPH_CLOUD_LICENSE_KEY: ${LANGGRAPH_CLOUD_LICENSE_KEY}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
node_modules
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { BaseMessage, ToolMessage } from "@langchain/core/messages";
|
|
2
|
+
import {
|
|
3
|
+
Annotation,
|
|
4
|
+
StateGraph,
|
|
5
|
+
START,
|
|
6
|
+
END,
|
|
7
|
+
messagesStateReducer,
|
|
8
|
+
SharedValue,
|
|
9
|
+
LangGraphRunnableConfig,
|
|
10
|
+
} from "@langchain/langgraph";
|
|
11
|
+
import { FakeListChatModel } from "@langchain/core/utils/testing";
|
|
12
|
+
|
|
13
|
+
const GraphAnnotationOutput = Annotation.Root({
|
|
14
|
+
messages: Annotation<BaseMessage[]>({
|
|
15
|
+
reducer: messagesStateReducer,
|
|
16
|
+
default: () => [],
|
|
17
|
+
}),
|
|
18
|
+
sharedStateValue: Annotation<string | null>(),
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const GraphAnnotationInput = Annotation.Root({
|
|
22
|
+
...GraphAnnotationOutput.spec,
|
|
23
|
+
sharedState: SharedValue.on("user_id"),
|
|
24
|
+
sharedStateFromStoreConfig: Annotation<Record<string, any> | null>,
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
// For shared state
|
|
28
|
+
const namespace = ["sharedState", "data"];
|
|
29
|
+
const key = "user_id";
|
|
30
|
+
|
|
31
|
+
const modelMap: Record<string, FakeListChatModel> = {};
|
|
32
|
+
const getModel = (threadId: string) => {
|
|
33
|
+
modelMap[threadId] ??= new FakeListChatModel({ responses: ["begin", "end"] });
|
|
34
|
+
return modelMap[threadId];
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const agentNode = async (
|
|
38
|
+
state: typeof GraphAnnotationInput.State,
|
|
39
|
+
config: LangGraphRunnableConfig,
|
|
40
|
+
) => {
|
|
41
|
+
const model = getModel(config.configurable?.thread_id ?? "$");
|
|
42
|
+
const response = await model.invoke(state.messages);
|
|
43
|
+
const sharedStateValue = state.sharedState?.data?.user_id ?? null;
|
|
44
|
+
|
|
45
|
+
// Define in the first node
|
|
46
|
+
// Then retrieve in the second node
|
|
47
|
+
const store = config.store;
|
|
48
|
+
// Only set if it's not already set
|
|
49
|
+
if (store && !state.sharedStateFromStoreConfig) {
|
|
50
|
+
const value = { id: config?.configurable?.user_id };
|
|
51
|
+
await store.put(namespace, key, value);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return {
|
|
55
|
+
messages: [response],
|
|
56
|
+
sharedState: { data: { user_id: config?.configurable?.user_id } },
|
|
57
|
+
sharedStateValue,
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const toolNode = async (
|
|
62
|
+
state: typeof GraphAnnotationInput.State,
|
|
63
|
+
config: LangGraphRunnableConfig,
|
|
64
|
+
) => {
|
|
65
|
+
const store = config.store;
|
|
66
|
+
let sharedStateFromStoreConfig: Record<string, any> | null = null;
|
|
67
|
+
if (store) {
|
|
68
|
+
const result = await store.get(namespace, key);
|
|
69
|
+
sharedStateFromStoreConfig = result?.value ?? null;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const lastMessage = state.messages.at(-1);
|
|
73
|
+
if (!lastMessage) return { messages: [], sharedStateFromStoreConfig };
|
|
74
|
+
return {
|
|
75
|
+
messages: [
|
|
76
|
+
new ToolMessage({
|
|
77
|
+
content: `tool_call__${lastMessage.content as string}`,
|
|
78
|
+
tool_call_id: "tool_call_id",
|
|
79
|
+
}),
|
|
80
|
+
],
|
|
81
|
+
sharedStateFromStoreConfig,
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const checkSharedStateNode = async (
|
|
86
|
+
_: typeof GraphAnnotationInput.State,
|
|
87
|
+
config: LangGraphRunnableConfig,
|
|
88
|
+
): Promise<Partial<typeof GraphAnnotationInput.State>> => {
|
|
89
|
+
const store = config.store;
|
|
90
|
+
const namespace = ["inputtedState", "data"];
|
|
91
|
+
const key = "my_key";
|
|
92
|
+
if (store) {
|
|
93
|
+
const result = await store.get(namespace, key);
|
|
94
|
+
if (!result || !result.value.isTrue) {
|
|
95
|
+
throw new Error("Value is not true");
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return {};
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
const agentCondEdge = (state: typeof GraphAnnotationInput.State) => {
|
|
103
|
+
if ((state.messages[0].content as string) === "should_end") return END;
|
|
104
|
+
if ((state.messages[0].content as string) === "___check_state_value")
|
|
105
|
+
return "checkSharedState";
|
|
106
|
+
|
|
107
|
+
const lastMessage = state.messages.at(-1);
|
|
108
|
+
if (lastMessage?.content === "end") return END;
|
|
109
|
+
return "tool";
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
const workflow = new StateGraph(
|
|
113
|
+
{
|
|
114
|
+
input: GraphAnnotationInput,
|
|
115
|
+
output: GraphAnnotationOutput,
|
|
116
|
+
},
|
|
117
|
+
Annotation.Root({ model_name: Annotation<string> }),
|
|
118
|
+
)
|
|
119
|
+
.addNode("agent", agentNode)
|
|
120
|
+
.addNode("tool", toolNode)
|
|
121
|
+
.addNode("checkSharedState", checkSharedStateNode)
|
|
122
|
+
.addEdge(START, "agent")
|
|
123
|
+
.addConditionalEdges("agent", agentCondEdge)
|
|
124
|
+
.addEdge("tool", "agent")
|
|
125
|
+
.addEdge("checkSharedState", END);
|
|
126
|
+
|
|
127
|
+
export const graph = (async () => workflow.compile())();
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { StateGraph, START } from "@langchain/langgraph";
|
|
2
|
+
import { MessagesAnnotation } from "@langchain/langgraph";
|
|
3
|
+
|
|
4
|
+
class CustomError extends Error {
|
|
5
|
+
constructor(message: string) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = "CustomError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const graph = new StateGraph(MessagesAnnotation)
|
|
12
|
+
.addNode("error_node", async () => {
|
|
13
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
14
|
+
throw new CustomError("Boo!");
|
|
15
|
+
})
|
|
16
|
+
.addEdge(START, "error_node")
|
|
17
|
+
.compile();
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Annotation, StateGraph, END, START } from "@langchain/langgraph";
|
|
2
|
+
|
|
3
|
+
const child = new StateGraph(
|
|
4
|
+
Annotation.Root({
|
|
5
|
+
messages: Annotation<string[]>({
|
|
6
|
+
reducer: (a, b) => a.concat(b),
|
|
7
|
+
}),
|
|
8
|
+
child: Annotation<"child_one" | "child_two">,
|
|
9
|
+
})
|
|
10
|
+
)
|
|
11
|
+
.addNode("c_one", () => ({ messages: ["Entered c_one node"] }))
|
|
12
|
+
.addNode("c_two", () => ({ messages: ["Entered c_two node"] }))
|
|
13
|
+
.addEdge(START, "c_one")
|
|
14
|
+
.addEdge("c_one", "c_two")
|
|
15
|
+
.addEdge("c_two", END);
|
|
16
|
+
|
|
17
|
+
const parent = new StateGraph(
|
|
18
|
+
Annotation.Root({
|
|
19
|
+
messages: Annotation<string[]>({
|
|
20
|
+
reducer: (a, b) => a.concat(b),
|
|
21
|
+
}),
|
|
22
|
+
parent: Annotation<"parent_one" | "parent_two">,
|
|
23
|
+
})
|
|
24
|
+
)
|
|
25
|
+
.addNode("p_one", () => ({ messages: ["Entered p_one node"] }))
|
|
26
|
+
.addNode("p_two", child.compile())
|
|
27
|
+
.addEdge(START, "p_one")
|
|
28
|
+
.addEdge("p_one", "p_two")
|
|
29
|
+
.addEdge("p_two", END);
|
|
30
|
+
|
|
31
|
+
const grandParent = new StateGraph(
|
|
32
|
+
Annotation.Root({
|
|
33
|
+
messages: Annotation<string[]>({
|
|
34
|
+
reducer: (a, b) => a.concat(b),
|
|
35
|
+
}),
|
|
36
|
+
})
|
|
37
|
+
)
|
|
38
|
+
.addNode("gp_one", () => ({ messages: ["Entered gp_one node"] }))
|
|
39
|
+
.addNode("gp_two", parent.compile())
|
|
40
|
+
.addEdge(START, "gp_one")
|
|
41
|
+
.addEdge("gp_one", "gp_two")
|
|
42
|
+
.addEdge("gp_two", END);
|
|
43
|
+
|
|
44
|
+
export const graph = grandParent.compile();
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Annotation, StateGraph, END, START } from "@langchain/langgraph";
|
|
2
|
+
import { MessagesAnnotation } from "@langchain/langgraph";
|
|
3
|
+
import { AIMessage } from "@langchain/core/messages";
|
|
4
|
+
|
|
5
|
+
const state = MessagesAnnotation;
|
|
6
|
+
|
|
7
|
+
const weatherState = Annotation.Root({
|
|
8
|
+
...state.spec,
|
|
9
|
+
city: Annotation<string>,
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
const routerState = Annotation.Root({
|
|
13
|
+
...state.spec,
|
|
14
|
+
route: Annotation<"weather" | "other">,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
const weather = new StateGraph(weatherState)
|
|
18
|
+
.addNode("model_node", (state) => {
|
|
19
|
+
const llm = new AIMessage({
|
|
20
|
+
content: "",
|
|
21
|
+
tool_calls: [
|
|
22
|
+
{
|
|
23
|
+
id: "tool_call123",
|
|
24
|
+
name: "get_weather",
|
|
25
|
+
args: { city: "San Francisco" },
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
return { city: llm.tool_calls![0].args.city };
|
|
31
|
+
})
|
|
32
|
+
.addNode("weather_node", async (state) => {
|
|
33
|
+
const result = `It's sunny in ${state.city}!`;
|
|
34
|
+
return { messages: [new AIMessage({ content: result })] };
|
|
35
|
+
})
|
|
36
|
+
.addEdge(START, "model_node")
|
|
37
|
+
.addEdge("model_node", "weather_node")
|
|
38
|
+
.addEdge("weather_node", END)
|
|
39
|
+
.compile({ interruptBefore: ["weather_node"] });
|
|
40
|
+
|
|
41
|
+
const router = new StateGraph(routerState)
|
|
42
|
+
.addNode("router_node", async () => ({ route: "weather" }))
|
|
43
|
+
.addNode("normal_llm_node", () => ({ messages: [new AIMessage("Hello")] }))
|
|
44
|
+
.addNode("weather_graph", weather)
|
|
45
|
+
.addEdge(START, "router_node")
|
|
46
|
+
.addConditionalEdges(
|
|
47
|
+
"router_node",
|
|
48
|
+
({ route }) => {
|
|
49
|
+
if (route === "weather") return "weather_graph";
|
|
50
|
+
return "normal_llm_node";
|
|
51
|
+
},
|
|
52
|
+
["weather_graph", "normal_llm_node"]
|
|
53
|
+
)
|
|
54
|
+
.addEdge("weather_graph", END)
|
|
55
|
+
.addEdge("normal_llm_node", END);
|
|
56
|
+
|
|
57
|
+
export const graph = router.compile();
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
2
|
+
# yarn lockfile v1
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
"@langchain/core@^0.3.9":
|
|
6
|
+
version "0.3.9"
|
|
7
|
+
resolved "https://registry.yarnpkg.com/@langchain/core/-/core-0.3.9.tgz#1fa75be84a22d951946277bc4ad3ea656c77fafc"
|
|
8
|
+
integrity sha512-Rttr9FuFwU+CWIoEyuLqQUPYg+3pKL1YpDgo3nvoDVhinoHqwGQ7aNGzZ/Sf+qASMi76sPSLm+75pHMJwwOiWg==
|
|
9
|
+
dependencies:
|
|
10
|
+
ansi-styles "^5.0.0"
|
|
11
|
+
camelcase "6"
|
|
12
|
+
decamelize "1.2.0"
|
|
13
|
+
js-tiktoken "^1.0.12"
|
|
14
|
+
langsmith "^0.1.56"
|
|
15
|
+
mustache "^4.2.0"
|
|
16
|
+
p-queue "^6.6.2"
|
|
17
|
+
p-retry "4"
|
|
18
|
+
uuid "^10.0.0"
|
|
19
|
+
zod "^3.22.4"
|
|
20
|
+
zod-to-json-schema "^3.22.3"
|
|
21
|
+
|
|
22
|
+
"@langchain/langgraph-checkpoint@~0.0.10":
|
|
23
|
+
version "0.0.10"
|
|
24
|
+
resolved "https://registry.yarnpkg.com/@langchain/langgraph-checkpoint/-/langgraph-checkpoint-0.0.10.tgz#30d896ff48a9431ece0afa7e60e420ad2234b338"
|
|
25
|
+
integrity sha512-BMfJD5Eg39pM0iJmEv50qJL5dJJI5U2oHuNXixWlQ1BKsvtbSs713+EHc21uuvcJUct1MPiv7RdfvwXycLM/aQ==
|
|
26
|
+
dependencies:
|
|
27
|
+
uuid "^10.0.0"
|
|
28
|
+
|
|
29
|
+
"@langchain/langgraph@^0.2.14":
|
|
30
|
+
version "0.2.14"
|
|
31
|
+
resolved "https://registry.yarnpkg.com/@langchain/langgraph/-/langgraph-0.2.14.tgz#f698e948b923be666ffe61601da0cfbd363f8968"
|
|
32
|
+
integrity sha512-gvneCZDzYzpt+P6ye7pveiRZtlGKWFKk3XAck31yxSf5D/++lP8s6ocMY1x+UaFEfAYd5Qj6jNPI9aPp9Y75jQ==
|
|
33
|
+
dependencies:
|
|
34
|
+
"@langchain/langgraph-checkpoint" "~0.0.10"
|
|
35
|
+
double-ended-queue "^2.1.0-0"
|
|
36
|
+
uuid "^10.0.0"
|
|
37
|
+
zod "^3.23.8"
|
|
38
|
+
|
|
39
|
+
"@types/retry@0.12.0":
|
|
40
|
+
version "0.12.0"
|
|
41
|
+
resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d"
|
|
42
|
+
integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==
|
|
43
|
+
|
|
44
|
+
"@types/uuid@^10.0.0":
|
|
45
|
+
version "10.0.0"
|
|
46
|
+
resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-10.0.0.tgz#e9c07fe50da0f53dc24970cca94d619ff03f6f6d"
|
|
47
|
+
integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==
|
|
48
|
+
|
|
49
|
+
ansi-styles@^5.0.0:
|
|
50
|
+
version "5.2.0"
|
|
51
|
+
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
|
|
52
|
+
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
|
|
53
|
+
|
|
54
|
+
base64-js@^1.5.1:
|
|
55
|
+
version "1.5.1"
|
|
56
|
+
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
|
|
57
|
+
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
|
58
|
+
|
|
59
|
+
camelcase@6:
|
|
60
|
+
version "6.3.0"
|
|
61
|
+
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
|
|
62
|
+
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
|
63
|
+
|
|
64
|
+
commander@^10.0.1:
|
|
65
|
+
version "10.0.1"
|
|
66
|
+
resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06"
|
|
67
|
+
integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
|
|
68
|
+
|
|
69
|
+
decamelize@1.2.0:
|
|
70
|
+
version "1.2.0"
|
|
71
|
+
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
|
72
|
+
integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
|
|
73
|
+
|
|
74
|
+
double-ended-queue@^2.1.0-0:
|
|
75
|
+
version "2.1.0-0"
|
|
76
|
+
resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c"
|
|
77
|
+
integrity sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ==
|
|
78
|
+
|
|
79
|
+
eventemitter3@^4.0.4:
|
|
80
|
+
version "4.0.7"
|
|
81
|
+
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
|
|
82
|
+
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
|
|
83
|
+
|
|
84
|
+
js-tiktoken@^1.0.12:
|
|
85
|
+
version "1.0.12"
|
|
86
|
+
resolved "https://registry.yarnpkg.com/js-tiktoken/-/js-tiktoken-1.0.12.tgz#af0f5cf58e5e7318240d050c8413234019424211"
|
|
87
|
+
integrity sha512-L7wURW1fH9Qaext0VzaUDpFGVQgjkdE3Dgsy9/+yXyGEpBKnylTd0mU0bfbNkKDlXRb6TEsZkwuflu1B8uQbJQ==
|
|
88
|
+
dependencies:
|
|
89
|
+
base64-js "^1.5.1"
|
|
90
|
+
|
|
91
|
+
langsmith@^0.1.56:
|
|
92
|
+
version "0.1.64"
|
|
93
|
+
resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.1.64.tgz#d10cc8bb0e1aa38f67f385c5835eecbfd7b7d154"
|
|
94
|
+
integrity sha512-fA827iH34G6zFzZx5kzbZcevtulqq8qo1e9g/Rn+L0TXuOJSKLMEfVbDbX6WD9laus9P8ItZcp27E5/DngOFHQ==
|
|
95
|
+
dependencies:
|
|
96
|
+
"@types/uuid" "^10.0.0"
|
|
97
|
+
commander "^10.0.1"
|
|
98
|
+
p-queue "^6.6.2"
|
|
99
|
+
p-retry "4"
|
|
100
|
+
semver "^7.6.3"
|
|
101
|
+
uuid "^10.0.0"
|
|
102
|
+
|
|
103
|
+
mustache@^4.2.0:
|
|
104
|
+
version "4.2.0"
|
|
105
|
+
resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64"
|
|
106
|
+
integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
|
|
107
|
+
|
|
108
|
+
p-finally@^1.0.0:
|
|
109
|
+
version "1.0.0"
|
|
110
|
+
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
|
|
111
|
+
integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
|
|
112
|
+
|
|
113
|
+
p-queue@^6.6.2:
|
|
114
|
+
version "6.6.2"
|
|
115
|
+
resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426"
|
|
116
|
+
integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==
|
|
117
|
+
dependencies:
|
|
118
|
+
eventemitter3 "^4.0.4"
|
|
119
|
+
p-timeout "^3.2.0"
|
|
120
|
+
|
|
121
|
+
p-retry@4:
|
|
122
|
+
version "4.6.2"
|
|
123
|
+
resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16"
|
|
124
|
+
integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==
|
|
125
|
+
dependencies:
|
|
126
|
+
"@types/retry" "0.12.0"
|
|
127
|
+
retry "^0.13.1"
|
|
128
|
+
|
|
129
|
+
p-timeout@^3.2.0:
|
|
130
|
+
version "3.2.0"
|
|
131
|
+
resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe"
|
|
132
|
+
integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==
|
|
133
|
+
dependencies:
|
|
134
|
+
p-finally "^1.0.0"
|
|
135
|
+
|
|
136
|
+
retry@^0.13.1:
|
|
137
|
+
version "0.13.1"
|
|
138
|
+
resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
|
|
139
|
+
integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
|
|
140
|
+
|
|
141
|
+
semver@^7.6.3:
|
|
142
|
+
version "7.6.3"
|
|
143
|
+
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
|
|
144
|
+
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
|
|
145
|
+
|
|
146
|
+
uuid@^10.0.0:
|
|
147
|
+
version "10.0.0"
|
|
148
|
+
resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294"
|
|
149
|
+
integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==
|
|
150
|
+
|
|
151
|
+
zod-to-json-schema@^3.22.3:
|
|
152
|
+
version "3.23.2"
|
|
153
|
+
resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.23.2.tgz#bc7e379c8050462538383e382964c03d8fe008f9"
|
|
154
|
+
integrity sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==
|
|
155
|
+
|
|
156
|
+
zod@^3.22.4, zod@^3.23.8:
|
|
157
|
+
version "3.23.8"
|
|
158
|
+
resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d"
|
|
159
|
+
integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==
|