langwatch 0.3.0-prerelease.2 → 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.
- package/dist/add-LBBS4I3H.js +114 -0
- package/dist/add-LBBS4I3H.js.map +1 -0
- package/dist/add-RD3ZKFAT.mjs +114 -0
- package/dist/add-RD3ZKFAT.mjs.map +1 -0
- package/dist/chunk-2JU376G7.js +242 -0
- package/dist/chunk-2JU376G7.js.map +1 -0
- package/dist/chunk-2ODBGSBI.js +4 -0
- package/dist/{chunk-G3AUABT7.js.map → chunk-2ODBGSBI.js.map} +1 -1
- package/dist/chunk-3GKPQB4R.mjs +242 -0
- package/dist/chunk-3GKPQB4R.mjs.map +1 -0
- package/dist/chunk-4NRLVT2U.mjs +35 -0
- package/dist/chunk-4NRLVT2U.mjs.map +1 -0
- package/dist/{chunk-SVJ7SCGB.js → chunk-52GXX3MA.js} +33 -31
- package/dist/chunk-52GXX3MA.js.map +1 -0
- package/dist/chunk-5NC5ILKA.js +94 -0
- package/dist/chunk-5NC5ILKA.js.map +1 -0
- package/dist/{chunk-WM2GRSRW.js → chunk-6I4EA43Y.js} +2 -2
- package/dist/chunk-6I4EA43Y.js.map +1 -0
- package/dist/chunk-DHJKJVY7.mjs +20 -0
- package/dist/chunk-DHJKJVY7.mjs.map +1 -0
- package/dist/{chunk-VJSOCNPA.js → chunk-DTEKFQ4U.js} +6 -28
- package/dist/chunk-DTEKFQ4U.js.map +1 -0
- package/dist/chunk-E7UE2MPD.mjs +93 -0
- package/dist/chunk-E7UE2MPD.mjs.map +1 -0
- package/dist/chunk-F6E4XQQU.js +20 -0
- package/dist/chunk-F6E4XQQU.js.map +1 -0
- package/dist/chunk-FJLK5CFL.js +37 -0
- package/dist/chunk-FJLK5CFL.js.map +1 -0
- package/dist/{chunk-Z5J5UI5E.mjs → chunk-GJSEBQXF.mjs} +139 -107
- package/dist/chunk-GJSEBQXF.mjs.map +1 -0
- package/dist/chunk-HA3LI5IK.js +35 -0
- package/dist/chunk-HA3LI5IK.js.map +1 -0
- package/dist/chunk-HJU67C7H.js +93 -0
- package/dist/chunk-HJU67C7H.js.map +1 -0
- package/dist/{chunk-PMBEK6YE.mjs → chunk-J7ICRUU4.mjs} +5 -3
- package/dist/{chunk-PMBEK6YE.mjs.map → chunk-J7ICRUU4.mjs.map} +1 -1
- package/dist/{chunk-HPC6Z7J4.js → chunk-PWZBLTHR.js} +3 -3
- package/dist/{chunk-HPC6Z7J4.js.map → chunk-PWZBLTHR.js.map} +1 -1
- package/dist/chunk-SMXXAVMB.js +100 -0
- package/dist/chunk-SMXXAVMB.js.map +1 -0
- package/dist/{chunk-CSC3CMIT.mjs → chunk-STV4ZVNA.mjs} +2 -2
- package/dist/chunk-T5AZMMVS.mjs +94 -0
- package/dist/chunk-T5AZMMVS.mjs.map +1 -0
- package/dist/{chunk-4BZATFKJ.mjs → chunk-UU33HCCZ.mjs} +4 -26
- package/dist/{chunk-4BZATFKJ.mjs.map → chunk-UU33HCCZ.mjs.map} +1 -1
- package/dist/{chunk-PTJ6AAI7.js → chunk-VGHLQXKB.js} +138 -106
- package/dist/chunk-VGHLQXKB.js.map +1 -0
- package/dist/chunk-W5ZEP3CI.mjs +100 -0
- package/dist/chunk-W5ZEP3CI.mjs.map +1 -0
- package/dist/chunk-Y666BJA5.mjs +4 -0
- package/dist/{chunk-REUCVT7A.mjs → chunk-YFUZF7JM.mjs} +2 -2
- package/dist/chunk-YFUZF7JM.mjs.map +1 -0
- package/dist/chunk-YN4436PK.mjs +37 -0
- package/dist/chunk-YN4436PK.mjs.map +1 -0
- package/dist/cli/index.d.mts +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +106 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/index.mjs +106 -0
- package/dist/cli/index.mjs.map +1 -0
- package/dist/client-browser.js +12 -10
- package/dist/client-browser.js.map +1 -1
- package/dist/client-browser.mjs +5 -3
- package/dist/client-browser.mjs.map +1 -1
- package/dist/client-node.js +11 -9
- package/dist/client-node.js.map +1 -1
- package/dist/client-node.mjs +7 -5
- package/dist/client-node.mjs.map +1 -1
- package/dist/create-G5MTGOOH.js +70 -0
- package/dist/create-G5MTGOOH.js.map +1 -0
- package/dist/create-QUZYBMQB.mjs +70 -0
- package/dist/create-QUZYBMQB.mjs.map +1 -0
- package/dist/evaluation/index.js +5 -4
- package/dist/evaluation/index.js.map +1 -1
- package/dist/evaluation/index.mjs +4 -3
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +10 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -6
- package/dist/init-H67RW22E.mjs +16 -0
- package/dist/init-H67RW22E.mjs.map +1 -0
- package/dist/init-XU2JFY6N.js +16 -0
- package/dist/init-XU2JFY6N.js.map +1 -0
- package/dist/list-7NPSX2E4.mjs +136 -0
- package/dist/list-7NPSX2E4.mjs.map +1 -0
- package/dist/list-ZXFLAF52.js +136 -0
- package/dist/list-ZXFLAF52.js.map +1 -0
- package/dist/login-76NQIHKR.js +110 -0
- package/dist/login-76NQIHKR.js.map +1 -0
- package/dist/login-EK4WVOI2.mjs +110 -0
- package/dist/login-EK4WVOI2.mjs.map +1 -0
- package/dist/observability/index.d.mts +3 -3
- package/dist/observability/index.d.ts +3 -3
- package/dist/observability/index.js +5 -4
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/index.mjs +4 -3
- package/dist/observability/instrumentation/langchain/index.d.mts +2 -2
- package/dist/observability/instrumentation/langchain/index.d.ts +2 -2
- package/dist/observability/instrumentation/langchain/index.js +29 -27
- package/dist/observability/instrumentation/langchain/index.js.map +1 -1
- package/dist/observability/instrumentation/langchain/index.mjs +5 -3
- package/dist/observability/instrumentation/langchain/index.mjs.map +1 -1
- package/dist/prompt/index.d.mts +2 -2
- package/dist/prompt/index.d.ts +2 -2
- package/dist/prompt/index.js +8 -4
- package/dist/prompt/index.js.map +1 -1
- package/dist/prompt/index.mjs +10 -6
- package/dist/{prompt-BXJWdbQp.d.mts → prompt-D-jpMrLS.d.mts} +245 -0
- package/dist/{prompt-BXJWdbQp.d.ts → prompt-D-jpMrLS.d.ts} +245 -0
- package/dist/remove-SDJYEPAY.mjs +106 -0
- package/dist/remove-SDJYEPAY.mjs.map +1 -0
- package/dist/remove-XBNGIVMR.js +106 -0
- package/dist/remove-XBNGIVMR.js.map +1 -0
- package/dist/sync-EISKGPTL.js +403 -0
- package/dist/sync-EISKGPTL.js.map +1 -0
- package/dist/sync-ST2IWXSB.mjs +403 -0
- package/dist/sync-ST2IWXSB.mjs.map +1 -0
- package/dist/{trace-G2312klE.d.ts → trace-CqaKo0kZ.d.ts} +1 -1
- package/dist/{trace-D-bZOuqb.d.mts → trace-DtVc5GhF.d.mts} +1 -1
- package/package.json +13 -2
- package/dist/chunk-G3AUABT7.js +0 -4
- package/dist/chunk-OM7VY3XT.mjs +0 -4
- package/dist/chunk-PTJ6AAI7.js.map +0 -1
- package/dist/chunk-REUCVT7A.mjs.map +0 -1
- package/dist/chunk-SVJ7SCGB.js.map +0 -1
- package/dist/chunk-VJSOCNPA.js.map +0 -1
- package/dist/chunk-WM2GRSRW.js.map +0 -1
- package/dist/chunk-Z5J5UI5E.mjs.map +0 -1
- /package/dist/{chunk-CSC3CMIT.mjs.map → chunk-STV4ZVNA.mjs.map} +0 -0
- /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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
9
|
+
var _chunk52GXX3MAjs = require('../chunk-52GXX3MA.js');
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
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 =
|
|
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-
|
|
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-
|
|
9
|
+
} from "../chunk-J7ICRUU4.mjs";
|
|
10
10
|
import {
|
|
11
11
|
semconv_exports
|
|
12
|
-
} from "../chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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(
|
|
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
|
-
[`${
|
|
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
|
-
[`${
|
|
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(
|
|
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
|
-
[`${
|
|
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
|
-
[`${
|
|
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(
|
|
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
|
-
[`${
|
|
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(
|
|
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
|
-
[
|
|
476
|
-
[
|
|
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(
|
|
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
|
-
[`${
|
|
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(
|
|
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
|
-
[`${
|
|
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
|
-
[
|
|
539
|
-
[
|
|
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
|
|
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 =
|
|
648
|
-
[
|
|
649
|
-
[
|
|
650
|
-
[
|
|
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[
|
|
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(
|
|
662
|
+
span.addEvent(_chunkDTEKFQ4Ujs.EVNT_LANGWATCH_LANGCHAIN_CALLBACK, attrs);
|
|
661
663
|
}
|
|
662
664
|
|
|
663
665
|
|