@langchain/core 1.0.0-alpha.6 → 1.0.0

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 (245) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/LICENSE +6 -6
  3. package/README.md +2 -23
  4. package/dist/agents.d.ts.map +1 -1
  5. package/dist/caches/base.d.cts.map +1 -1
  6. package/dist/callbacks/base.d.cts.map +1 -1
  7. package/dist/callbacks/base.d.ts.map +1 -1
  8. package/dist/callbacks/manager.cjs +9 -64
  9. package/dist/callbacks/manager.cjs.map +1 -1
  10. package/dist/callbacks/manager.d.cts +1 -23
  11. package/dist/callbacks/manager.d.cts.map +1 -1
  12. package/dist/callbacks/manager.d.ts +1 -23
  13. package/dist/callbacks/manager.d.ts.map +1 -1
  14. package/dist/callbacks/manager.js +10 -63
  15. package/dist/callbacks/manager.js.map +1 -1
  16. package/dist/chat_history.cjs +0 -4
  17. package/dist/chat_history.cjs.map +1 -1
  18. package/dist/chat_history.d.cts +1 -3
  19. package/dist/chat_history.d.cts.map +1 -1
  20. package/dist/chat_history.d.ts +1 -3
  21. package/dist/chat_history.d.ts.map +1 -1
  22. package/dist/chat_history.js +0 -4
  23. package/dist/chat_history.js.map +1 -1
  24. package/dist/document_loaders/base.cjs +1 -13
  25. package/dist/document_loaders/base.cjs.map +1 -1
  26. package/dist/document_loaders/base.d.cts +0 -9
  27. package/dist/document_loaders/base.d.cts.map +1 -1
  28. package/dist/document_loaders/base.d.ts +0 -9
  29. package/dist/document_loaders/base.d.ts.map +1 -1
  30. package/dist/document_loaders/base.js +1 -13
  31. package/dist/document_loaders/base.js.map +1 -1
  32. package/dist/document_loaders/langsmith.d.cts +1 -1
  33. package/dist/language_models/base.cjs.map +1 -1
  34. package/dist/language_models/base.d.cts +0 -16
  35. package/dist/language_models/base.d.cts.map +1 -1
  36. package/dist/language_models/base.d.ts +0 -16
  37. package/dist/language_models/base.d.ts.map +1 -1
  38. package/dist/language_models/base.js.map +1 -1
  39. package/dist/language_models/chat_models.cjs +10 -83
  40. package/dist/language_models/chat_models.cjs.map +1 -1
  41. package/dist/language_models/chat_models.d.cts +21 -55
  42. package/dist/language_models/chat_models.d.cts.map +1 -1
  43. package/dist/language_models/chat_models.d.ts +21 -55
  44. package/dist/language_models/chat_models.d.ts.map +1 -1
  45. package/dist/language_models/chat_models.js +11 -83
  46. package/dist/language_models/chat_models.js.map +1 -1
  47. package/dist/language_models/llms.cjs +0 -56
  48. package/dist/language_models/llms.cjs.map +1 -1
  49. package/dist/language_models/llms.d.cts +1 -43
  50. package/dist/language_models/llms.d.cts.map +1 -1
  51. package/dist/language_models/llms.d.ts +1 -43
  52. package/dist/language_models/llms.d.ts.map +1 -1
  53. package/dist/language_models/llms.js +0 -56
  54. package/dist/language_models/llms.js.map +1 -1
  55. package/dist/load/import_map.cjs +1 -7
  56. package/dist/load/import_map.cjs.map +1 -1
  57. package/dist/load/import_map.js +1 -7
  58. package/dist/load/import_map.js.map +1 -1
  59. package/dist/messages/ai.cjs +4 -0
  60. package/dist/messages/ai.cjs.map +1 -1
  61. package/dist/messages/ai.js +4 -0
  62. package/dist/messages/ai.js.map +1 -1
  63. package/dist/messages/block_translators/anthropic.cjs +191 -144
  64. package/dist/messages/block_translators/anthropic.cjs.map +1 -1
  65. package/dist/messages/block_translators/anthropic.js +191 -144
  66. package/dist/messages/block_translators/anthropic.js.map +1 -1
  67. package/dist/messages/block_translators/index.cjs +2 -2
  68. package/dist/messages/block_translators/index.cjs.map +1 -1
  69. package/dist/messages/block_translators/index.js +4 -4
  70. package/dist/messages/block_translators/index.js.map +1 -1
  71. package/dist/messages/block_translators/openai.cjs +78 -22
  72. package/dist/messages/block_translators/openai.cjs.map +1 -1
  73. package/dist/messages/block_translators/openai.js +78 -22
  74. package/dist/messages/block_translators/openai.js.map +1 -1
  75. package/dist/messages/content/tools.cjs +1 -5
  76. package/dist/messages/content/tools.cjs.map +1 -1
  77. package/dist/messages/content/tools.d.cts +1 -85
  78. package/dist/messages/content/tools.d.cts.map +1 -1
  79. package/dist/messages/content/tools.d.ts +1 -85
  80. package/dist/messages/content/tools.d.ts.map +1 -1
  81. package/dist/messages/content/tools.js +1 -5
  82. package/dist/messages/content/tools.js.map +1 -1
  83. package/dist/messages/metadata.cjs.map +1 -1
  84. package/dist/messages/metadata.d.cts +3 -0
  85. package/dist/messages/metadata.d.cts.map +1 -1
  86. package/dist/messages/metadata.d.ts +3 -0
  87. package/dist/messages/metadata.d.ts.map +1 -1
  88. package/dist/messages/metadata.js.map +1 -1
  89. package/dist/messages/tool.cjs +2 -0
  90. package/dist/messages/tool.cjs.map +1 -1
  91. package/dist/messages/tool.d.cts +2 -0
  92. package/dist/messages/tool.d.cts.map +1 -1
  93. package/dist/messages/tool.d.ts +2 -0
  94. package/dist/messages/tool.d.ts.map +1 -1
  95. package/dist/messages/tool.js +2 -0
  96. package/dist/messages/tool.js.map +1 -1
  97. package/dist/output_parsers/json.cjs +5 -0
  98. package/dist/output_parsers/json.cjs.map +1 -1
  99. package/dist/output_parsers/json.d.cts +2 -0
  100. package/dist/output_parsers/json.d.cts.map +1 -1
  101. package/dist/output_parsers/json.d.ts +2 -0
  102. package/dist/output_parsers/json.d.ts.map +1 -1
  103. package/dist/output_parsers/json.js +5 -0
  104. package/dist/output_parsers/json.js.map +1 -1
  105. package/dist/prompts/base.cjs +0 -36
  106. package/dist/prompts/base.cjs.map +1 -1
  107. package/dist/prompts/base.d.cts +0 -16
  108. package/dist/prompts/base.d.cts.map +1 -1
  109. package/dist/prompts/base.d.ts +0 -16
  110. package/dist/prompts/base.d.ts.map +1 -1
  111. package/dist/prompts/base.js +0 -36
  112. package/dist/prompts/base.js.map +1 -1
  113. package/dist/prompts/chat.cjs +1 -5
  114. package/dist/prompts/chat.cjs.map +1 -1
  115. package/dist/prompts/chat.d.cts +1 -4
  116. package/dist/prompts/chat.d.cts.map +1 -1
  117. package/dist/prompts/chat.d.ts +1 -4
  118. package/dist/prompts/chat.d.ts.map +1 -1
  119. package/dist/prompts/chat.js +1 -5
  120. package/dist/prompts/chat.js.map +1 -1
  121. package/dist/prompts/dict.d.cts +1 -1
  122. package/dist/prompts/dict.d.ts +1 -1
  123. package/dist/prompts/few_shot.d.cts +2 -2
  124. package/dist/prompts/few_shot.d.ts +2 -2
  125. package/dist/prompts/image.d.cts +1 -1
  126. package/dist/prompts/image.d.ts +1 -1
  127. package/dist/prompts/index.d.cts +2 -2
  128. package/dist/prompts/index.d.ts +2 -2
  129. package/dist/prompts/pipeline.d.cts +1 -1
  130. package/dist/prompts/pipeline.d.ts +1 -1
  131. package/dist/prompts/prompt.d.cts +2 -2
  132. package/dist/prompts/prompt.d.ts +2 -2
  133. package/dist/retrievers/index.cjs +3 -18
  134. package/dist/retrievers/index.cjs.map +1 -1
  135. package/dist/retrievers/index.d.cts +2 -27
  136. package/dist/retrievers/index.d.cts.map +1 -1
  137. package/dist/retrievers/index.d.ts +2 -27
  138. package/dist/retrievers/index.d.ts.map +1 -1
  139. package/dist/retrievers/index.js +3 -18
  140. package/dist/retrievers/index.js.map +1 -1
  141. package/dist/runnables/base.cjs +24 -63
  142. package/dist/runnables/base.cjs.map +1 -1
  143. package/dist/runnables/base.d.cts +10 -39
  144. package/dist/runnables/base.d.cts.map +1 -1
  145. package/dist/runnables/base.d.ts +10 -39
  146. package/dist/runnables/base.d.ts.map +1 -1
  147. package/dist/runnables/base.js +24 -63
  148. package/dist/runnables/base.js.map +1 -1
  149. package/dist/runnables/graph.cjs +1 -1
  150. package/dist/runnables/graph.cjs.map +1 -1
  151. package/dist/runnables/graph.js +2 -2
  152. package/dist/runnables/graph.js.map +1 -1
  153. package/dist/runnables/graph_mermaid.cjs +1 -10
  154. package/dist/runnables/graph_mermaid.cjs.map +1 -1
  155. package/dist/runnables/graph_mermaid.js +1 -10
  156. package/dist/runnables/graph_mermaid.js.map +1 -1
  157. package/dist/runnables/history.cjs +1 -1
  158. package/dist/runnables/history.cjs.map +1 -1
  159. package/dist/runnables/history.d.cts +2 -2
  160. package/dist/runnables/history.d.cts.map +1 -1
  161. package/dist/runnables/history.d.ts +2 -2
  162. package/dist/runnables/history.d.ts.map +1 -1
  163. package/dist/runnables/history.js +1 -1
  164. package/dist/runnables/history.js.map +1 -1
  165. package/dist/stores.cjs.map +1 -1
  166. package/dist/stores.d.cts +3 -29
  167. package/dist/stores.d.cts.map +1 -1
  168. package/dist/stores.d.ts +3 -29
  169. package/dist/stores.d.ts.map +1 -1
  170. package/dist/stores.js.map +1 -1
  171. package/dist/tools/index.cjs +12 -4
  172. package/dist/tools/index.cjs.map +1 -1
  173. package/dist/tools/index.js +12 -4
  174. package/dist/tools/index.js.map +1 -1
  175. package/dist/tools/types.cjs.map +1 -1
  176. package/dist/tools/types.d.cts +4 -0
  177. package/dist/tools/types.d.cts.map +1 -1
  178. package/dist/tools/types.d.ts +4 -0
  179. package/dist/tools/types.d.ts.map +1 -1
  180. package/dist/tools/types.js.map +1 -1
  181. package/dist/tracers/base.cjs +1 -1
  182. package/dist/tracers/base.cjs.map +1 -1
  183. package/dist/tracers/base.d.cts +1 -1
  184. package/dist/tracers/base.js +2 -2
  185. package/dist/tracers/base.js.map +1 -1
  186. package/dist/tracers/log_stream.d.cts +1 -1
  187. package/dist/tracers/log_stream.d.ts +1 -1
  188. package/dist/tracers/tracer_langchain.cjs +1 -0
  189. package/dist/tracers/tracer_langchain.cjs.map +1 -1
  190. package/dist/tracers/tracer_langchain.d.cts +2 -2
  191. package/dist/tracers/tracer_langchain.js +1 -0
  192. package/dist/tracers/tracer_langchain.js.map +1 -1
  193. package/dist/utils/env.cjs +1 -9
  194. package/dist/utils/env.cjs.map +1 -1
  195. package/dist/utils/env.d.cts +2 -6
  196. package/dist/utils/env.d.cts.map +1 -1
  197. package/dist/utils/env.d.ts +2 -6
  198. package/dist/utils/env.d.ts.map +1 -1
  199. package/dist/utils/env.js +2 -9
  200. package/dist/utils/env.js.map +1 -1
  201. package/dist/utils/testing/message_history.cjs +1 -1
  202. package/dist/utils/testing/message_history.cjs.map +1 -1
  203. package/dist/utils/testing/message_history.d.cts +1 -1
  204. package/dist/utils/testing/message_history.d.cts.map +1 -1
  205. package/dist/utils/testing/message_history.d.ts +1 -1
  206. package/dist/utils/testing/message_history.d.ts.map +1 -1
  207. package/dist/utils/testing/message_history.js +1 -1
  208. package/dist/utils/testing/message_history.js.map +1 -1
  209. package/dist/utils/types/index.cjs +6 -0
  210. package/dist/utils/types/index.d.cts +2 -2
  211. package/dist/utils/types/index.d.ts +2 -2
  212. package/dist/utils/types/index.js +5 -2
  213. package/dist/utils/types/zod.cjs +23 -0
  214. package/dist/utils/types/zod.cjs.map +1 -1
  215. package/dist/utils/types/zod.d.cts +11 -1
  216. package/dist/utils/types/zod.d.cts.map +1 -1
  217. package/dist/utils/types/zod.d.ts +11 -1
  218. package/dist/utils/types/zod.d.ts.map +1 -1
  219. package/dist/utils/types/zod.js +21 -1
  220. package/dist/utils/types/zod.js.map +1 -1
  221. package/package.json +121 -154
  222. package/dist/runnables/remote.cjs +0 -399
  223. package/dist/runnables/remote.cjs.map +0 -1
  224. package/dist/runnables/remote.d.cts +0 -73
  225. package/dist/runnables/remote.d.cts.map +0 -1
  226. package/dist/runnables/remote.d.ts +0 -73
  227. package/dist/runnables/remote.d.ts.map +0 -1
  228. package/dist/runnables/remote.js +0 -393
  229. package/dist/runnables/remote.js.map +0 -1
  230. package/dist/tracers/initialize.cjs +0 -46
  231. package/dist/tracers/initialize.cjs.map +0 -1
  232. package/dist/tracers/initialize.d.cts +0 -26
  233. package/dist/tracers/initialize.d.cts.map +0 -1
  234. package/dist/tracers/initialize.d.ts +0 -26
  235. package/dist/tracers/initialize.d.ts.map +0 -1
  236. package/dist/tracers/initialize.js +0 -39
  237. package/dist/tracers/initialize.js.map +0 -1
  238. package/dist/tracers/tracer_langchain_v1.cjs +0 -168
  239. package/dist/tracers/tracer_langchain_v1.cjs.map +0 -1
  240. package/dist/tracers/tracer_langchain_v1.d.cts +0 -64
  241. package/dist/tracers/tracer_langchain_v1.d.cts.map +0 -1
  242. package/dist/tracers/tracer_langchain_v1.d.ts +0 -64
  243. package/dist/tracers/tracer_langchain_v1.d.ts.map +0 -1
  244. package/dist/tracers/tracer_langchain_v1.js +0 -162
  245. package/dist/tracers/tracer_langchain_v1.js.map +0 -1
@@ -1,168 +0,0 @@
1
- const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
- const require_utils = require('../messages/utils.cjs');
3
- const require_utils_env = require('../utils/env.cjs');
4
- const require_tracers_base = require('./base.cjs');
5
-
6
- //#region src/tracers/tracer_langchain_v1.ts
7
- var tracer_langchain_v1_exports = {};
8
- require_rolldown_runtime.__export(tracer_langchain_v1_exports, { LangChainTracerV1: () => LangChainTracerV1 });
9
- /** @deprecated Use LangChainTracer instead. */
10
- var LangChainTracerV1 = class extends require_tracers_base.BaseTracer {
11
- name = "langchain_tracer";
12
- endpoint = require_utils_env.getEnvironmentVariable("LANGCHAIN_ENDPOINT") || "http://localhost:1984";
13
- headers = { "Content-Type": "application/json" };
14
- session;
15
- constructor() {
16
- super();
17
- const apiKey = require_utils_env.getEnvironmentVariable("LANGCHAIN_API_KEY");
18
- if (apiKey) this.headers["x-api-key"] = apiKey;
19
- }
20
- async newSession(sessionName) {
21
- const sessionCreate = {
22
- start_time: Date.now(),
23
- name: sessionName
24
- };
25
- const session = await this.persistSession(sessionCreate);
26
- this.session = session;
27
- return session;
28
- }
29
- async loadSession(sessionName) {
30
- const endpoint = `${this.endpoint}/sessions?name=${sessionName}`;
31
- return this._handleSessionResponse(endpoint);
32
- }
33
- async loadDefaultSession() {
34
- const endpoint = `${this.endpoint}/sessions?name=default`;
35
- return this._handleSessionResponse(endpoint);
36
- }
37
- async convertV2RunToRun(run) {
38
- const session = this.session ?? await this.loadDefaultSession();
39
- const serialized = run.serialized;
40
- let runResult;
41
- if (run.run_type === "llm") {
42
- const prompts = run.inputs.prompts ? run.inputs.prompts : run.inputs.messages.map((x) => require_utils.getBufferString(x));
43
- const llmRun = {
44
- uuid: run.id,
45
- start_time: run.start_time,
46
- end_time: run.end_time,
47
- execution_order: run.execution_order,
48
- child_execution_order: run.child_execution_order,
49
- serialized,
50
- type: run.run_type,
51
- session_id: session.id,
52
- prompts,
53
- response: run.outputs
54
- };
55
- runResult = llmRun;
56
- } else if (run.run_type === "chain") {
57
- const child_runs = await Promise.all(run.child_runs.map((child_run) => this.convertV2RunToRun(child_run)));
58
- const chainRun = {
59
- uuid: run.id,
60
- start_time: run.start_time,
61
- end_time: run.end_time,
62
- execution_order: run.execution_order,
63
- child_execution_order: run.child_execution_order,
64
- serialized,
65
- type: run.run_type,
66
- session_id: session.id,
67
- inputs: run.inputs,
68
- outputs: run.outputs,
69
- child_llm_runs: child_runs.filter((child_run) => child_run.type === "llm"),
70
- child_chain_runs: child_runs.filter((child_run) => child_run.type === "chain"),
71
- child_tool_runs: child_runs.filter((child_run) => child_run.type === "tool")
72
- };
73
- runResult = chainRun;
74
- } else if (run.run_type === "tool") {
75
- const child_runs = await Promise.all(run.child_runs.map((child_run) => this.convertV2RunToRun(child_run)));
76
- const toolRun = {
77
- uuid: run.id,
78
- start_time: run.start_time,
79
- end_time: run.end_time,
80
- execution_order: run.execution_order,
81
- child_execution_order: run.child_execution_order,
82
- serialized,
83
- type: run.run_type,
84
- session_id: session.id,
85
- tool_input: run.inputs.input,
86
- output: run.outputs?.output,
87
- action: JSON.stringify(serialized),
88
- child_llm_runs: child_runs.filter((child_run) => child_run.type === "llm"),
89
- child_chain_runs: child_runs.filter((child_run) => child_run.type === "chain"),
90
- child_tool_runs: child_runs.filter((child_run) => child_run.type === "tool")
91
- };
92
- runResult = toolRun;
93
- } else throw new Error(`Unknown run type: ${run.run_type}`);
94
- return runResult;
95
- }
96
- async persistRun(run) {
97
- let endpoint;
98
- let v1Run;
99
- if (run.run_type !== void 0) v1Run = await this.convertV2RunToRun(run);
100
- else v1Run = run;
101
- if (v1Run.type === "llm") endpoint = `${this.endpoint}/llm-runs`;
102
- else if (v1Run.type === "chain") endpoint = `${this.endpoint}/chain-runs`;
103
- else endpoint = `${this.endpoint}/tool-runs`;
104
- const response = await fetch(endpoint, {
105
- method: "POST",
106
- headers: this.headers,
107
- body: JSON.stringify(v1Run)
108
- });
109
- if (!response.ok) console.error(`Failed to persist run: ${response.status} ${response.statusText}`);
110
- }
111
- async persistSession(sessionCreate) {
112
- const endpoint = `${this.endpoint}/sessions`;
113
- const response = await fetch(endpoint, {
114
- method: "POST",
115
- headers: this.headers,
116
- body: JSON.stringify(sessionCreate)
117
- });
118
- if (!response.ok) {
119
- console.error(`Failed to persist session: ${response.status} ${response.statusText}, using default session.`);
120
- return {
121
- id: 1,
122
- ...sessionCreate
123
- };
124
- }
125
- return {
126
- id: (await response.json()).id,
127
- ...sessionCreate
128
- };
129
- }
130
- async _handleSessionResponse(endpoint) {
131
- const response = await fetch(endpoint, {
132
- method: "GET",
133
- headers: this.headers
134
- });
135
- let tracerSession;
136
- if (!response.ok) {
137
- console.error(`Failed to load session: ${response.status} ${response.statusText}`);
138
- tracerSession = {
139
- id: 1,
140
- start_time: Date.now()
141
- };
142
- this.session = tracerSession;
143
- return tracerSession;
144
- }
145
- const resp = await response.json();
146
- if (resp.length === 0) {
147
- tracerSession = {
148
- id: 1,
149
- start_time: Date.now()
150
- };
151
- this.session = tracerSession;
152
- return tracerSession;
153
- }
154
- [tracerSession] = resp;
155
- this.session = tracerSession;
156
- return tracerSession;
157
- }
158
- };
159
-
160
- //#endregion
161
- exports.LangChainTracerV1 = LangChainTracerV1;
162
- Object.defineProperty(exports, 'tracer_langchain_v1_exports', {
163
- enumerable: true,
164
- get: function () {
165
- return tracer_langchain_v1_exports;
166
- }
167
- });
168
- //# sourceMappingURL=tracer_langchain_v1.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracer_langchain_v1.cjs","names":["BaseTracer","getEnvironmentVariable","sessionName?: string","sessionCreate: TracerSessionCreate","sessionName: string","run: Run","runResult: LLMRun | ChainRun | ToolRun","prompts: string[]","getBufferString","llmRun: LLMRun","chainRun: ChainRun","toolRun: ToolRun","run: Run | LLMRun | ChainRun | ToolRun","v1Run: LLMRun | ChainRun | ToolRun","sessionCreate: BaseTracerSession","endpoint: string","tracerSession: TracerSessionV1"],"sources":["../../src/tracers/tracer_langchain_v1.ts"],"sourcesContent":["import type { ChainValues } from \"../utils/types/index.js\";\nimport { type BaseMessage } from \"../messages/base.js\";\nimport { getBufferString } from \"../messages/utils.js\";\nimport type { LLMResult } from \"../outputs.js\";\nimport { getEnvironmentVariable } from \"../utils/env.js\";\n\nimport { BaseTracer, type RunType, type Run } from \"./base.js\";\n\nexport interface BaseRunV1 {\n uuid: string;\n parent_uuid?: string;\n start_time: number;\n end_time?: number;\n execution_order: number;\n child_execution_order: number;\n serialized: { name: string };\n session_id: number;\n error?: string;\n type: RunType;\n}\n\nexport interface LLMRun extends BaseRunV1 {\n prompts: string[];\n response?: LLMResult;\n}\n\nexport interface ChainRun extends BaseRunV1 {\n inputs: ChainValues;\n outputs?: ChainValues;\n child_llm_runs: LLMRun[];\n child_chain_runs: ChainRun[];\n child_tool_runs: ToolRun[];\n}\n\nexport interface ToolRun extends BaseRunV1 {\n tool_input: string;\n output?: string;\n action: string;\n child_llm_runs: LLMRun[];\n child_chain_runs: ChainRun[];\n child_tool_runs: ToolRun[];\n}\n\nexport interface BaseTracerSession {\n start_time: number;\n name?: string;\n}\n\nexport type TracerSessionCreate = BaseTracerSession;\n\nexport interface TracerSessionV1 extends BaseTracerSession {\n id: number;\n}\n\n/** @deprecated Use LangChainTracer instead. */\nexport class LangChainTracerV1 extends BaseTracer {\n name = \"langchain_tracer\";\n\n protected endpoint =\n getEnvironmentVariable(\"LANGCHAIN_ENDPOINT\") || \"http://localhost:1984\";\n\n protected headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n\n protected session: TracerSessionV1;\n\n constructor() {\n super();\n const apiKey = getEnvironmentVariable(\"LANGCHAIN_API_KEY\");\n if (apiKey) {\n this.headers[\"x-api-key\"] = apiKey;\n }\n }\n\n async newSession(sessionName?: string): Promise<TracerSessionV1> {\n const sessionCreate: TracerSessionCreate = {\n start_time: Date.now(),\n name: sessionName,\n };\n const session = await this.persistSession(sessionCreate);\n this.session = session;\n return session;\n }\n\n async loadSession(sessionName: string): Promise<TracerSessionV1> {\n const endpoint = `${this.endpoint}/sessions?name=${sessionName}`;\n return this._handleSessionResponse(endpoint);\n }\n\n async loadDefaultSession(): Promise<TracerSessionV1> {\n const endpoint = `${this.endpoint}/sessions?name=default`;\n return this._handleSessionResponse(endpoint);\n }\n\n protected async convertV2RunToRun(\n run: Run\n ): Promise<LLMRun | ChainRun | ToolRun> {\n const session = this.session ?? (await this.loadDefaultSession());\n const serialized = run.serialized as { name: string };\n let runResult: LLMRun | ChainRun | ToolRun;\n if (run.run_type === \"llm\") {\n const prompts: string[] = run.inputs.prompts\n ? run.inputs.prompts\n : (run.inputs.messages as BaseMessage[][]).map((x) =>\n getBufferString(x)\n );\n\n const llmRun: LLMRun = {\n uuid: run.id,\n start_time: run.start_time,\n end_time: run.end_time,\n execution_order: run.execution_order,\n child_execution_order: run.child_execution_order,\n serialized,\n type: run.run_type,\n session_id: session.id,\n prompts,\n response: run.outputs as LLMResult,\n };\n runResult = llmRun;\n } else if (run.run_type === \"chain\") {\n const child_runs = await Promise.all(\n run.child_runs.map((child_run) => this.convertV2RunToRun(child_run))\n );\n const chainRun: ChainRun = {\n uuid: run.id,\n start_time: run.start_time,\n end_time: run.end_time,\n execution_order: run.execution_order,\n child_execution_order: run.child_execution_order,\n serialized,\n type: run.run_type,\n session_id: session.id,\n inputs: run.inputs,\n outputs: run.outputs,\n child_llm_runs: child_runs.filter(\n (child_run) => child_run.type === \"llm\"\n ) as LLMRun[],\n child_chain_runs: child_runs.filter(\n (child_run) => child_run.type === \"chain\"\n ) as ChainRun[],\n child_tool_runs: child_runs.filter(\n (child_run) => child_run.type === \"tool\"\n ) as ToolRun[],\n };\n\n runResult = chainRun;\n } else if (run.run_type === \"tool\") {\n const child_runs = await Promise.all(\n run.child_runs.map((child_run) => this.convertV2RunToRun(child_run))\n );\n const toolRun: ToolRun = {\n uuid: run.id,\n start_time: run.start_time,\n end_time: run.end_time,\n execution_order: run.execution_order,\n child_execution_order: run.child_execution_order,\n serialized,\n type: run.run_type,\n session_id: session.id,\n tool_input: run.inputs.input,\n output: run.outputs?.output,\n action: JSON.stringify(serialized),\n child_llm_runs: child_runs.filter(\n (child_run) => child_run.type === \"llm\"\n ) as LLMRun[],\n child_chain_runs: child_runs.filter(\n (child_run) => child_run.type === \"chain\"\n ) as ChainRun[],\n child_tool_runs: child_runs.filter(\n (child_run) => child_run.type === \"tool\"\n ) as ToolRun[],\n };\n\n runResult = toolRun;\n } else {\n throw new Error(`Unknown run type: ${run.run_type}`);\n }\n return runResult;\n }\n\n protected async persistRun(\n run: Run | LLMRun | ChainRun | ToolRun\n ): Promise<void> {\n let endpoint;\n let v1Run: LLMRun | ChainRun | ToolRun;\n if ((run as Run).run_type !== undefined) {\n v1Run = await this.convertV2RunToRun(run as Run);\n } else {\n v1Run = run as LLMRun | ChainRun | ToolRun;\n }\n if (v1Run.type === \"llm\") {\n endpoint = `${this.endpoint}/llm-runs`;\n } else if (v1Run.type === \"chain\") {\n endpoint = `${this.endpoint}/chain-runs`;\n } else {\n endpoint = `${this.endpoint}/tool-runs`;\n }\n\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: this.headers,\n body: JSON.stringify(v1Run),\n });\n if (!response.ok) {\n console.error(\n `Failed to persist run: ${response.status} ${response.statusText}`\n );\n }\n }\n\n protected async persistSession(\n sessionCreate: BaseTracerSession\n ): Promise<TracerSessionV1> {\n const endpoint = `${this.endpoint}/sessions`;\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: this.headers,\n body: JSON.stringify(sessionCreate),\n });\n if (!response.ok) {\n console.error(\n `Failed to persist session: ${response.status} ${response.statusText}, using default session.`\n );\n return {\n id: 1,\n ...sessionCreate,\n };\n }\n return {\n id: (await response.json()).id,\n ...sessionCreate,\n };\n }\n\n protected async _handleSessionResponse(\n endpoint: string\n ): Promise<TracerSessionV1> {\n const response = await fetch(endpoint, {\n method: \"GET\",\n headers: this.headers,\n });\n let tracerSession: TracerSessionV1;\n if (!response.ok) {\n console.error(\n `Failed to load session: ${response.status} ${response.statusText}`\n );\n tracerSession = {\n id: 1,\n start_time: Date.now(),\n };\n this.session = tracerSession;\n return tracerSession;\n }\n const resp = (await response.json()) as TracerSessionV1[];\n if (resp.length === 0) {\n tracerSession = {\n id: 1,\n start_time: Date.now(),\n };\n this.session = tracerSession;\n return tracerSession;\n }\n [tracerSession] = resp;\n this.session = tracerSession;\n return tracerSession;\n }\n}\n"],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- import { LLMResult } from "../outputs.cjs";
2
- import { ChainValues } from "../utils/types/index.cjs";
3
- import { BaseTracer, Run, RunType } from "./base.cjs";
4
-
5
- //#region src/tracers/tracer_langchain_v1.d.ts
6
- interface BaseRunV1 {
7
- uuid: string;
8
- parent_uuid?: string;
9
- start_time: number;
10
- end_time?: number;
11
- execution_order: number;
12
- child_execution_order: number;
13
- serialized: {
14
- name: string;
15
- };
16
- session_id: number;
17
- error?: string;
18
- type: RunType;
19
- }
20
- interface LLMRun extends BaseRunV1 {
21
- prompts: string[];
22
- response?: LLMResult;
23
- }
24
- interface ChainRun extends BaseRunV1 {
25
- inputs: ChainValues;
26
- outputs?: ChainValues;
27
- child_llm_runs: LLMRun[];
28
- child_chain_runs: ChainRun[];
29
- child_tool_runs: ToolRun[];
30
- }
31
- interface ToolRun extends BaseRunV1 {
32
- tool_input: string;
33
- output?: string;
34
- action: string;
35
- child_llm_runs: LLMRun[];
36
- child_chain_runs: ChainRun[];
37
- child_tool_runs: ToolRun[];
38
- }
39
- interface BaseTracerSession {
40
- start_time: number;
41
- name?: string;
42
- }
43
- type TracerSessionCreate = BaseTracerSession;
44
- interface TracerSessionV1 extends BaseTracerSession {
45
- id: number;
46
- }
47
- /** @deprecated Use LangChainTracer instead. */
48
- declare class LangChainTracerV1 extends BaseTracer {
49
- name: string;
50
- protected endpoint: string;
51
- protected headers: Record<string, string>;
52
- protected session: TracerSessionV1;
53
- constructor();
54
- newSession(sessionName?: string): Promise<TracerSessionV1>;
55
- loadSession(sessionName: string): Promise<TracerSessionV1>;
56
- loadDefaultSession(): Promise<TracerSessionV1>;
57
- protected convertV2RunToRun(run: Run): Promise<LLMRun | ChainRun | ToolRun>;
58
- protected persistRun(run: Run | LLMRun | ChainRun | ToolRun): Promise<void>;
59
- protected persistSession(sessionCreate: BaseTracerSession): Promise<TracerSessionV1>;
60
- protected _handleSessionResponse(endpoint: string): Promise<TracerSessionV1>;
61
- }
62
- //#endregion
63
- export { BaseRunV1, BaseTracerSession, ChainRun, LLMRun, LangChainTracerV1, ToolRun, TracerSessionCreate, TracerSessionV1 };
64
- //# sourceMappingURL=tracer_langchain_v1.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracer_langchain_v1.d.cts","names":["ChainValues","LLMResult","BaseTracer","RunType","Run","BaseRunV1","LLMRun","ChainRun","ToolRun","BaseTracerSession","TracerSessionCreate","TracerSessionV1","LangChainTracerV1","Record","Promise"],"sources":["../../src/tracers/tracer_langchain_v1.d.ts"],"sourcesContent":["import type { ChainValues } from \"../utils/types/index.js\";\nimport type { LLMResult } from \"../outputs.js\";\nimport { BaseTracer, type RunType, type Run } from \"./base.js\";\nexport interface BaseRunV1 {\n uuid: string;\n parent_uuid?: string;\n start_time: number;\n end_time?: number;\n execution_order: number;\n child_execution_order: number;\n serialized: {\n name: string;\n };\n session_id: number;\n error?: string;\n type: RunType;\n}\nexport interface LLMRun extends BaseRunV1 {\n prompts: string[];\n response?: LLMResult;\n}\nexport interface ChainRun extends BaseRunV1 {\n inputs: ChainValues;\n outputs?: ChainValues;\n child_llm_runs: LLMRun[];\n child_chain_runs: ChainRun[];\n child_tool_runs: ToolRun[];\n}\nexport interface ToolRun extends BaseRunV1 {\n tool_input: string;\n output?: string;\n action: string;\n child_llm_runs: LLMRun[];\n child_chain_runs: ChainRun[];\n child_tool_runs: ToolRun[];\n}\nexport interface BaseTracerSession {\n start_time: number;\n name?: string;\n}\nexport type TracerSessionCreate = BaseTracerSession;\nexport interface TracerSessionV1 extends BaseTracerSession {\n id: number;\n}\n/** @deprecated Use LangChainTracer instead. */\nexport declare class LangChainTracerV1 extends BaseTracer {\n name: string;\n protected endpoint: string;\n protected headers: Record<string, string>;\n protected session: TracerSessionV1;\n constructor();\n newSession(sessionName?: string): Promise<TracerSessionV1>;\n loadSession(sessionName: string): Promise<TracerSessionV1>;\n loadDefaultSession(): Promise<TracerSessionV1>;\n protected convertV2RunToRun(run: Run): Promise<LLMRun | ChainRun | ToolRun>;\n protected persistRun(run: Run | LLMRun | ChainRun | ToolRun): Promise<void>;\n protected persistSession(sessionCreate: BaseTracerSession): Promise<TracerSessionV1>;\n protected _handleSessionResponse(endpoint: string): Promise<TracerSessionV1>;\n}\n"],"mappings":";;;;;UAGiBK,SAAAA;;EAAAA,WAAAA,CAAS,EAAA,MAAA;EAcTC,UAAM,EAAA,MAAA;EAAA,QAAA,CAAA,EAAA,MAAA;EAAA,eAERL,EAAAA,MAAAA;EAAS,qBAFQI,EAAAA,MAAAA;EAAS,UAAA,EAAA;IAIxBE,IAAAA,EAAAA,MAAQ;EAAA,CAAA;EAAA,UACbP,EAAAA,MAAAA;EAAW,KACTA,CAAAA,EAAAA,MAAAA;EAAW,IACLM,EATVH,OASUG;;AAECE,UATJF,MAAAA,SAAeD,SASXG,CAAAA;EAAO,OALMH,EAAAA,MAAAA,EAAAA;EAAS,QAAA,CAAA,EAF5BJ,SAE4B;AAO3C;AAAwB,UAPPM,QAAAA,SAAiBF,SAOV,CAAA;EAAA,MAIJC,EAVRN,WAUQM;EAAM,OACJC,CAAAA,EAVRP,WAUQO;EAAQ,cACTC,EAVDF,MAUCE,EAAAA;EAAO,gBANKH,EAHXE,QAGWF,EAAAA;EAAS,eAAA,EAFrBG,OAEqB,EAAA;AAQ1C;AAIYE,UAZKF,OAAAA,SAAgBH,SAYCI,CAAAA;EACjBE,UAAAA,EAAAA,MAAe;EAIXC,MAAAA,CAAAA,EAAAA,MAAAA;EAAiB,MAAA,EAAA,MAAA;EAAA,cAGfC,EAhBHP,MAgBGO,EAAAA;EAAM,gBACNF,EAhBDJ,QAgBCI,EAAAA;EAAe,eAEQA,EAjBzBH,OAiByBG,EAAAA;;AACAA,UAhB7BF,iBAAAA,CAgB6BE;EAAe,UAAvBG,EAAAA,MAAAA;EAAO,IACXH,CAAAA,EAAAA,MAAAA;;AACGP,KAdzBM,mBAAAA,GAAsBD,iBAcGL;AAAcE,UAblCK,eAAAA,SAAwBF,iBAaUH,CAAAA;EAAM,EAAA,EAAGC,MAAAA;;;AAC9BH,cAVTQ,iBAAAA,SAA0BV,UAAAA,CAUjBE;EAAG,IAAGE,EAAAA,MAAAA;EAAM,UAAGC,QAAAA,EAAAA,MAAAA;EAAQ,UAAGC,OAAAA,EAPjCK,MAOiCL,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA;EAAO,UAAGM,OAAAA,EAN3CH,eAM2CG;EAAO,WAC7BL,CAAAA;EAAiB,UAAWE,CAAAA,WAAAA,CAAAA,EAAAA,MAAAA,CAAAA,EALlCG,OAKkCH,CAL1BA,eAK0BA,CAAAA;EAAe,WAAvBG,CAAAA,WAAAA,EAAAA,MAAAA,CAAAA,EAJ1BA,OAI0BA,CAJlBH,eAIkBG,CAAAA;EAAO,kBACPH,CAAAA,CAAAA,EAJtCG,OAIsCH,CAJ9BA,eAI8BA,CAAAA;EAAe,UAAvBG,iBAAAA,CAAAA,GAAAA,EAHnBV,GAGmBU,CAAAA,EAHbA,OAGaA,CAHLR,MAGKQ,GAHIP,QAGJO,GAHeN,OAGfM,CAAAA;EAAO,UAZhBZ,UAAAA,CAAAA,GAAAA,EAUjBE,GAViBF,GAUXI,MAVWJ,GAUFK,QAVEL,GAUSM,OAVTN,CAAAA,EAUmBY,OAVnBZ,CAAAA,IAAAA,CAAAA;EAAU,UAAA,cAAA,CAAA,aAAA,EAWbO,iBAXa,CAAA,EAWOK,OAXP,CAWeH,eAXf,CAAA;sDAYDG,QAAQH"}
@@ -1,64 +0,0 @@
1
- import { LLMResult } from "../outputs.js";
2
- import { ChainValues } from "../utils/types/index.js";
3
- import { BaseTracer, Run, RunType } from "./base.js";
4
-
5
- //#region src/tracers/tracer_langchain_v1.d.ts
6
- interface BaseRunV1 {
7
- uuid: string;
8
- parent_uuid?: string;
9
- start_time: number;
10
- end_time?: number;
11
- execution_order: number;
12
- child_execution_order: number;
13
- serialized: {
14
- name: string;
15
- };
16
- session_id: number;
17
- error?: string;
18
- type: RunType;
19
- }
20
- interface LLMRun extends BaseRunV1 {
21
- prompts: string[];
22
- response?: LLMResult;
23
- }
24
- interface ChainRun extends BaseRunV1 {
25
- inputs: ChainValues;
26
- outputs?: ChainValues;
27
- child_llm_runs: LLMRun[];
28
- child_chain_runs: ChainRun[];
29
- child_tool_runs: ToolRun[];
30
- }
31
- interface ToolRun extends BaseRunV1 {
32
- tool_input: string;
33
- output?: string;
34
- action: string;
35
- child_llm_runs: LLMRun[];
36
- child_chain_runs: ChainRun[];
37
- child_tool_runs: ToolRun[];
38
- }
39
- interface BaseTracerSession {
40
- start_time: number;
41
- name?: string;
42
- }
43
- type TracerSessionCreate = BaseTracerSession;
44
- interface TracerSessionV1 extends BaseTracerSession {
45
- id: number;
46
- }
47
- /** @deprecated Use LangChainTracer instead. */
48
- declare class LangChainTracerV1 extends BaseTracer {
49
- name: string;
50
- protected endpoint: string;
51
- protected headers: Record<string, string>;
52
- protected session: TracerSessionV1;
53
- constructor();
54
- newSession(sessionName?: string): Promise<TracerSessionV1>;
55
- loadSession(sessionName: string): Promise<TracerSessionV1>;
56
- loadDefaultSession(): Promise<TracerSessionV1>;
57
- protected convertV2RunToRun(run: Run): Promise<LLMRun | ChainRun | ToolRun>;
58
- protected persistRun(run: Run | LLMRun | ChainRun | ToolRun): Promise<void>;
59
- protected persistSession(sessionCreate: BaseTracerSession): Promise<TracerSessionV1>;
60
- protected _handleSessionResponse(endpoint: string): Promise<TracerSessionV1>;
61
- }
62
- //#endregion
63
- export { BaseRunV1, BaseTracerSession, ChainRun, LLMRun, LangChainTracerV1, ToolRun, TracerSessionCreate, TracerSessionV1 };
64
- //# sourceMappingURL=tracer_langchain_v1.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracer_langchain_v1.d.ts","names":["ChainValues","LLMResult","BaseTracer","RunType","Run","BaseRunV1","LLMRun","ChainRun","ToolRun","BaseTracerSession","TracerSessionCreate","TracerSessionV1","LangChainTracerV1","Record","Promise"],"sources":["../../src/tracers/tracer_langchain_v1.d.ts"],"sourcesContent":["import type { ChainValues } from \"../utils/types/index.js\";\nimport type { LLMResult } from \"../outputs.js\";\nimport { BaseTracer, type RunType, type Run } from \"./base.js\";\nexport interface BaseRunV1 {\n uuid: string;\n parent_uuid?: string;\n start_time: number;\n end_time?: number;\n execution_order: number;\n child_execution_order: number;\n serialized: {\n name: string;\n };\n session_id: number;\n error?: string;\n type: RunType;\n}\nexport interface LLMRun extends BaseRunV1 {\n prompts: string[];\n response?: LLMResult;\n}\nexport interface ChainRun extends BaseRunV1 {\n inputs: ChainValues;\n outputs?: ChainValues;\n child_llm_runs: LLMRun[];\n child_chain_runs: ChainRun[];\n child_tool_runs: ToolRun[];\n}\nexport interface ToolRun extends BaseRunV1 {\n tool_input: string;\n output?: string;\n action: string;\n child_llm_runs: LLMRun[];\n child_chain_runs: ChainRun[];\n child_tool_runs: ToolRun[];\n}\nexport interface BaseTracerSession {\n start_time: number;\n name?: string;\n}\nexport type TracerSessionCreate = BaseTracerSession;\nexport interface TracerSessionV1 extends BaseTracerSession {\n id: number;\n}\n/** @deprecated Use LangChainTracer instead. */\nexport declare class LangChainTracerV1 extends BaseTracer {\n name: string;\n protected endpoint: string;\n protected headers: Record<string, string>;\n protected session: TracerSessionV1;\n constructor();\n newSession(sessionName?: string): Promise<TracerSessionV1>;\n loadSession(sessionName: string): Promise<TracerSessionV1>;\n loadDefaultSession(): Promise<TracerSessionV1>;\n protected convertV2RunToRun(run: Run): Promise<LLMRun | ChainRun | ToolRun>;\n protected persistRun(run: Run | LLMRun | ChainRun | ToolRun): Promise<void>;\n protected persistSession(sessionCreate: BaseTracerSession): Promise<TracerSessionV1>;\n protected _handleSessionResponse(endpoint: string): Promise<TracerSessionV1>;\n}\n"],"mappings":";;;;;UAGiBK,SAAAA;;EAAAA,WAAAA,CAAS,EAAA,MAAA;EAcTC,UAAM,EAAA,MAAA;EAAA,QAAA,CAAA,EAAA,MAAA;EAAA,eAERL,EAAAA,MAAAA;EAAS,qBAFQI,EAAAA,MAAAA;EAAS,UAAA,EAAA;IAIxBE,IAAAA,EAAAA,MAAQ;EAAA,CAAA;EAAA,UACbP,EAAAA,MAAAA;EAAW,KACTA,CAAAA,EAAAA,MAAAA;EAAW,IACLM,EATVH,OASUG;;AAECE,UATJF,MAAAA,SAAeD,SASXG,CAAAA;EAAO,OALMH,EAAAA,MAAAA,EAAAA;EAAS,QAAA,CAAA,EAF5BJ,SAE4B;AAO3C;AAAwB,UAPPM,QAAAA,SAAiBF,SAOV,CAAA;EAAA,MAIJC,EAVRN,WAUQM;EAAM,OACJC,CAAAA,EAVRP,WAUQO;EAAQ,cACTC,EAVDF,MAUCE,EAAAA;EAAO,gBANKH,EAHXE,QAGWF,EAAAA;EAAS,eAAA,EAFrBG,OAEqB,EAAA;AAQ1C;AAIYE,UAZKF,OAAAA,SAAgBH,SAYCI,CAAAA;EACjBE,UAAAA,EAAAA,MAAe;EAIXC,MAAAA,CAAAA,EAAAA,MAAAA;EAAiB,MAAA,EAAA,MAAA;EAAA,cAGfC,EAhBHP,MAgBGO,EAAAA;EAAM,gBACNF,EAhBDJ,QAgBCI,EAAAA;EAAe,eAEQA,EAjBzBH,OAiByBG,EAAAA;;AACAA,UAhB7BF,iBAAAA,CAgB6BE;EAAe,UAAvBG,EAAAA,MAAAA;EAAO,IACXH,CAAAA,EAAAA,MAAAA;;AACGP,KAdzBM,mBAAAA,GAAsBD,iBAcGL;AAAcE,UAblCK,eAAAA,SAAwBF,iBAaUH,CAAAA;EAAM,EAAA,EAAGC,MAAAA;;;AAC9BH,cAVTQ,iBAAAA,SAA0BV,UAAAA,CAUjBE;EAAG,IAAGE,EAAAA,MAAAA;EAAM,UAAGC,QAAAA,EAAAA,MAAAA;EAAQ,UAAGC,OAAAA,EAPjCK,MAOiCL,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA;EAAO,UAAGM,OAAAA,EAN3CH,eAM2CG;EAAO,WAC7BL,CAAAA;EAAiB,UAAWE,CAAAA,WAAAA,CAAAA,EAAAA,MAAAA,CAAAA,EALlCG,OAKkCH,CAL1BA,eAK0BA,CAAAA;EAAe,WAAvBG,CAAAA,WAAAA,EAAAA,MAAAA,CAAAA,EAJ1BA,OAI0BA,CAJlBH,eAIkBG,CAAAA;EAAO,kBACPH,CAAAA,CAAAA,EAJtCG,OAIsCH,CAJ9BA,eAI8BA,CAAAA;EAAe,UAAvBG,iBAAAA,CAAAA,GAAAA,EAHnBV,GAGmBU,CAAAA,EAHbA,OAGaA,CAHLR,MAGKQ,GAHIP,QAGJO,GAHeN,OAGfM,CAAAA;EAAO,UAZhBZ,UAAAA,CAAAA,GAAAA,EAUjBE,GAViBF,GAUXI,MAVWJ,GAUFK,QAVEL,GAUSM,OAVTN,CAAAA,EAUmBY,OAVnBZ,CAAAA,IAAAA,CAAAA;EAAU,UAAA,cAAA,CAAA,aAAA,EAWbO,iBAXa,CAAA,EAWOK,OAXP,CAWeH,eAXf,CAAA;sDAYDG,QAAQH"}
@@ -1,162 +0,0 @@
1
- import { __export } from "../_virtual/rolldown_runtime.js";
2
- import { getBufferString } from "../messages/utils.js";
3
- import { getEnvironmentVariable } from "../utils/env.js";
4
- import { BaseTracer } from "./base.js";
5
-
6
- //#region src/tracers/tracer_langchain_v1.ts
7
- var tracer_langchain_v1_exports = {};
8
- __export(tracer_langchain_v1_exports, { LangChainTracerV1: () => LangChainTracerV1 });
9
- /** @deprecated Use LangChainTracer instead. */
10
- var LangChainTracerV1 = class extends BaseTracer {
11
- name = "langchain_tracer";
12
- endpoint = getEnvironmentVariable("LANGCHAIN_ENDPOINT") || "http://localhost:1984";
13
- headers = { "Content-Type": "application/json" };
14
- session;
15
- constructor() {
16
- super();
17
- const apiKey = getEnvironmentVariable("LANGCHAIN_API_KEY");
18
- if (apiKey) this.headers["x-api-key"] = apiKey;
19
- }
20
- async newSession(sessionName) {
21
- const sessionCreate = {
22
- start_time: Date.now(),
23
- name: sessionName
24
- };
25
- const session = await this.persistSession(sessionCreate);
26
- this.session = session;
27
- return session;
28
- }
29
- async loadSession(sessionName) {
30
- const endpoint = `${this.endpoint}/sessions?name=${sessionName}`;
31
- return this._handleSessionResponse(endpoint);
32
- }
33
- async loadDefaultSession() {
34
- const endpoint = `${this.endpoint}/sessions?name=default`;
35
- return this._handleSessionResponse(endpoint);
36
- }
37
- async convertV2RunToRun(run) {
38
- const session = this.session ?? await this.loadDefaultSession();
39
- const serialized = run.serialized;
40
- let runResult;
41
- if (run.run_type === "llm") {
42
- const prompts = run.inputs.prompts ? run.inputs.prompts : run.inputs.messages.map((x) => getBufferString(x));
43
- const llmRun = {
44
- uuid: run.id,
45
- start_time: run.start_time,
46
- end_time: run.end_time,
47
- execution_order: run.execution_order,
48
- child_execution_order: run.child_execution_order,
49
- serialized,
50
- type: run.run_type,
51
- session_id: session.id,
52
- prompts,
53
- response: run.outputs
54
- };
55
- runResult = llmRun;
56
- } else if (run.run_type === "chain") {
57
- const child_runs = await Promise.all(run.child_runs.map((child_run) => this.convertV2RunToRun(child_run)));
58
- const chainRun = {
59
- uuid: run.id,
60
- start_time: run.start_time,
61
- end_time: run.end_time,
62
- execution_order: run.execution_order,
63
- child_execution_order: run.child_execution_order,
64
- serialized,
65
- type: run.run_type,
66
- session_id: session.id,
67
- inputs: run.inputs,
68
- outputs: run.outputs,
69
- child_llm_runs: child_runs.filter((child_run) => child_run.type === "llm"),
70
- child_chain_runs: child_runs.filter((child_run) => child_run.type === "chain"),
71
- child_tool_runs: child_runs.filter((child_run) => child_run.type === "tool")
72
- };
73
- runResult = chainRun;
74
- } else if (run.run_type === "tool") {
75
- const child_runs = await Promise.all(run.child_runs.map((child_run) => this.convertV2RunToRun(child_run)));
76
- const toolRun = {
77
- uuid: run.id,
78
- start_time: run.start_time,
79
- end_time: run.end_time,
80
- execution_order: run.execution_order,
81
- child_execution_order: run.child_execution_order,
82
- serialized,
83
- type: run.run_type,
84
- session_id: session.id,
85
- tool_input: run.inputs.input,
86
- output: run.outputs?.output,
87
- action: JSON.stringify(serialized),
88
- child_llm_runs: child_runs.filter((child_run) => child_run.type === "llm"),
89
- child_chain_runs: child_runs.filter((child_run) => child_run.type === "chain"),
90
- child_tool_runs: child_runs.filter((child_run) => child_run.type === "tool")
91
- };
92
- runResult = toolRun;
93
- } else throw new Error(`Unknown run type: ${run.run_type}`);
94
- return runResult;
95
- }
96
- async persistRun(run) {
97
- let endpoint;
98
- let v1Run;
99
- if (run.run_type !== void 0) v1Run = await this.convertV2RunToRun(run);
100
- else v1Run = run;
101
- if (v1Run.type === "llm") endpoint = `${this.endpoint}/llm-runs`;
102
- else if (v1Run.type === "chain") endpoint = `${this.endpoint}/chain-runs`;
103
- else endpoint = `${this.endpoint}/tool-runs`;
104
- const response = await fetch(endpoint, {
105
- method: "POST",
106
- headers: this.headers,
107
- body: JSON.stringify(v1Run)
108
- });
109
- if (!response.ok) console.error(`Failed to persist run: ${response.status} ${response.statusText}`);
110
- }
111
- async persistSession(sessionCreate) {
112
- const endpoint = `${this.endpoint}/sessions`;
113
- const response = await fetch(endpoint, {
114
- method: "POST",
115
- headers: this.headers,
116
- body: JSON.stringify(sessionCreate)
117
- });
118
- if (!response.ok) {
119
- console.error(`Failed to persist session: ${response.status} ${response.statusText}, using default session.`);
120
- return {
121
- id: 1,
122
- ...sessionCreate
123
- };
124
- }
125
- return {
126
- id: (await response.json()).id,
127
- ...sessionCreate
128
- };
129
- }
130
- async _handleSessionResponse(endpoint) {
131
- const response = await fetch(endpoint, {
132
- method: "GET",
133
- headers: this.headers
134
- });
135
- let tracerSession;
136
- if (!response.ok) {
137
- console.error(`Failed to load session: ${response.status} ${response.statusText}`);
138
- tracerSession = {
139
- id: 1,
140
- start_time: Date.now()
141
- };
142
- this.session = tracerSession;
143
- return tracerSession;
144
- }
145
- const resp = await response.json();
146
- if (resp.length === 0) {
147
- tracerSession = {
148
- id: 1,
149
- start_time: Date.now()
150
- };
151
- this.session = tracerSession;
152
- return tracerSession;
153
- }
154
- [tracerSession] = resp;
155
- this.session = tracerSession;
156
- return tracerSession;
157
- }
158
- };
159
-
160
- //#endregion
161
- export { LangChainTracerV1, tracer_langchain_v1_exports };
162
- //# sourceMappingURL=tracer_langchain_v1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracer_langchain_v1.js","names":["sessionName?: string","sessionCreate: TracerSessionCreate","sessionName: string","run: Run","runResult: LLMRun | ChainRun | ToolRun","prompts: string[]","llmRun: LLMRun","chainRun: ChainRun","toolRun: ToolRun","run: Run | LLMRun | ChainRun | ToolRun","v1Run: LLMRun | ChainRun | ToolRun","sessionCreate: BaseTracerSession","endpoint: string","tracerSession: TracerSessionV1"],"sources":["../../src/tracers/tracer_langchain_v1.ts"],"sourcesContent":["import type { ChainValues } from \"../utils/types/index.js\";\nimport { type BaseMessage } from \"../messages/base.js\";\nimport { getBufferString } from \"../messages/utils.js\";\nimport type { LLMResult } from \"../outputs.js\";\nimport { getEnvironmentVariable } from \"../utils/env.js\";\n\nimport { BaseTracer, type RunType, type Run } from \"./base.js\";\n\nexport interface BaseRunV1 {\n uuid: string;\n parent_uuid?: string;\n start_time: number;\n end_time?: number;\n execution_order: number;\n child_execution_order: number;\n serialized: { name: string };\n session_id: number;\n error?: string;\n type: RunType;\n}\n\nexport interface LLMRun extends BaseRunV1 {\n prompts: string[];\n response?: LLMResult;\n}\n\nexport interface ChainRun extends BaseRunV1 {\n inputs: ChainValues;\n outputs?: ChainValues;\n child_llm_runs: LLMRun[];\n child_chain_runs: ChainRun[];\n child_tool_runs: ToolRun[];\n}\n\nexport interface ToolRun extends BaseRunV1 {\n tool_input: string;\n output?: string;\n action: string;\n child_llm_runs: LLMRun[];\n child_chain_runs: ChainRun[];\n child_tool_runs: ToolRun[];\n}\n\nexport interface BaseTracerSession {\n start_time: number;\n name?: string;\n}\n\nexport type TracerSessionCreate = BaseTracerSession;\n\nexport interface TracerSessionV1 extends BaseTracerSession {\n id: number;\n}\n\n/** @deprecated Use LangChainTracer instead. */\nexport class LangChainTracerV1 extends BaseTracer {\n name = \"langchain_tracer\";\n\n protected endpoint =\n getEnvironmentVariable(\"LANGCHAIN_ENDPOINT\") || \"http://localhost:1984\";\n\n protected headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n\n protected session: TracerSessionV1;\n\n constructor() {\n super();\n const apiKey = getEnvironmentVariable(\"LANGCHAIN_API_KEY\");\n if (apiKey) {\n this.headers[\"x-api-key\"] = apiKey;\n }\n }\n\n async newSession(sessionName?: string): Promise<TracerSessionV1> {\n const sessionCreate: TracerSessionCreate = {\n start_time: Date.now(),\n name: sessionName,\n };\n const session = await this.persistSession(sessionCreate);\n this.session = session;\n return session;\n }\n\n async loadSession(sessionName: string): Promise<TracerSessionV1> {\n const endpoint = `${this.endpoint}/sessions?name=${sessionName}`;\n return this._handleSessionResponse(endpoint);\n }\n\n async loadDefaultSession(): Promise<TracerSessionV1> {\n const endpoint = `${this.endpoint}/sessions?name=default`;\n return this._handleSessionResponse(endpoint);\n }\n\n protected async convertV2RunToRun(\n run: Run\n ): Promise<LLMRun | ChainRun | ToolRun> {\n const session = this.session ?? (await this.loadDefaultSession());\n const serialized = run.serialized as { name: string };\n let runResult: LLMRun | ChainRun | ToolRun;\n if (run.run_type === \"llm\") {\n const prompts: string[] = run.inputs.prompts\n ? run.inputs.prompts\n : (run.inputs.messages as BaseMessage[][]).map((x) =>\n getBufferString(x)\n );\n\n const llmRun: LLMRun = {\n uuid: run.id,\n start_time: run.start_time,\n end_time: run.end_time,\n execution_order: run.execution_order,\n child_execution_order: run.child_execution_order,\n serialized,\n type: run.run_type,\n session_id: session.id,\n prompts,\n response: run.outputs as LLMResult,\n };\n runResult = llmRun;\n } else if (run.run_type === \"chain\") {\n const child_runs = await Promise.all(\n run.child_runs.map((child_run) => this.convertV2RunToRun(child_run))\n );\n const chainRun: ChainRun = {\n uuid: run.id,\n start_time: run.start_time,\n end_time: run.end_time,\n execution_order: run.execution_order,\n child_execution_order: run.child_execution_order,\n serialized,\n type: run.run_type,\n session_id: session.id,\n inputs: run.inputs,\n outputs: run.outputs,\n child_llm_runs: child_runs.filter(\n (child_run) => child_run.type === \"llm\"\n ) as LLMRun[],\n child_chain_runs: child_runs.filter(\n (child_run) => child_run.type === \"chain\"\n ) as ChainRun[],\n child_tool_runs: child_runs.filter(\n (child_run) => child_run.type === \"tool\"\n ) as ToolRun[],\n };\n\n runResult = chainRun;\n } else if (run.run_type === \"tool\") {\n const child_runs = await Promise.all(\n run.child_runs.map((child_run) => this.convertV2RunToRun(child_run))\n );\n const toolRun: ToolRun = {\n uuid: run.id,\n start_time: run.start_time,\n end_time: run.end_time,\n execution_order: run.execution_order,\n child_execution_order: run.child_execution_order,\n serialized,\n type: run.run_type,\n session_id: session.id,\n tool_input: run.inputs.input,\n output: run.outputs?.output,\n action: JSON.stringify(serialized),\n child_llm_runs: child_runs.filter(\n (child_run) => child_run.type === \"llm\"\n ) as LLMRun[],\n child_chain_runs: child_runs.filter(\n (child_run) => child_run.type === \"chain\"\n ) as ChainRun[],\n child_tool_runs: child_runs.filter(\n (child_run) => child_run.type === \"tool\"\n ) as ToolRun[],\n };\n\n runResult = toolRun;\n } else {\n throw new Error(`Unknown run type: ${run.run_type}`);\n }\n return runResult;\n }\n\n protected async persistRun(\n run: Run | LLMRun | ChainRun | ToolRun\n ): Promise<void> {\n let endpoint;\n let v1Run: LLMRun | ChainRun | ToolRun;\n if ((run as Run).run_type !== undefined) {\n v1Run = await this.convertV2RunToRun(run as Run);\n } else {\n v1Run = run as LLMRun | ChainRun | ToolRun;\n }\n if (v1Run.type === \"llm\") {\n endpoint = `${this.endpoint}/llm-runs`;\n } else if (v1Run.type === \"chain\") {\n endpoint = `${this.endpoint}/chain-runs`;\n } else {\n endpoint = `${this.endpoint}/tool-runs`;\n }\n\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: this.headers,\n body: JSON.stringify(v1Run),\n });\n if (!response.ok) {\n console.error(\n `Failed to persist run: ${response.status} ${response.statusText}`\n );\n }\n }\n\n protected async persistSession(\n sessionCreate: BaseTracerSession\n ): Promise<TracerSessionV1> {\n const endpoint = `${this.endpoint}/sessions`;\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: this.headers,\n body: JSON.stringify(sessionCreate),\n });\n if (!response.ok) {\n console.error(\n `Failed to persist session: ${response.status} ${response.statusText}, using default session.`\n );\n return {\n id: 1,\n ...sessionCreate,\n };\n }\n return {\n id: (await response.json()).id,\n ...sessionCreate,\n };\n }\n\n protected async _handleSessionResponse(\n endpoint: string\n ): Promise<TracerSessionV1> {\n const response = await fetch(endpoint, {\n method: \"GET\",\n headers: this.headers,\n });\n let tracerSession: TracerSessionV1;\n if (!response.ok) {\n console.error(\n `Failed to load session: ${response.status} ${response.statusText}`\n );\n tracerSession = {\n id: 1,\n start_time: Date.now(),\n };\n this.session = tracerSession;\n return tracerSession;\n }\n const resp = (await response.json()) as TracerSessionV1[];\n if (resp.length === 0) {\n tracerSession = {\n id: 1,\n start_time: Date.now(),\n };\n this.session = tracerSession;\n return tracerSession;\n }\n [tracerSession] = resp;\n this.session = tracerSession;\n return tracerSession;\n }\n}\n"],"mappings":"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"}