langwatch 0.3.0 → 0.3.1

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 (131) hide show
  1. package/dist/add-LBBS4I3H.js +114 -0
  2. package/dist/add-LBBS4I3H.js.map +1 -0
  3. package/dist/add-RD3ZKFAT.mjs +114 -0
  4. package/dist/add-RD3ZKFAT.mjs.map +1 -0
  5. package/dist/chunk-2JU376G7.js +242 -0
  6. package/dist/chunk-2JU376G7.js.map +1 -0
  7. package/dist/chunk-2ODBGSBI.js +4 -0
  8. package/dist/{chunk-G3AUABT7.js.map → chunk-2ODBGSBI.js.map} +1 -1
  9. package/dist/chunk-3GKPQB4R.mjs +242 -0
  10. package/dist/chunk-3GKPQB4R.mjs.map +1 -0
  11. package/dist/chunk-4NRLVT2U.mjs +35 -0
  12. package/dist/chunk-4NRLVT2U.mjs.map +1 -0
  13. package/dist/{chunk-SVJ7SCGB.js → chunk-52GXX3MA.js} +33 -31
  14. package/dist/chunk-52GXX3MA.js.map +1 -0
  15. package/dist/chunk-5NC5ILKA.js +94 -0
  16. package/dist/chunk-5NC5ILKA.js.map +1 -0
  17. package/dist/{chunk-76KNOWLS.js → chunk-6I4EA43Y.js} +2 -2
  18. package/dist/chunk-6I4EA43Y.js.map +1 -0
  19. package/dist/chunk-DHJKJVY7.mjs +20 -0
  20. package/dist/chunk-DHJKJVY7.mjs.map +1 -0
  21. package/dist/{chunk-VJSOCNPA.js → chunk-DTEKFQ4U.js} +6 -28
  22. package/dist/chunk-DTEKFQ4U.js.map +1 -0
  23. package/dist/chunk-E7UE2MPD.mjs +93 -0
  24. package/dist/chunk-E7UE2MPD.mjs.map +1 -0
  25. package/dist/chunk-F6E4XQQU.js +20 -0
  26. package/dist/chunk-F6E4XQQU.js.map +1 -0
  27. package/dist/chunk-FJLK5CFL.js +37 -0
  28. package/dist/chunk-FJLK5CFL.js.map +1 -0
  29. package/dist/{chunk-Z5J5UI5E.mjs → chunk-GJSEBQXF.mjs} +139 -107
  30. package/dist/chunk-GJSEBQXF.mjs.map +1 -0
  31. package/dist/chunk-HA3LI5IK.js +35 -0
  32. package/dist/chunk-HA3LI5IK.js.map +1 -0
  33. package/dist/chunk-HJU67C7H.js +93 -0
  34. package/dist/chunk-HJU67C7H.js.map +1 -0
  35. package/dist/{chunk-PMBEK6YE.mjs → chunk-J7ICRUU4.mjs} +5 -3
  36. package/dist/{chunk-PMBEK6YE.mjs.map → chunk-J7ICRUU4.mjs.map} +1 -1
  37. package/dist/{chunk-HPC6Z7J4.js → chunk-PWZBLTHR.js} +3 -3
  38. package/dist/{chunk-HPC6Z7J4.js.map → chunk-PWZBLTHR.js.map} +1 -1
  39. package/dist/chunk-SMXXAVMB.js +100 -0
  40. package/dist/chunk-SMXXAVMB.js.map +1 -0
  41. package/dist/{chunk-CSC3CMIT.mjs → chunk-STV4ZVNA.mjs} +2 -2
  42. package/dist/chunk-T5AZMMVS.mjs +94 -0
  43. package/dist/chunk-T5AZMMVS.mjs.map +1 -0
  44. package/dist/{chunk-4BZATFKJ.mjs → chunk-UU33HCCZ.mjs} +4 -26
  45. package/dist/{chunk-4BZATFKJ.mjs.map → chunk-UU33HCCZ.mjs.map} +1 -1
  46. package/dist/{chunk-PTJ6AAI7.js → chunk-VGHLQXKB.js} +138 -106
  47. package/dist/chunk-VGHLQXKB.js.map +1 -0
  48. package/dist/chunk-W5ZEP3CI.mjs +100 -0
  49. package/dist/chunk-W5ZEP3CI.mjs.map +1 -0
  50. package/dist/chunk-Y666BJA5.mjs +4 -0
  51. package/dist/{chunk-X62YT4WB.mjs → chunk-YFUZF7JM.mjs} +2 -2
  52. package/dist/chunk-YFUZF7JM.mjs.map +1 -0
  53. package/dist/chunk-YN4436PK.mjs +37 -0
  54. package/dist/chunk-YN4436PK.mjs.map +1 -0
  55. package/dist/cli/index.d.mts +1 -0
  56. package/dist/cli/index.d.ts +1 -0
  57. package/dist/cli/index.js +106 -0
  58. package/dist/cli/index.js.map +1 -0
  59. package/dist/cli/index.mjs +106 -0
  60. package/dist/cli/index.mjs.map +1 -0
  61. package/dist/client-browser.js +12 -10
  62. package/dist/client-browser.js.map +1 -1
  63. package/dist/client-browser.mjs +5 -3
  64. package/dist/client-browser.mjs.map +1 -1
  65. package/dist/client-node.js +11 -9
  66. package/dist/client-node.js.map +1 -1
  67. package/dist/client-node.mjs +7 -5
  68. package/dist/client-node.mjs.map +1 -1
  69. package/dist/create-G5MTGOOH.js +70 -0
  70. package/dist/create-G5MTGOOH.js.map +1 -0
  71. package/dist/create-QUZYBMQB.mjs +70 -0
  72. package/dist/create-QUZYBMQB.mjs.map +1 -0
  73. package/dist/evaluation/index.js +5 -4
  74. package/dist/evaluation/index.js.map +1 -1
  75. package/dist/evaluation/index.mjs +4 -3
  76. package/dist/index.d.mts +2 -2
  77. package/dist/index.d.ts +2 -2
  78. package/dist/index.js +10 -7
  79. package/dist/index.js.map +1 -1
  80. package/dist/index.mjs +9 -6
  81. package/dist/init-H67RW22E.mjs +16 -0
  82. package/dist/init-H67RW22E.mjs.map +1 -0
  83. package/dist/init-XU2JFY6N.js +16 -0
  84. package/dist/init-XU2JFY6N.js.map +1 -0
  85. package/dist/list-7NPSX2E4.mjs +136 -0
  86. package/dist/list-7NPSX2E4.mjs.map +1 -0
  87. package/dist/list-ZXFLAF52.js +136 -0
  88. package/dist/list-ZXFLAF52.js.map +1 -0
  89. package/dist/login-76NQIHKR.js +110 -0
  90. package/dist/login-76NQIHKR.js.map +1 -0
  91. package/dist/login-EK4WVOI2.mjs +110 -0
  92. package/dist/login-EK4WVOI2.mjs.map +1 -0
  93. package/dist/observability/index.d.mts +3 -3
  94. package/dist/observability/index.d.ts +3 -3
  95. package/dist/observability/index.js +5 -4
  96. package/dist/observability/index.js.map +1 -1
  97. package/dist/observability/index.mjs +4 -3
  98. package/dist/observability/instrumentation/langchain/index.d.mts +2 -2
  99. package/dist/observability/instrumentation/langchain/index.d.ts +2 -2
  100. package/dist/observability/instrumentation/langchain/index.js +29 -27
  101. package/dist/observability/instrumentation/langchain/index.js.map +1 -1
  102. package/dist/observability/instrumentation/langchain/index.mjs +5 -3
  103. package/dist/observability/instrumentation/langchain/index.mjs.map +1 -1
  104. package/dist/prompt/index.d.mts +2 -2
  105. package/dist/prompt/index.d.ts +2 -2
  106. package/dist/prompt/index.js +8 -4
  107. package/dist/prompt/index.js.map +1 -1
  108. package/dist/prompt/index.mjs +10 -6
  109. package/dist/{prompt-BXJWdbQp.d.mts → prompt-D-jpMrLS.d.mts} +245 -0
  110. package/dist/{prompt-BXJWdbQp.d.ts → prompt-D-jpMrLS.d.ts} +245 -0
  111. package/dist/remove-SDJYEPAY.mjs +106 -0
  112. package/dist/remove-SDJYEPAY.mjs.map +1 -0
  113. package/dist/remove-XBNGIVMR.js +106 -0
  114. package/dist/remove-XBNGIVMR.js.map +1 -0
  115. package/dist/sync-EISKGPTL.js +403 -0
  116. package/dist/sync-EISKGPTL.js.map +1 -0
  117. package/dist/sync-ST2IWXSB.mjs +403 -0
  118. package/dist/sync-ST2IWXSB.mjs.map +1 -0
  119. package/dist/{trace-G2312klE.d.ts → trace-CqaKo0kZ.d.ts} +1 -1
  120. package/dist/{trace-D-bZOuqb.d.mts → trace-DtVc5GhF.d.mts} +1 -1
  121. package/package.json +13 -2
  122. package/dist/chunk-76KNOWLS.js.map +0 -1
  123. package/dist/chunk-G3AUABT7.js +0 -4
  124. package/dist/chunk-OM7VY3XT.mjs +0 -4
  125. package/dist/chunk-PTJ6AAI7.js.map +0 -1
  126. package/dist/chunk-SVJ7SCGB.js.map +0 -1
  127. package/dist/chunk-VJSOCNPA.js.map +0 -1
  128. package/dist/chunk-X62YT4WB.mjs.map +0 -1
  129. package/dist/chunk-Z5J5UI5E.mjs.map +0 -1
  130. /package/dist/{chunk-CSC3CMIT.mjs.map → chunk-STV4ZVNA.mjs.map} +0 -0
  131. /package/dist/{chunk-OM7VY3XT.mjs.map → chunk-Y666BJA5.mjs.map} +0 -0
@@ -0,0 +1,110 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunkPCQVQ7SBjs = require('./chunk-PCQVQ7SB.js');
4
+ require('./chunk-FJLK5CFL.js');
5
+
6
+ // src/cli/commands/login.ts
7
+ var _fs = require('fs'); var fs = _interopRequireWildcard(_fs);
8
+ var _path = require('path'); var path = _interopRequireWildcard(_path);
9
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
10
+ var _ora = require('ora'); var _ora2 = _interopRequireDefault(_ora);
11
+ var _prompts = require('prompts'); var _prompts2 = _interopRequireDefault(_prompts);
12
+ var updateEnvFile = (apiKey) => {
13
+ const envPath = path.join(process.cwd(), ".env");
14
+ if (!fs.existsSync(envPath)) {
15
+ fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}
16
+ `);
17
+ return { created: true, updated: false, path: envPath };
18
+ }
19
+ const content = fs.readFileSync(envPath, "utf-8");
20
+ const lines = content.split("\n");
21
+ let found = false;
22
+ const updatedLines = lines.map((line) => {
23
+ if (line.startsWith("LANGWATCH_API_KEY=")) {
24
+ found = true;
25
+ return `LANGWATCH_API_KEY=${apiKey}`;
26
+ }
27
+ return line;
28
+ });
29
+ if (!found) {
30
+ if (content.endsWith("\n") || content === "") {
31
+ updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);
32
+ } else {
33
+ updatedLines.push("", `LANGWATCH_API_KEY=${apiKey}`);
34
+ }
35
+ }
36
+ fs.writeFileSync(envPath, updatedLines.join("\n"));
37
+ return { created: false, updated: found, path: envPath };
38
+ };
39
+ var loginCommand = async () => {
40
+ try {
41
+ console.log(_chalk2.default.blue("\u{1F510} LangWatch Login"));
42
+ console.log(
43
+ _chalk2.default.gray(
44
+ "This will open your browser to get an API key from LangWatch."
45
+ )
46
+ );
47
+ console.log();
48
+ const endpoint = _chunkPCQVQ7SBjs.getEndpoint.call(void 0, );
49
+ const authUrl = `${endpoint}/authorize`;
50
+ console.log(_chalk2.default.cyan(`Opening: ${authUrl}`));
51
+ const spinner = _ora2.default.call(void 0, "Opening browser...").start();
52
+ try {
53
+ const open = (await Promise.resolve().then(() => _interopRequireWildcard(require("open")))).default;
54
+ await open(authUrl);
55
+ spinner.succeed("Browser opened");
56
+ } catch (error) {
57
+ spinner.fail("Failed to open browser");
58
+ console.log(_chalk2.default.yellow(`Please manually open: ${_chalk2.default.cyan(authUrl)}`));
59
+ }
60
+ console.log();
61
+ console.log(_chalk2.default.gray("1. Log in to LangWatch in your browser"));
62
+ console.log(_chalk2.default.gray("2. Copy your API key"));
63
+ console.log(_chalk2.default.gray("3. Come back here and paste it"));
64
+ console.log();
65
+ const response = await _prompts2.default.call(void 0, {
66
+ type: "password",
67
+ name: "apiKey",
68
+ message: "Paste your API key here:",
69
+ validate: (value) => {
70
+ if (!value || value.trim() === "") {
71
+ return "API key is required";
72
+ }
73
+ if (value.length < 10) {
74
+ return "API key seems too short. Please check and try again.";
75
+ }
76
+ return true;
77
+ }
78
+ });
79
+ if (!response.apiKey) {
80
+ console.log(_chalk2.default.yellow("Login cancelled"));
81
+ process.exit(0);
82
+ }
83
+ const apiKey = response.apiKey.trim();
84
+ const envResult = updateEnvFile(apiKey);
85
+ console.log();
86
+ console.log(_chalk2.default.green("\u2713 API key saved successfully!"));
87
+ if (envResult.created) {
88
+ console.log(_chalk2.default.gray(`\u2022 Created .env file with your API key`));
89
+ } else if (envResult.updated) {
90
+ console.log(_chalk2.default.gray(`\u2022 Updated existing API key in .env file`));
91
+ } else {
92
+ console.log(_chalk2.default.gray(`\u2022 Added API key to existing .env file`));
93
+ }
94
+ console.log();
95
+ console.log(_chalk2.default.green("\u{1F389} You're all set! You can now use:"));
96
+ console.log(_chalk2.default.cyan(" langwatch prompt add <name>"));
97
+ console.log(_chalk2.default.cyan(" langwatch prompt sync"));
98
+ } catch (error) {
99
+ console.error(
100
+ _chalk2.default.red(
101
+ `Error during login: ${error instanceof Error ? error.message : "Unknown error"}`
102
+ )
103
+ );
104
+ process.exit(1);
105
+ }
106
+ };
107
+
108
+
109
+ exports.loginCommand = loginCommand;
110
+ //# sourceMappingURL=login-76NQIHKR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-76NQIHKR.js","../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACLA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAChB,oFAAoB;AAGpB,IAAM,cAAA,EAAgB,CACpB,MAAA,EAAA,GACyD;AACzD,EAAA,MAAM,QAAA,EAAe,IAAA,CAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,MAAM,CAAA;AAG/C,EAAA,GAAA,CAAI,CAAI,EAAA,CAAA,UAAA,CAAW,OAAO,CAAA,EAAG;AAE3B,IAAG,EAAA,CAAA,aAAA,CAAc,OAAA,EAAS,CAAA,kBAAA,EAAqB,MAAM,CAAA;AAAA,CAAI,CAAA;AACzD,IAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,IAAA,EAAM,QAAQ,CAAA;AAAA,EACxD;AAGA,EAAA,MAAM,QAAA,EAAa,EAAA,CAAA,YAAA,CAAa,OAAA,EAAS,OAAO,CAAA;AAChD,EAAA,MAAM,MAAA,EAAQ,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAA;AAGhC,EAAA,IAAI,MAAA,EAAQ,KAAA;AACZ,EAAA,MAAM,aAAA,EAAe,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAA,GAAS;AACvC,IAAA,GAAA,CAAI,IAAA,CAAK,UAAA,CAAW,oBAAoB,CAAA,EAAG;AACzC,MAAA,MAAA,EAAQ,IAAA;AACR,MAAA,OAAO,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAA;AACpC,IAAA;AACO,IAAA;AACR,EAAA;AAEW,EAAA;AAEoB,IAAA;AACV,MAAA;AACb,IAAA;AACiB,MAAA;AACxB,IAAA;AACF,EAAA;AAEuC,EAAA;AACL,EAAA;AACpC;AAEuD;AACjD,EAAA;AACqB,IAAA;AACf,IAAA;AACA,MAAA;AACJ,QAAA;AACF,MAAA;AACF,IAAA;AACY,IAAA;AAGiB,IAAA;AACF,IAAA;AAEQ,IAAA;AAGf,IAAA;AAEhB,IAAA;AAC+B,MAAA;AACf,MAAA;AACc,MAAA;AAClB,IAAA;AACD,MAAA;AACY,MAAA;AAC3B,IAAA;AAEY,IAAA;AACW,IAAA;AACA,IAAA;AACA,IAAA;AACX,IAAA;AAGmB,IAAA;AACvB,MAAA;AACA,MAAA;AACG,MAAA;AACoB,MAAA;AACI,QAAA;AACtB,UAAA;AACT,QAAA;AACuB,QAAA;AACd,UAAA;AACT,QAAA;AACO,QAAA;AACT,MAAA;AACD,IAAA;AAEqB,IAAA;AACK,MAAA;AACX,MAAA;AAChB,IAAA;AAEoC,IAAA;AAGJ,IAAA;AAEpB,IAAA;AACY,IAAA;AAED,IAAA;AACE,MAAA;AACK,IAAA;AACL,MAAA;AAClB,IAAA;AACkB,MAAA;AACzB,IAAA;AAEY,IAAA;AACY,IAAA;AACD,IAAA;AACA,IAAA;AACT,EAAA;AACN,IAAA;AACA,MAAA;AAEF,QAAA;AAEJ,MAAA;AACF,IAAA;AACc,IAAA;AAChB,EAAA;AACF;ADzByC;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-76NQIHKR.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport prompts from \"prompts\";\nimport { getEndpoint } from \"../../client\";\n\nconst updateEnvFile = (\n apiKey: string,\n): { created: boolean; updated: boolean; path: string } => {\n const envPath = path.join(process.cwd(), \".env\");\n\n // Check if .env exists\n if (!fs.existsSync(envPath)) {\n // Create new .env file\n fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}\\n`);\n return { created: true, updated: false, path: envPath };\n }\n\n // Read existing .env file\n const content = fs.readFileSync(envPath, \"utf-8\");\n const lines = content.split(\"\\n\");\n\n // Check if LANGWATCH_API_KEY already exists and update it\n let found = false;\n const updatedLines = lines.map((line) => {\n if (line.startsWith(\"LANGWATCH_API_KEY=\")) {\n found = true;\n return `LANGWATCH_API_KEY=${apiKey}`;\n }\n return line;\n });\n\n if (!found) {\n // Add to end of file\n if (content.endsWith(\"\\n\") || content === \"\") {\n updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);\n } else {\n updatedLines.push(\"\", `LANGWATCH_API_KEY=${apiKey}`);\n }\n }\n\n fs.writeFileSync(envPath, updatedLines.join(\"\\n\"));\n return { created: false, updated: found, path: envPath };\n};\n\nexport const loginCommand = async (): Promise<void> => {\n try {\n console.log(chalk.blue(\"🔐 LangWatch Login\"));\n console.log(\n chalk.gray(\n \"This will open your browser to get an API key from LangWatch.\",\n ),\n );\n console.log();\n\n // Get the authorization URL\n const endpoint = getEndpoint();\n const authUrl = `${endpoint}/authorize`;\n\n console.log(chalk.cyan(`Opening: ${authUrl}`));\n\n // Open browser\n const spinner = ora(\"Opening browser...\").start();\n\n try {\n const open = (await import(\"open\")).default;\n await open(authUrl);\n spinner.succeed(\"Browser opened\");\n } catch (error) {\n spinner.fail(\"Failed to open browser\");\n console.log(chalk.yellow(`Please manually open: ${chalk.cyan(authUrl)}`));\n }\n\n console.log();\n console.log(chalk.gray(\"1. Log in to LangWatch in your browser\"));\n console.log(chalk.gray(\"2. Copy your API key\"));\n console.log(chalk.gray(\"3. Come back here and paste it\"));\n console.log();\n\n // Wait for user input using prompts library\n const response = await prompts({\n type: \"password\",\n name: \"apiKey\",\n message: \"Paste your API key here:\",\n validate: (value: string) => {\n if (!value || value.trim() === \"\") {\n return \"API key is required\";\n }\n if (value.length < 10) {\n return \"API key seems too short. Please check and try again.\";\n }\n return true;\n },\n });\n\n if (!response.apiKey) {\n console.log(chalk.yellow(\"Login cancelled\"));\n process.exit(0);\n }\n\n const apiKey = response.apiKey.trim();\n\n // Save to .env file\n const envResult = updateEnvFile(apiKey);\n\n console.log();\n console.log(chalk.green(\"✓ API key saved successfully!\"));\n\n if (envResult.created) {\n console.log(chalk.gray(`• Created .env file with your API key`));\n } else if (envResult.updated) {\n console.log(chalk.gray(`• Updated existing API key in .env file`));\n } else {\n console.log(chalk.gray(`• Added API key to existing .env file`));\n }\n\n console.log();\n console.log(chalk.green(\"🎉 You're all set! You can now use:\"));\n console.log(chalk.cyan(\" langwatch prompt add <name>\"));\n console.log(chalk.cyan(\" langwatch prompt sync\"));\n } catch (error) {\n console.error(\n chalk.red(\n `Error during login: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n process.exit(1);\n }\n};\n"]}
@@ -0,0 +1,110 @@
1
+ import {
2
+ getEndpoint
3
+ } from "./chunk-QEWDG5QE.mjs";
4
+ import "./chunk-YN4436PK.mjs";
5
+
6
+ // src/cli/commands/login.ts
7
+ import * as fs from "fs";
8
+ import * as path from "path";
9
+ import chalk from "chalk";
10
+ import ora from "ora";
11
+ import prompts from "prompts";
12
+ var updateEnvFile = (apiKey) => {
13
+ const envPath = path.join(process.cwd(), ".env");
14
+ if (!fs.existsSync(envPath)) {
15
+ fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}
16
+ `);
17
+ return { created: true, updated: false, path: envPath };
18
+ }
19
+ const content = fs.readFileSync(envPath, "utf-8");
20
+ const lines = content.split("\n");
21
+ let found = false;
22
+ const updatedLines = lines.map((line) => {
23
+ if (line.startsWith("LANGWATCH_API_KEY=")) {
24
+ found = true;
25
+ return `LANGWATCH_API_KEY=${apiKey}`;
26
+ }
27
+ return line;
28
+ });
29
+ if (!found) {
30
+ if (content.endsWith("\n") || content === "") {
31
+ updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);
32
+ } else {
33
+ updatedLines.push("", `LANGWATCH_API_KEY=${apiKey}`);
34
+ }
35
+ }
36
+ fs.writeFileSync(envPath, updatedLines.join("\n"));
37
+ return { created: false, updated: found, path: envPath };
38
+ };
39
+ var loginCommand = async () => {
40
+ try {
41
+ console.log(chalk.blue("\u{1F510} LangWatch Login"));
42
+ console.log(
43
+ chalk.gray(
44
+ "This will open your browser to get an API key from LangWatch."
45
+ )
46
+ );
47
+ console.log();
48
+ const endpoint = getEndpoint();
49
+ const authUrl = `${endpoint}/authorize`;
50
+ console.log(chalk.cyan(`Opening: ${authUrl}`));
51
+ const spinner = ora("Opening browser...").start();
52
+ try {
53
+ const open = (await import("open")).default;
54
+ await open(authUrl);
55
+ spinner.succeed("Browser opened");
56
+ } catch (error) {
57
+ spinner.fail("Failed to open browser");
58
+ console.log(chalk.yellow(`Please manually open: ${chalk.cyan(authUrl)}`));
59
+ }
60
+ console.log();
61
+ console.log(chalk.gray("1. Log in to LangWatch in your browser"));
62
+ console.log(chalk.gray("2. Copy your API key"));
63
+ console.log(chalk.gray("3. Come back here and paste it"));
64
+ console.log();
65
+ const response = await prompts({
66
+ type: "password",
67
+ name: "apiKey",
68
+ message: "Paste your API key here:",
69
+ validate: (value) => {
70
+ if (!value || value.trim() === "") {
71
+ return "API key is required";
72
+ }
73
+ if (value.length < 10) {
74
+ return "API key seems too short. Please check and try again.";
75
+ }
76
+ return true;
77
+ }
78
+ });
79
+ if (!response.apiKey) {
80
+ console.log(chalk.yellow("Login cancelled"));
81
+ process.exit(0);
82
+ }
83
+ const apiKey = response.apiKey.trim();
84
+ const envResult = updateEnvFile(apiKey);
85
+ console.log();
86
+ console.log(chalk.green("\u2713 API key saved successfully!"));
87
+ if (envResult.created) {
88
+ console.log(chalk.gray(`\u2022 Created .env file with your API key`));
89
+ } else if (envResult.updated) {
90
+ console.log(chalk.gray(`\u2022 Updated existing API key in .env file`));
91
+ } else {
92
+ console.log(chalk.gray(`\u2022 Added API key to existing .env file`));
93
+ }
94
+ console.log();
95
+ console.log(chalk.green("\u{1F389} You're all set! You can now use:"));
96
+ console.log(chalk.cyan(" langwatch prompt add <name>"));
97
+ console.log(chalk.cyan(" langwatch prompt sync"));
98
+ } catch (error) {
99
+ console.error(
100
+ chalk.red(
101
+ `Error during login: ${error instanceof Error ? error.message : "Unknown error"}`
102
+ )
103
+ );
104
+ process.exit(1);
105
+ }
106
+ };
107
+ export {
108
+ loginCommand
109
+ };
110
+ //# sourceMappingURL=login-EK4WVOI2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/login.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport prompts from \"prompts\";\nimport { getEndpoint } from \"../../client\";\n\nconst updateEnvFile = (\n apiKey: string,\n): { created: boolean; updated: boolean; path: string } => {\n const envPath = path.join(process.cwd(), \".env\");\n\n // Check if .env exists\n if (!fs.existsSync(envPath)) {\n // Create new .env file\n fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}\\n`);\n return { created: true, updated: false, path: envPath };\n }\n\n // Read existing .env file\n const content = fs.readFileSync(envPath, \"utf-8\");\n const lines = content.split(\"\\n\");\n\n // Check if LANGWATCH_API_KEY already exists and update it\n let found = false;\n const updatedLines = lines.map((line) => {\n if (line.startsWith(\"LANGWATCH_API_KEY=\")) {\n found = true;\n return `LANGWATCH_API_KEY=${apiKey}`;\n }\n return line;\n });\n\n if (!found) {\n // Add to end of file\n if (content.endsWith(\"\\n\") || content === \"\") {\n updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);\n } else {\n updatedLines.push(\"\", `LANGWATCH_API_KEY=${apiKey}`);\n }\n }\n\n fs.writeFileSync(envPath, updatedLines.join(\"\\n\"));\n return { created: false, updated: found, path: envPath };\n};\n\nexport const loginCommand = async (): Promise<void> => {\n try {\n console.log(chalk.blue(\"🔐 LangWatch Login\"));\n console.log(\n chalk.gray(\n \"This will open your browser to get an API key from LangWatch.\",\n ),\n );\n console.log();\n\n // Get the authorization URL\n const endpoint = getEndpoint();\n const authUrl = `${endpoint}/authorize`;\n\n console.log(chalk.cyan(`Opening: ${authUrl}`));\n\n // Open browser\n const spinner = ora(\"Opening browser...\").start();\n\n try {\n const open = (await import(\"open\")).default;\n await open(authUrl);\n spinner.succeed(\"Browser opened\");\n } catch (error) {\n spinner.fail(\"Failed to open browser\");\n console.log(chalk.yellow(`Please manually open: ${chalk.cyan(authUrl)}`));\n }\n\n console.log();\n console.log(chalk.gray(\"1. Log in to LangWatch in your browser\"));\n console.log(chalk.gray(\"2. Copy your API key\"));\n console.log(chalk.gray(\"3. Come back here and paste it\"));\n console.log();\n\n // Wait for user input using prompts library\n const response = await prompts({\n type: \"password\",\n name: \"apiKey\",\n message: \"Paste your API key here:\",\n validate: (value: string) => {\n if (!value || value.trim() === \"\") {\n return \"API key is required\";\n }\n if (value.length < 10) {\n return \"API key seems too short. Please check and try again.\";\n }\n return true;\n },\n });\n\n if (!response.apiKey) {\n console.log(chalk.yellow(\"Login cancelled\"));\n process.exit(0);\n }\n\n const apiKey = response.apiKey.trim();\n\n // Save to .env file\n const envResult = updateEnvFile(apiKey);\n\n console.log();\n console.log(chalk.green(\"✓ API key saved successfully!\"));\n\n if (envResult.created) {\n console.log(chalk.gray(`• Created .env file with your API key`));\n } else if (envResult.updated) {\n console.log(chalk.gray(`• Updated existing API key in .env file`));\n } else {\n console.log(chalk.gray(`• Added API key to existing .env file`));\n }\n\n console.log();\n console.log(chalk.green(\"🎉 You're all set! You can now use:\"));\n console.log(chalk.cyan(\" langwatch prompt add <name>\"));\n console.log(chalk.cyan(\" langwatch prompt sync\"));\n } catch (error) {\n console.error(\n chalk.red(\n `Error during login: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n process.exit(1);\n }\n};\n"],"mappings":"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","names":[]}
@@ -1,9 +1,9 @@
1
- import { V as VAL_GEN_AI_FINISH_REASONS, b as VAL_GEN_AI_FINISH_REASON_CONTENT_FILTER, c as VAL_GEN_AI_FINISH_REASON_ERROR, d as VAL_GEN_AI_FINISH_REASON_LENGTH, e as VAL_GEN_AI_FINISH_REASON_STOP, f as VAL_GEN_AI_FINISH_REASON_TOOL_CALLS, h as VAL_GEN_AI_SYSTEMS, i as VAL_GEN_AI_SYSTEM_ANTHROPIC, j as VAL_GEN_AI_SYSTEM_AWS_BEDROCK, k as VAL_GEN_AI_SYSTEM_AZURE_AI_INFERENCE, l as VAL_GEN_AI_SYSTEM_AZURE_AI_OPENAI, m as VAL_GEN_AI_SYSTEM_COHERE, n as VAL_GEN_AI_SYSTEM_DEEPSEEK, o as VAL_GEN_AI_SYSTEM_GCP_GEMINI, p as VAL_GEN_AI_SYSTEM_GCP_GEN_AI, q as VAL_GEN_AI_SYSTEM_GCP_VERTEX_AI, r as VAL_GEN_AI_SYSTEM_GROQ, s as VAL_GEN_AI_SYSTEM_IBM_WATSONX_AI, t as VAL_GEN_AI_SYSTEM_MISTRAL_AI, u as VAL_GEN_AI_SYSTEM_OPENAI, v as VAL_GEN_AI_SYSTEM_PERPLEXITY, w as VAL_GEN_AI_SYSTEM_XAI } from '../trace-D-bZOuqb.mjs';
2
- export { L as LangWatchSpan, C as LangWatchSpanGenAIAssistantMessageEventBody, E as LangWatchSpanGenAIChoiceEventBody, A as LangWatchSpanGenAISystemMessageEventBody, D as LangWatchSpanGenAIToolMessageEventBody, B as LangWatchSpanGenAIUserMessageEventBody, z as LangWatchSpanMetrics, y as LangWatchSpanRAGContext, a as LangWatchTracer, S as SpanType, F as createLangWatchSpan, g as getLangWatchTracer, x as spanTypes } from '../trace-D-bZOuqb.mjs';
1
+ import { V as VAL_GEN_AI_FINISH_REASONS, b as VAL_GEN_AI_FINISH_REASON_CONTENT_FILTER, c as VAL_GEN_AI_FINISH_REASON_ERROR, d as VAL_GEN_AI_FINISH_REASON_LENGTH, e as VAL_GEN_AI_FINISH_REASON_STOP, f as VAL_GEN_AI_FINISH_REASON_TOOL_CALLS, h as VAL_GEN_AI_SYSTEMS, i as VAL_GEN_AI_SYSTEM_ANTHROPIC, j as VAL_GEN_AI_SYSTEM_AWS_BEDROCK, k as VAL_GEN_AI_SYSTEM_AZURE_AI_INFERENCE, l as VAL_GEN_AI_SYSTEM_AZURE_AI_OPENAI, m as VAL_GEN_AI_SYSTEM_COHERE, n as VAL_GEN_AI_SYSTEM_DEEPSEEK, o as VAL_GEN_AI_SYSTEM_GCP_GEMINI, p as VAL_GEN_AI_SYSTEM_GCP_GEN_AI, q as VAL_GEN_AI_SYSTEM_GCP_VERTEX_AI, r as VAL_GEN_AI_SYSTEM_GROQ, s as VAL_GEN_AI_SYSTEM_IBM_WATSONX_AI, t as VAL_GEN_AI_SYSTEM_MISTRAL_AI, u as VAL_GEN_AI_SYSTEM_OPENAI, v as VAL_GEN_AI_SYSTEM_PERPLEXITY, w as VAL_GEN_AI_SYSTEM_XAI } from '../trace-DtVc5GhF.mjs';
2
+ export { L as LangWatchSpan, C as LangWatchSpanGenAIAssistantMessageEventBody, E as LangWatchSpanGenAIChoiceEventBody, A as LangWatchSpanGenAISystemMessageEventBody, D as LangWatchSpanGenAIToolMessageEventBody, B as LangWatchSpanGenAIUserMessageEventBody, z as LangWatchSpanMetrics, y as LangWatchSpanRAGContext, a as LangWatchTracer, S as SpanType, F as createLangWatchSpan, g as getLangWatchTracer, x as spanTypes } from '../trace-DtVc5GhF.mjs';
3
3
  export { F as FilterableBatchSpanProcessor, S as SpanProcessingExcludeRule } from '../filterable-batch-span-processor-zO5kcjBY.mjs';
4
4
  import '@opentelemetry/api';
5
5
  import '../record-evaluation-CmxMXa-3.mjs';
6
- import '../prompt-BXJWdbQp.mjs';
6
+ import '../prompt-D-jpMrLS.mjs';
7
7
  import '@opentelemetry/sdk-trace-base';
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
- import { V as VAL_GEN_AI_FINISH_REASONS, b as VAL_GEN_AI_FINISH_REASON_CONTENT_FILTER, c as VAL_GEN_AI_FINISH_REASON_ERROR, d as VAL_GEN_AI_FINISH_REASON_LENGTH, e as VAL_GEN_AI_FINISH_REASON_STOP, f as VAL_GEN_AI_FINISH_REASON_TOOL_CALLS, h as VAL_GEN_AI_SYSTEMS, i as VAL_GEN_AI_SYSTEM_ANTHROPIC, j as VAL_GEN_AI_SYSTEM_AWS_BEDROCK, k as VAL_GEN_AI_SYSTEM_AZURE_AI_INFERENCE, l as VAL_GEN_AI_SYSTEM_AZURE_AI_OPENAI, m as VAL_GEN_AI_SYSTEM_COHERE, n as VAL_GEN_AI_SYSTEM_DEEPSEEK, o as VAL_GEN_AI_SYSTEM_GCP_GEMINI, p as VAL_GEN_AI_SYSTEM_GCP_GEN_AI, q as VAL_GEN_AI_SYSTEM_GCP_VERTEX_AI, r as VAL_GEN_AI_SYSTEM_GROQ, s as VAL_GEN_AI_SYSTEM_IBM_WATSONX_AI, t as VAL_GEN_AI_SYSTEM_MISTRAL_AI, u as VAL_GEN_AI_SYSTEM_OPENAI, v as VAL_GEN_AI_SYSTEM_PERPLEXITY, w as VAL_GEN_AI_SYSTEM_XAI } from '../trace-G2312klE.js';
2
- export { L as LangWatchSpan, C as LangWatchSpanGenAIAssistantMessageEventBody, E as LangWatchSpanGenAIChoiceEventBody, A as LangWatchSpanGenAISystemMessageEventBody, D as LangWatchSpanGenAIToolMessageEventBody, B as LangWatchSpanGenAIUserMessageEventBody, z as LangWatchSpanMetrics, y as LangWatchSpanRAGContext, a as LangWatchTracer, S as SpanType, F as createLangWatchSpan, g as getLangWatchTracer, x as spanTypes } from '../trace-G2312klE.js';
1
+ import { V as VAL_GEN_AI_FINISH_REASONS, b as VAL_GEN_AI_FINISH_REASON_CONTENT_FILTER, c as VAL_GEN_AI_FINISH_REASON_ERROR, d as VAL_GEN_AI_FINISH_REASON_LENGTH, e as VAL_GEN_AI_FINISH_REASON_STOP, f as VAL_GEN_AI_FINISH_REASON_TOOL_CALLS, h as VAL_GEN_AI_SYSTEMS, i as VAL_GEN_AI_SYSTEM_ANTHROPIC, j as VAL_GEN_AI_SYSTEM_AWS_BEDROCK, k as VAL_GEN_AI_SYSTEM_AZURE_AI_INFERENCE, l as VAL_GEN_AI_SYSTEM_AZURE_AI_OPENAI, m as VAL_GEN_AI_SYSTEM_COHERE, n as VAL_GEN_AI_SYSTEM_DEEPSEEK, o as VAL_GEN_AI_SYSTEM_GCP_GEMINI, p as VAL_GEN_AI_SYSTEM_GCP_GEN_AI, q as VAL_GEN_AI_SYSTEM_GCP_VERTEX_AI, r as VAL_GEN_AI_SYSTEM_GROQ, s as VAL_GEN_AI_SYSTEM_IBM_WATSONX_AI, t as VAL_GEN_AI_SYSTEM_MISTRAL_AI, u as VAL_GEN_AI_SYSTEM_OPENAI, v as VAL_GEN_AI_SYSTEM_PERPLEXITY, w as VAL_GEN_AI_SYSTEM_XAI } from '../trace-CqaKo0kZ.js';
2
+ export { L as LangWatchSpan, C as LangWatchSpanGenAIAssistantMessageEventBody, E as LangWatchSpanGenAIChoiceEventBody, A as LangWatchSpanGenAISystemMessageEventBody, D as LangWatchSpanGenAIToolMessageEventBody, B as LangWatchSpanGenAIUserMessageEventBody, z as LangWatchSpanMetrics, y as LangWatchSpanRAGContext, a as LangWatchTracer, S as SpanType, F as createLangWatchSpan, g as getLangWatchTracer, x as spanTypes } from '../trace-CqaKo0kZ.js';
3
3
  export { F as FilterableBatchSpanProcessor, S as SpanProcessingExcludeRule } from '../filterable-batch-span-processor-zO5kcjBY.js';
4
4
  import '@opentelemetry/api';
5
5
  import '../record-evaluation-CmxMXa-3.js';
6
- import '../prompt-BXJWdbQp.js';
6
+ import '../prompt-D-jpMrLS.js';
7
7
  import '@opentelemetry/sdk-trace-base';
8
8
 
9
9
  /**
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-G3AUABT7.js');
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-2ODBGSBI.js');
2
2
 
3
3
 
4
4
  var _chunkKGDAENGDjs = require('../chunk-KGDAENGD.js');
@@ -6,15 +6,16 @@ var _chunkKGDAENGDjs = require('../chunk-KGDAENGD.js');
6
6
 
7
7
 
8
8
 
9
- var _chunkSVJ7SCGBjs = require('../chunk-SVJ7SCGB.js');
9
+ var _chunk52GXX3MAjs = require('../chunk-52GXX3MA.js');
10
10
 
11
11
 
12
- var _chunkVJSOCNPAjs = require('../chunk-VJSOCNPA.js');
12
+ var _chunkDTEKFQ4Ujs = require('../chunk-DTEKFQ4U.js');
13
+ require('../chunk-FJLK5CFL.js');
13
14
 
14
15
 
15
16
 
16
17
 
17
18
 
18
19
 
19
- exports.FilterableBatchSpanProcessor = _chunkKGDAENGDjs.FilterableBatchSpanProcessor; exports.createLangWatchSpan = _chunkSVJ7SCGBjs.createLangWatchSpan; exports.getLangWatchTracer = _chunkSVJ7SCGBjs.getLangWatchTracer; exports.semconv = _chunkVJSOCNPAjs.semconv_exports; exports.spanTypes = _chunkSVJ7SCGBjs.spanTypes;
20
+ exports.FilterableBatchSpanProcessor = _chunkKGDAENGDjs.FilterableBatchSpanProcessor; exports.createLangWatchSpan = _chunk52GXX3MAjs.createLangWatchSpan; exports.getLangWatchTracer = _chunk52GXX3MAjs.getLangWatchTracer; exports.semconv = _chunkDTEKFQ4Ujs.semconv_exports; exports.spanTypes = _chunk52GXX3MAjs.spanTypes;
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability/index.js"],"names":[],"mappings":"AAAA,yGAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACF,+TAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability/index.js"}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability/index.js"],"names":[],"mappings":"AAAA,yGAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACF,+TAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability/index.js"}
@@ -1,4 +1,4 @@
1
- import "../chunk-OM7VY3XT.mjs";
1
+ import "../chunk-Y666BJA5.mjs";
2
2
  import {
3
3
  FilterableBatchSpanProcessor
4
4
  } from "../chunk-PR3JDWC3.mjs";
@@ -6,10 +6,11 @@ import {
6
6
  createLangWatchSpan,
7
7
  getLangWatchTracer,
8
8
  spanTypes
9
- } from "../chunk-PMBEK6YE.mjs";
9
+ } from "../chunk-J7ICRUU4.mjs";
10
10
  import {
11
11
  semconv_exports
12
- } from "../chunk-4BZATFKJ.mjs";
12
+ } from "../chunk-UU33HCCZ.mjs";
13
+ import "../chunk-YN4436PK.mjs";
13
14
  export {
14
15
  FilterableBatchSpanProcessor,
15
16
  createLangWatchSpan,
@@ -1,4 +1,4 @@
1
- import { a as LangWatchTracer, L as LangWatchSpan } from '../../../trace-D-bZOuqb.mjs';
1
+ import { a as LangWatchTracer, L as LangWatchSpan } from '../../../trace-DtVc5GhF.mjs';
2
2
  import { AgentAction, AgentFinish } from '@langchain/core/agents';
3
3
  import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
4
4
  import { DocumentInterface } from '@langchain/core/documents';
@@ -8,7 +8,7 @@ import { LLMResult } from '@langchain/core/outputs';
8
8
  import { ChainValues } from '@langchain/core/utils/types';
9
9
  import '@opentelemetry/api';
10
10
  import '../../../record-evaluation-CmxMXa-3.mjs';
11
- import '../../../prompt-BXJWdbQp.mjs';
11
+ import '../../../prompt-D-jpMrLS.mjs';
12
12
 
13
13
  declare class LangWatchCallbackHandler extends BaseCallbackHandler {
14
14
  name: string;
@@ -1,4 +1,4 @@
1
- import { a as LangWatchTracer, L as LangWatchSpan } from '../../../trace-G2312klE.js';
1
+ import { a as LangWatchTracer, L as LangWatchSpan } from '../../../trace-CqaKo0kZ.js';
2
2
  import { AgentAction, AgentFinish } from '@langchain/core/agents';
3
3
  import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
4
4
  import { DocumentInterface } from '@langchain/core/documents';
@@ -8,7 +8,7 @@ import { LLMResult } from '@langchain/core/outputs';
8
8
  import { ChainValues } from '@langchain/core/utils/types';
9
9
  import '@opentelemetry/api';
10
10
  import '../../../record-evaluation-CmxMXa-3.js';
11
- import '../../../prompt-BXJWdbQp.js';
11
+ import '../../../prompt-D-jpMrLS.js';
12
12
 
13
13
  declare class LangWatchCallbackHandler extends BaseCallbackHandler {
14
14
  name: string;
@@ -4,7 +4,7 @@
4
4
  var _chunkPCQVQ7SBjs = require('../../../chunk-PCQVQ7SB.js');
5
5
 
6
6
 
7
- var _chunkSVJ7SCGBjs = require('../../../chunk-SVJ7SCGB.js');
7
+ var _chunk52GXX3MAjs = require('../../../chunk-52GXX3MA.js');
8
8
 
9
9
 
10
10
 
@@ -15,8 +15,10 @@ var _chunkSVJ7SCGBjs = require('../../../chunk-SVJ7SCGB.js');
15
15
 
16
16
 
17
17
 
18
+ var _chunkDTEKFQ4Ujs = require('../../../chunk-DTEKFQ4U.js');
18
19
 
19
- var _chunkVJSOCNPAjs = require('../../../chunk-VJSOCNPA.js');
20
+
21
+ var _chunkFJLK5CFLjs = require('../../../chunk-FJLK5CFL.js');
20
22
 
21
23
  // src/observability/instrumentation/langchain/index.ts
22
24
  var _base = require('@langchain/core/callbacks/base');
@@ -282,7 +284,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
282
284
  constructor() {
283
285
  super();
284
286
  this.name = "LangWatchCallbackHandler";
285
- this.tracer = _chunkSVJ7SCGBjs.getLangWatchTracer.call(void 0, "langwatch.instrumentation.langchain");
287
+ this.tracer = _chunk52GXX3MAjs.getLangWatchTracer.call(void 0, "langwatch.instrumentation.langchain");
286
288
  this.spans = {};
287
289
  }
288
290
  getParentContext(parentRunId) {
@@ -307,13 +309,13 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
307
309
  span.setInput(prompts);
308
310
  }
309
311
  if (_tags) {
310
- span.setAttribute(_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);
312
+ span.setAttribute(_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);
311
313
  }
312
314
  if (extraParams) {
313
315
  span.setAttributes(
314
316
  Object.fromEntries(
315
317
  Object.entries(extraParams).map(([key, value]) => [
316
- [`${_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_EXTRA_PARAMS}.${key}`],
318
+ [`${_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_EXTRA_PARAMS}.${key}`],
317
319
  wrapNonScalarValues(value)
318
320
  ])
319
321
  )
@@ -327,7 +329,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
327
329
  span.setAttributes(
328
330
  Object.fromEntries(
329
331
  Object.entries(metadata).map(([key, value]) => [
330
- [`${_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],
332
+ [`${_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],
331
333
  wrapNonScalarValues(value)
332
334
  ])
333
335
  )
@@ -348,13 +350,13 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
348
350
  span.setInput(messages.flatMap(convertFromLangChainMessages));
349
351
  }
350
352
  if (_tags) {
351
- span.setAttribute(_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);
353
+ span.setAttribute(_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);
352
354
  }
353
355
  if (extraParams) {
354
356
  span.setAttributes(
355
357
  Object.fromEntries(
356
358
  Object.entries(extraParams).map(([key, value]) => [
357
- [`${_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_EXTRA_PARAMS}.${key}`],
359
+ [`${_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_EXTRA_PARAMS}.${key}`],
358
360
  wrapNonScalarValues(value)
359
361
  ])
360
362
  )
@@ -368,7 +370,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
368
370
  span.setAttributes(
369
371
  Object.fromEntries(
370
372
  Object.entries(metadata).map(([key, value]) => [
371
- [`${_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],
373
+ [`${_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],
372
374
  wrapNonScalarValues(value)
373
375
  ])
374
376
  )
@@ -425,20 +427,20 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
425
427
  span.setInput(inputs);
426
428
  }
427
429
  if (_tags) {
428
- span.setAttribute(_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);
430
+ span.setAttribute(_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);
429
431
  }
430
432
  if (_metadata) {
431
433
  span.setAttributes(
432
434
  Object.fromEntries(
433
435
  Object.entries(_metadata).map(([key, value]) => [
434
- [`${_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],
436
+ [`${_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],
435
437
  wrapNonScalarValues(value)
436
438
  ])
437
439
  )
438
440
  );
439
441
  }
440
442
  if (_runType) {
441
- span.setAttribute(_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_TYPE, _runType);
443
+ span.setAttribute(_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_TYPE, _runType);
442
444
  }
443
445
  this.spans[runId] = span;
444
446
  }
@@ -472,17 +474,17 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
472
474
  span.setInputString(input);
473
475
  }
474
476
  span.setAttributes({
475
- [_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_ID]: runId,
476
- [_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_PARENT_ID]: parentRunId
477
+ [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_ID]: runId,
478
+ [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_PARENT_ID]: parentRunId
477
479
  });
478
480
  if (_tags) {
479
- span.setAttribute(_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);
481
+ span.setAttribute(_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);
480
482
  }
481
483
  if (_metadata) {
482
484
  span.setAttributes(
483
485
  Object.fromEntries(
484
486
  Object.entries(_metadata).map(([key, value]) => [
485
- [`${_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],
487
+ [`${_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],
486
488
  wrapNonScalarValues(value)
487
489
  ])
488
490
  )
@@ -522,21 +524,21 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
522
524
  span.setInputString(query);
523
525
  }
524
526
  if (_tags) {
525
- span.setAttribute(_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);
527
+ span.setAttribute(_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_TAGS, _tags);
526
528
  }
527
529
  if (_metadata) {
528
530
  span.setAttributes(
529
531
  Object.fromEntries(
530
532
  Object.entries(_metadata).map(([key, value]) => [
531
- [`${_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],
533
+ [`${_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_METADATA}.${key}`],
532
534
  wrapNonScalarValues(value)
533
535
  ])
534
536
  )
535
537
  );
536
538
  }
537
539
  span.setAttributes({
538
- [_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_ID]: runId,
539
- [_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_PARENT_ID]: parentRunId
540
+ [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_ID]: runId,
541
+ [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_PARENT_ID]: parentRunId
540
542
  });
541
543
  this.spans[runId] = span;
542
544
  }
@@ -611,7 +613,7 @@ var convertFromLangChainMessage = (message) => {
611
613
  (content2) => content2.type === "text" ? { type: "text", text: content2.text } : content2.type == "image_url" ? { type: "image_url", image_url: content2.image_url } : { type: "text", text: JSON.stringify(content2) }
612
614
  );
613
615
  const functionCall = message.additional_kwargs;
614
- return _chunkVJSOCNPAjs.__spreadValues.call(void 0, {
616
+ return _chunkFJLK5CFLjs.__spreadValues.call(void 0, {
615
617
  role,
616
618
  content
617
619
  }, functionCall && typeof functionCall === "object" && Object.keys(functionCall).length > 0 ? { function_call: functionCall } : {});
@@ -644,20 +646,20 @@ function wrapNonScalarValues(value) {
644
646
  }
645
647
  }
646
648
  function addLangChainEvent(span, eventName, runId, parentRunId, tags, metadata, attributes) {
647
- const attrs = _chunkVJSOCNPAjs.__spreadValues.call(void 0, {
648
- [_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_ID]: runId,
649
- [_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_RUN_PARENT_ID]: parentRunId,
650
- [_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_EVENT_NAME]: eventName
649
+ const attrs = _chunkFJLK5CFLjs.__spreadValues.call(void 0, {
650
+ [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_ID]: runId,
651
+ [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_RUN_PARENT_ID]: parentRunId,
652
+ [_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_EVENT_NAME]: eventName
651
653
  }, attributes);
652
654
  if (tags) {
653
- attrs[_chunkVJSOCNPAjs.ATTR_LANGWATCH_LANGCHAIN_TAGS] = tags;
655
+ attrs[_chunkDTEKFQ4Ujs.ATTR_LANGWATCH_LANGCHAIN_TAGS] = tags;
654
656
  }
655
657
  if (metadata) {
656
658
  Object.entries(metadata).forEach(([key, value]) => {
657
659
  attrs[key] = wrapNonScalarValues(value);
658
660
  });
659
661
  }
660
- span.addEvent(_chunkVJSOCNPAjs.EVNT_LANGWATCH_LANGCHAIN_CALLBACK, attrs);
662
+ span.addEvent(_chunkDTEKFQ4Ujs.EVNT_LANGWATCH_LANGCHAIN_CALLBACK, attrs);
661
663
  }
662
664
 
663
665