langwatch 0.3.2 → 0.4.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.
- package/dist/{add-LBBS4I3H.js → add-35QACTIV.js} +34 -28
- package/dist/add-35QACTIV.js.map +1 -0
- package/dist/{add-RD3ZKFAT.mjs → add-TRJAXM4D.mjs} +22 -16
- package/dist/add-TRJAXM4D.mjs.map +1 -0
- package/dist/chunk-4ZSSHX6F.js +636 -0
- package/dist/chunk-4ZSSHX6F.js.map +1 -0
- package/dist/chunk-5EVBOHJY.js +155 -0
- package/dist/chunk-5EVBOHJY.js.map +1 -0
- package/dist/{chunk-YN4436PK.mjs → chunk-CU3443HD.mjs} +14 -9
- package/dist/{chunk-2JU376G7.js → chunk-D2CSG4SJ.js} +4 -4
- package/dist/chunk-D2CSG4SJ.js.map +1 -0
- package/dist/chunk-DISMHYXC.js +184 -0
- package/dist/chunk-DISMHYXC.js.map +1 -0
- package/dist/{chunk-E7UE2MPD.mjs → chunk-ECUXLXFT.mjs} +2 -2
- package/dist/chunk-EJWJXTPU.mjs +626 -0
- package/dist/chunk-EJWJXTPU.mjs.map +1 -0
- package/dist/chunk-GQMDZ4GY.mjs +155 -0
- package/dist/chunk-GQMDZ4GY.mjs.map +1 -0
- package/dist/{chunk-3GKPQB4R.mjs → chunk-HUI45ULC.mjs} +4 -4
- package/dist/chunk-HUI45ULC.mjs.map +1 -0
- package/dist/{chunk-HJU67C7H.js → chunk-K64Y6YUG.js} +10 -10
- package/dist/{chunk-HJU67C7H.js.map → chunk-K64Y6YUG.js.map} +1 -1
- package/dist/chunk-LP76VXI3.mjs +636 -0
- package/dist/chunk-LP76VXI3.mjs.map +1 -0
- package/dist/chunk-M4VUHTT2.js +626 -0
- package/dist/chunk-M4VUHTT2.js.map +1 -0
- package/dist/{chunk-PR3JDWC3.mjs → chunk-N2V6J3U2.mjs} +28 -3
- package/dist/chunk-N2V6J3U2.mjs.map +1 -0
- package/dist/chunk-OUCVXP4G.js +258 -0
- package/dist/chunk-OUCVXP4G.js.map +1 -0
- package/dist/{chunk-FJLK5CFL.js → chunk-OXBO24RB.js} +13 -8
- package/dist/chunk-OXBO24RB.js.map +1 -0
- package/dist/chunk-PGWR3OQY.mjs +258 -0
- package/dist/chunk-PGWR3OQY.mjs.map +1 -0
- package/dist/{chunk-SMXXAVMB.js → chunk-SGNJDRCT.js} +2 -2
- package/dist/chunk-SGNJDRCT.js.map +1 -0
- package/dist/{chunk-W5ZEP3CI.mjs → chunk-SYMZPWZE.mjs} +2 -2
- package/dist/chunk-SYMZPWZE.mjs.map +1 -0
- package/dist/{chunk-KGDAENGD.js → chunk-YH5TIVK2.js} +28 -3
- package/dist/chunk-YH5TIVK2.js.map +1 -0
- package/dist/chunk-YNQ44U6D.mjs +184 -0
- package/dist/chunk-YNQ44U6D.mjs.map +1 -0
- package/dist/cli/index.js +8 -8
- package/dist/cli/index.mjs +8 -8
- package/dist/{create-G5MTGOOH.js → create-7K2CC4KQ.js} +11 -11
- package/dist/{create-G5MTGOOH.js.map → create-7K2CC4KQ.js.map} +1 -1
- package/dist/{create-QUZYBMQB.mjs → create-MK7NEGCM.mjs} +8 -8
- package/dist/implementation-C4lvooSg.d.mts +576 -0
- package/dist/implementation-CzemP9jY.d.ts +576 -0
- package/dist/index-DTEZr0Jn.d.mts +34 -0
- package/dist/index-DTEZr0Jn.d.ts +34 -0
- package/dist/index.d.mts +121 -47
- package/dist/index.d.ts +121 -47
- package/dist/index.js +16 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +27 -23
- package/dist/index.mjs.map +1 -1
- package/dist/init-GDKJICSS.js +16 -0
- package/dist/{init-XU2JFY6N.js.map → init-GDKJICSS.js.map} +1 -1
- package/dist/{init-H67RW22E.mjs → init-RINSTP4L.mjs} +5 -5
- package/dist/{list-7NPSX2E4.mjs → list-7L23G5DY.mjs} +28 -16
- package/dist/list-7L23G5DY.mjs.map +1 -0
- package/dist/{list-ZXFLAF52.js → list-OLLQ7XKZ.js} +29 -17
- package/dist/list-OLLQ7XKZ.js.map +1 -0
- package/dist/{login-EK4WVOI2.mjs → login-RCNKL5AM.mjs} +6 -5
- package/dist/login-RCNKL5AM.mjs.map +1 -0
- package/dist/{login-76NQIHKR.js → login-XF3BQQPV.js} +7 -6
- package/dist/login-XF3BQQPV.js.map +1 -0
- package/dist/observability-sdk/index.d.mts +134 -0
- package/dist/observability-sdk/index.d.ts +134 -0
- package/dist/observability-sdk/index.js +41 -0
- package/dist/observability-sdk/index.js.map +1 -0
- package/dist/observability-sdk/index.mjs +41 -0
- package/dist/observability-sdk/instrumentation/langchain/index.d.mts +69 -0
- package/dist/observability-sdk/instrumentation/langchain/index.d.ts +69 -0
- package/dist/observability-sdk/instrumentation/langchain/index.js +518 -0
- package/dist/observability-sdk/instrumentation/langchain/index.js.map +1 -0
- package/dist/observability-sdk/instrumentation/langchain/index.mjs +518 -0
- package/dist/observability-sdk/instrumentation/langchain/index.mjs.map +1 -0
- package/dist/observability-sdk/setup/node/index.d.mts +368 -0
- package/dist/observability-sdk/setup/node/index.d.ts +368 -0
- package/dist/observability-sdk/setup/node/index.js +276 -0
- package/dist/observability-sdk/setup/node/index.js.map +1 -0
- package/dist/observability-sdk/setup/node/index.mjs +276 -0
- package/dist/observability-sdk/setup/node/index.mjs.map +1 -0
- package/dist/{remove-SDJYEPAY.mjs → remove-3VLQNVHN.mjs} +11 -8
- package/dist/remove-3VLQNVHN.mjs.map +1 -0
- package/dist/{remove-XBNGIVMR.js → remove-L6JVJBWY.js} +18 -15
- package/dist/remove-L6JVJBWY.js.map +1 -0
- package/dist/{sync-ST2IWXSB.mjs → sync-DPMTUTVL.mjs} +39 -33
- package/dist/sync-DPMTUTVL.mjs.map +1 -0
- package/dist/{sync-EISKGPTL.js → sync-PSU3F5Z4.js} +52 -46
- package/dist/sync-PSU3F5Z4.js.map +1 -0
- package/dist/{prompt-D-jpMrLS.d.mts → types-1q5wIYP5.d.mts} +628 -14
- package/dist/{prompt-D-jpMrLS.d.ts → types-C9k5gGhU.d.ts} +628 -14
- package/dist/types-DRiQaKFG.d.mts +254 -0
- package/dist/types-DRiQaKFG.d.ts +254 -0
- package/dist/types-Dmazk5Bk.d.mts +44 -0
- package/dist/types-Dmazk5Bk.d.ts +44 -0
- package/package.json +39 -39
- package/dist/add-LBBS4I3H.js.map +0 -1
- package/dist/add-RD3ZKFAT.mjs.map +0 -1
- package/dist/chunk-2JU376G7.js.map +0 -1
- package/dist/chunk-2ODBGSBI.js +0 -4
- package/dist/chunk-2ODBGSBI.js.map +0 -1
- package/dist/chunk-3GKPQB4R.mjs.map +0 -1
- package/dist/chunk-52GXX3MA.js +0 -426
- package/dist/chunk-52GXX3MA.js.map +0 -1
- package/dist/chunk-5NC5ILKA.js +0 -94
- package/dist/chunk-5NC5ILKA.js.map +0 -1
- package/dist/chunk-AAROJADR.mjs +0 -49
- package/dist/chunk-AAROJADR.mjs.map +0 -1
- package/dist/chunk-DTEKFQ4U.js +0 -159
- package/dist/chunk-DTEKFQ4U.js.map +0 -1
- package/dist/chunk-F63YKTXA.mjs +0 -47
- package/dist/chunk-F63YKTXA.mjs.map +0 -1
- package/dist/chunk-FJLK5CFL.js.map +0 -1
- package/dist/chunk-GJSEBQXF.mjs +0 -392
- package/dist/chunk-GJSEBQXF.mjs.map +0 -1
- package/dist/chunk-IGHXIIIK.js +0 -49
- package/dist/chunk-IGHXIIIK.js.map +0 -1
- package/dist/chunk-J7ICRUU4.mjs +0 -426
- package/dist/chunk-J7ICRUU4.mjs.map +0 -1
- package/dist/chunk-KGDAENGD.js.map +0 -1
- package/dist/chunk-LD74LVRU.js +0 -47
- package/dist/chunk-LD74LVRU.js.map +0 -1
- package/dist/chunk-PCQVQ7SB.js +0 -45
- package/dist/chunk-PCQVQ7SB.js.map +0 -1
- package/dist/chunk-PR3JDWC3.mjs.map +0 -1
- package/dist/chunk-PWZBLTHR.js +0 -118
- package/dist/chunk-PWZBLTHR.js.map +0 -1
- package/dist/chunk-QEWDG5QE.mjs +0 -45
- package/dist/chunk-QEWDG5QE.mjs.map +0 -1
- package/dist/chunk-SMXXAVMB.js.map +0 -1
- package/dist/chunk-STV4ZVNA.mjs +0 -118
- package/dist/chunk-STV4ZVNA.mjs.map +0 -1
- package/dist/chunk-T5AZMMVS.mjs +0 -94
- package/dist/chunk-T5AZMMVS.mjs.map +0 -1
- package/dist/chunk-UU33HCCZ.mjs +0 -159
- package/dist/chunk-UU33HCCZ.mjs.map +0 -1
- package/dist/chunk-VGHLQXKB.js +0 -392
- package/dist/chunk-VGHLQXKB.js.map +0 -1
- package/dist/chunk-W5ZEP3CI.mjs.map +0 -1
- package/dist/chunk-Y666BJA5.mjs +0 -4
- package/dist/chunk-YN4436PK.mjs.map +0 -1
- package/dist/client-B2HqIKg6.d.ts +0 -51
- package/dist/client-XyCqclCi.d.mts +0 -51
- package/dist/client-browser.d.mts +0 -8
- package/dist/client-browser.d.ts +0 -8
- package/dist/client-browser.js +0 -88
- package/dist/client-browser.js.map +0 -1
- package/dist/client-browser.mjs +0 -88
- package/dist/client-browser.mjs.map +0 -1
- package/dist/client-node.d.mts +0 -8
- package/dist/client-node.d.ts +0 -8
- package/dist/client-node.js +0 -95
- package/dist/client-node.js.map +0 -1
- package/dist/client-node.mjs +0 -95
- package/dist/client-node.mjs.map +0 -1
- package/dist/evaluation/index.d.mts +0 -897
- package/dist/evaluation/index.d.ts +0 -897
- package/dist/evaluation/index.js +0 -14
- package/dist/evaluation/index.js.map +0 -1
- package/dist/evaluation/index.mjs +0 -14
- package/dist/filterable-batch-span-processor-zO5kcjBY.d.mts +0 -64
- package/dist/filterable-batch-span-processor-zO5kcjBY.d.ts +0 -64
- package/dist/init-XU2JFY6N.js +0 -16
- package/dist/list-7NPSX2E4.mjs.map +0 -1
- package/dist/list-ZXFLAF52.js.map +0 -1
- package/dist/login-76NQIHKR.js.map +0 -1
- package/dist/login-EK4WVOI2.mjs.map +0 -1
- package/dist/observability/index.d.mts +0 -260
- package/dist/observability/index.d.ts +0 -260
- package/dist/observability/index.js +0 -21
- package/dist/observability/index.js.map +0 -1
- package/dist/observability/index.mjs +0 -21
- package/dist/observability/index.mjs.map +0 -1
- package/dist/observability/instrumentation/langchain/index.d.mts +0 -40
- package/dist/observability/instrumentation/langchain/index.d.ts +0 -40
- package/dist/observability/instrumentation/langchain/index.js +0 -668
- package/dist/observability/instrumentation/langchain/index.js.map +0 -1
- package/dist/observability/instrumentation/langchain/index.mjs +0 -668
- package/dist/observability/instrumentation/langchain/index.mjs.map +0 -1
- package/dist/prompt/index.d.mts +0 -10
- package/dist/prompt/index.d.ts +0 -10
- package/dist/prompt/index.js +0 -22
- package/dist/prompt/index.js.map +0 -1
- package/dist/prompt/index.mjs +0 -22
- package/dist/prompt/index.mjs.map +0 -1
- package/dist/record-evaluation-CmxMXa-3.d.mts +0 -25
- package/dist/record-evaluation-CmxMXa-3.d.ts +0 -25
- package/dist/remove-SDJYEPAY.mjs.map +0 -1
- package/dist/remove-XBNGIVMR.js.map +0 -1
- package/dist/sync-EISKGPTL.js.map +0 -1
- package/dist/sync-ST2IWXSB.mjs.map +0 -1
- package/dist/trace-CqaKo0kZ.d.ts +0 -622
- package/dist/trace-DtVc5GhF.d.mts +0 -622
- /package/dist/{chunk-Y666BJA5.mjs.map → chunk-CU3443HD.mjs.map} +0 -0
- /package/dist/{chunk-E7UE2MPD.mjs.map → chunk-ECUXLXFT.mjs.map} +0 -0
- /package/dist/{create-QUZYBMQB.mjs.map → create-MK7NEGCM.mjs.map} +0 -0
- /package/dist/{init-H67RW22E.mjs.map → init-RINSTP4L.mjs.map} +0 -0
- /package/dist/{evaluation → observability-sdk}/index.mjs.map +0 -0
|
@@ -3,11 +3,16 @@
|
|
|
3
3
|
var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
+
var _chunk5EVBOHJYjs = require('./chunk-5EVBOHJY.js');
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
require('./chunk-
|
|
9
|
-
require('./chunk-
|
|
10
|
-
require('./chunk-
|
|
8
|
+
|
|
9
|
+
var _chunk4ZSSHX6Fjs = require('./chunk-4ZSSHX6F.js');
|
|
10
|
+
require('./chunk-YH5TIVK2.js');
|
|
11
|
+
require('./chunk-M4VUHTT2.js');
|
|
12
|
+
require('./chunk-OUCVXP4G.js');
|
|
13
|
+
require('./chunk-DISMHYXC.js');
|
|
14
|
+
require('./chunk-SGNJDRCT.js');
|
|
15
|
+
require('./chunk-OXBO24RB.js');
|
|
11
16
|
|
|
12
17
|
// src/cli/commands/list.ts
|
|
13
18
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
@@ -24,7 +29,10 @@ var formatTable = (data, headers) => {
|
|
|
24
29
|
headers.forEach((header) => {
|
|
25
30
|
colWidths[header] = Math.max(
|
|
26
31
|
header.length,
|
|
27
|
-
...data.map((row) =>
|
|
32
|
+
...data.map((row) => {
|
|
33
|
+
var _a;
|
|
34
|
+
return stripAnsi((_a = row[header]) != null ? _a : "").length;
|
|
35
|
+
})
|
|
28
36
|
);
|
|
29
37
|
});
|
|
30
38
|
const headerRow = headers.map((header) => _chalk2.default.bold(header.padEnd(colWidths[header]))).join(" ");
|
|
@@ -33,7 +41,8 @@ var formatTable = (data, headers) => {
|
|
|
33
41
|
console.log(_chalk2.default.gray(separator));
|
|
34
42
|
data.forEach((row) => {
|
|
35
43
|
const dataRow = headers.map((header) => {
|
|
36
|
-
|
|
44
|
+
var _a;
|
|
45
|
+
const value = (_a = row[header]) != null ? _a : "";
|
|
37
46
|
const strippedLength = stripAnsi(value).length;
|
|
38
47
|
const paddingNeeded = colWidths[header] - strippedLength;
|
|
39
48
|
const paddedValue = value + " ".repeat(Math.max(0, paddingNeeded));
|
|
@@ -70,10 +79,10 @@ var formatRelativeTime = (dateString) => {
|
|
|
70
79
|
var listCommand = async () => {
|
|
71
80
|
try {
|
|
72
81
|
_chunkF6E4XQQUjs.checkApiKey.call(void 0, );
|
|
73
|
-
const
|
|
82
|
+
const langwatch = new (0, _chunk5EVBOHJYjs.LangWatch)();
|
|
74
83
|
const spinner = _ora2.default.call(void 0, "Fetching prompts from server...").start();
|
|
75
84
|
try {
|
|
76
|
-
const allPrompts = await
|
|
85
|
+
const allPrompts = await langwatch.prompts.getAll();
|
|
77
86
|
const prompts = allPrompts.filter((prompt) => prompt.version);
|
|
78
87
|
const draftPrompts = allPrompts.filter((prompt) => !prompt.version);
|
|
79
88
|
spinner.succeed(
|
|
@@ -89,12 +98,15 @@ var listCommand = async () => {
|
|
|
89
98
|
return;
|
|
90
99
|
}
|
|
91
100
|
console.log();
|
|
92
|
-
const tableData = prompts.map((prompt) =>
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
101
|
+
const tableData = prompts.map((prompt) => {
|
|
102
|
+
var _a, _b;
|
|
103
|
+
return {
|
|
104
|
+
Name: (_a = prompt.handle) != null ? _a : `${prompt.name} ` + _chalk2.default.gray(`(${prompt.id})`),
|
|
105
|
+
Version: prompt.version ? `${prompt.version}` : "N/A",
|
|
106
|
+
Model: (_b = prompt.model) != null ? _b : "N/A",
|
|
107
|
+
Updated: formatRelativeTime(prompt.updatedAt)
|
|
108
|
+
};
|
|
109
|
+
});
|
|
98
110
|
formatTable(tableData, ["Name", "Version", "Model", "Updated"]);
|
|
99
111
|
console.log();
|
|
100
112
|
console.log(
|
|
@@ -106,7 +118,7 @@ var listCommand = async () => {
|
|
|
106
118
|
);
|
|
107
119
|
} catch (error) {
|
|
108
120
|
spinner.fail();
|
|
109
|
-
if (error instanceof
|
|
121
|
+
if (error instanceof _chunk4ZSSHX6Fjs.PromptsError) {
|
|
110
122
|
console.error(_chalk2.default.red(`Error: ${error.message}`));
|
|
111
123
|
} else {
|
|
112
124
|
console.error(
|
|
@@ -118,7 +130,7 @@ var listCommand = async () => {
|
|
|
118
130
|
process.exit(1);
|
|
119
131
|
}
|
|
120
132
|
} catch (error) {
|
|
121
|
-
if (error instanceof
|
|
133
|
+
if (error instanceof _chunk4ZSSHX6Fjs.PromptsError) {
|
|
122
134
|
console.error(_chalk2.default.red(`Error: ${error.message}`));
|
|
123
135
|
} else {
|
|
124
136
|
console.error(
|
|
@@ -133,4 +145,4 @@ var listCommand = async () => {
|
|
|
133
145
|
|
|
134
146
|
|
|
135
147
|
exports.listCommand = listCommand;
|
|
136
|
-
//# sourceMappingURL=list-
|
|
148
|
+
//# sourceMappingURL=list-OLLQ7XKZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-OLLQ7XKZ.js","../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;AChBA,4EAAkB;AAClB,oEAAgB;AAMhB,IAAM,UAAA,EAAY,CAAC,GAAA,EAAA,GAAwB;AACzC,EAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,mBAAA,EAAqB,EAAE,CAAA;AAC5C,CAAA;AAGA,IAAM,YAAA,EAAc,CAClB,IAAA,EACA,OAAA,EAAA,GACS;AACT,EAAA,GAAA,CAAI,IAAA,CAAK,OAAA,IAAW,CAAA,EAAG;AACrB,IAAA,OAAA,CAAQ,GAAA,CAAI,eAAA,CAAM,IAAA,CAAK,kBAAkB,CAAC,CAAA;AAC1C,IAAA,MAAA;AAAA,EACF;AAGA,EAAA,MAAM,UAAA,EAAoC,CAAC,CAAA;AAC3C,EAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,EAAA,GAAW;AAC1B,IAAA,SAAA,CAAU,MAAM,EAAA,EAAI,IAAA,CAAK,GAAA;AAAA,MACvB,MAAA,CAAO,MAAA;AAAA,MACP,GAAG,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,EAAA,GAAK;AA1BxB,QAAA,IAAA,EAAA;AA0B2B,QAAA,OAAA,SAAA,CAAA,CAAU,GAAA,EAAA,GAAA,CAAI,MAAM,CAAA,EAAA,GAAV,KAAA,EAAA,GAAA,EAAe,EAAE,CAAA,CAAE,MAAA;AAAA,MAAA,CAAM;AAAA,IAC1D,CAAA;AAAA,EACF,CAAC,CAAA;AAGD,EAAA,MAAM,UAAA,EAAY,OAAA,CACf,GAAA,CAAI,CAAC,MAAA,EAAA,GAAW,eAAA,CAAM,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,SAAA,CAAU,MAAM,CAAE,CAAC,CAAC,CAAA,CAC7D,IAAA,CAAK,IAAI,CAAA;AACZ,EAAA,OAAA,CAAQ,GAAA,CAAI,SAAS,CAAA;AAGrB,EAAA,MAAM,UAAA,EAAY,OAAA,CACf,GAAA,CAAI,CAAC,MAAA,EAAA,GAAW,QAAA,CAAI,MAAA,CAAO,SAAA,CAAU,MAAM,CAAE,CAAC,CAAA,CAC9C,IAAA,CAAK,IAAI,CAAA;AACZ,EAAA,OAAA,CAAQ,GAAA,CAAI,eAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA;AAGjC,EAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,GAAA,EAAA,GAAQ;AACpB,IAAA,MAAM,QAAA,EAAU,OAAA,CACb,GAAA,CAAI,CAAC,MAAA,EAAA,GAAW;AA7CvB,MAAA,IAAA,EAAA;AA8CQ,MAAA,MAAM,MAAA,EAAA,CAAQ,GAAA,EAAA,GAAA,CAAI,MAAM,CAAA,EAAA,GAAV,KAAA,EAAA,GAAA,EAAe,EAAA;AAC7B,MAAA,MAAM,eAAA,EAAiB,SAAA,CAAU,KAAK,CAAA,CAAE,MAAA;AACxC,MAAA,MAAM,cAAA,EAAgB,SAAA,CAAU,MAAM,EAAA,EAAK,cAAA;AAC3C,MAAA,MAAM,YAAA,EAAc,MAAA,EAAQ,GAAA,CAAI,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,aAAa,CAAC,CAAA;AAGjE,MAAA,GAAA,CAAI,OAAA,IAAW,MAAA,EAAQ;AACrB,QAAA,OAAO,eAAA,CAAM,IAAA,CAAK,WAAW,CAAA;AAAA,MAC/B,EAAA,KAAA,GAAA,CAAW,OAAA,IAAW,SAAA,EAAW;AAC/B,QAAA,OAAO,eAAA,CAAM,KAAA,CAAM,WAAW,CAAA;AAAA,MAChC,EAAA,KAAA,GAAA,CAAW,OAAA,IAAW,OAAA,EAAS;AAC7B,QAAA,OAAO,eAAA,CAAM,MAAA,CAAO,WAAW,CAAA;AAAA,MACjC,EAAA,KAAO;AACL,QAAA,OAAO,eAAA,CAAM,IAAA,CAAK,WAAW,CAAA;AAAA,MAC/B;AAAA,IACF,CAAC,CAAA,CACA,IAAA,CAAK,IAAI,CAAA;AACZ,IAAA,OAAA,CAAQ,GAAA,CAAI,OAAO,CAAA;AAAA,EACrB,CAAC,CAAA;AACH,CAAA;AAEA,IAAM,mBAAA,EAAqB,CAAC,UAAA,EAAA,GAA+B;AACzD,EAAA,MAAM,KAAA,EAAO,IAAI,IAAA,CAAK,UAAU,CAAA;AAChC,EAAA,MAAM,IAAA,kBAAM,IAAI,IAAA,CAAK,CAAA;AACrB,EAAA,MAAM,OAAA,EAAS,GAAA,CAAI,OAAA,CAAQ,EAAA,EAAI,IAAA,CAAK,OAAA,CAAQ,CAAA;AAE5C,EAAA,MAAM,QAAA,EAAU,IAAA,CAAK,KAAA,CAAM,OAAA,EAAS,GAAI,CAAA;AACxC,EAAA,MAAM,QAAA,EAAU,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,EAAE,CAAA;AACvC,EAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,EAAE,CAAA;AACrC,EAAA,MAAM,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,MAAA,EAAQ,EAAE,CAAA;AAClC,EAAA,MAAM,OAAA,EAAS,IAAA,CAAK,KAAA,CAAM,KAAA,EAAO,EAAE,CAAA;AACnC,EAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,KAAA,CAAM,KAAA,EAAO,GAAG,CAAA;AAEnC,EAAA,GAAA,CAAI,MAAA,EAAQ,CAAA,EAAG,OAAO,CAAA,EAAA;AACC,EAAA;AACF,EAAA;AACC,EAAA;AACL,EAAA;AACA,EAAA;AACnB;AAE2B;AACrB,EAAA;AAEU,IAAA;AAGM,IAAA;AAEE,IAAA;AAEhB,IAAA;AAEiB,MAAA;AACH,MAAA;AACV,MAAA;AAEE,MAAA;AACW,QAAA;AAER,UAAA;AAGP,QAAA;AACJ,MAAA;AAEY,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACZ,QAAA;AACF,MAAA;AAEY,MAAA;AAGM,MAAA;AA3HxB,QAAA;AA2HiD,QAAA;AACnC,UAAA;AACG,UAAA;AACF,UAAA;AACE,UAAA;AACX,QAAA;AAAE,MAAA;AAGU,MAAA;AAEA,MAAA;AACJ,MAAA;AACA,QAAA;AACS,UAAA;AACX,YAAA;AACD,UAAA;AACH,QAAA;AACF,MAAA;AACc,IAAA;AACD,MAAA;AACT,MAAA;AACY,QAAA;AACT,MAAA;AACG,QAAA;AACA,UAAA;AACJ,YAAA;AAGF,UAAA;AACF,QAAA;AACF,MAAA;AACc,MAAA;AAChB,IAAA;AACc,EAAA;AACO,IAAA;AACL,MAAA;AACT,IAAA;AACG,MAAA;AACA,QAAA;AACJ,UAAA;AAGF,QAAA;AACF,MAAA;AACF,IAAA;AACc,IAAA;AAChB,EAAA;AACF;AD1ByB;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-OLLQ7XKZ.js","sourcesContent":[null,"import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptsError } from \"@/client-sdk/services/prompts\";\nimport { LangWatch } from \"@/client-sdk\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n// Helper to strip ANSI codes for length calculation\nconst stripAnsi = (str: string): string => {\n return str.replace(/\\u001b\\[[0-9;]*m/g, \"\");\n};\n\n// Simple table formatting helper\nconst formatTable = (\n data: Array<Record<string, string>>,\n headers: string[],\n): void => {\n if (data.length === 0) {\n console.log(chalk.gray(\"No prompts found\"));\n return;\n }\n\n // Calculate column widths (strip ANSI codes for accurate length calculation)\n const colWidths: Record<string, number> = {};\n headers.forEach((header) => {\n colWidths[header] = Math.max(\n header.length,\n ...data.map((row) => stripAnsi(row[header] ?? \"\").length),\n );\n });\n\n // Print header\n const headerRow = headers\n .map((header) => chalk.bold(header.padEnd(colWidths[header]!)))\n .join(\" \");\n console.log(headerRow);\n\n // Print separator\n const separator = headers\n .map((header) => \"─\".repeat(colWidths[header]!))\n .join(\" \");\n console.log(chalk.gray(separator));\n\n // Print data rows\n data.forEach((row) => {\n const dataRow = headers\n .map((header) => {\n const value = row[header] ?? \"\";\n const strippedLength = stripAnsi(value).length;\n const paddingNeeded = colWidths[header]! - strippedLength;\n const paddedValue = value + \" \".repeat(Math.max(0, paddingNeeded));\n\n // Color coding\n if (header === \"Name\") {\n return chalk.cyan(paddedValue);\n } else if (header === \"Version\") {\n return chalk.green(paddedValue);\n } else if (header === \"Model\") {\n return chalk.yellow(paddedValue);\n } else {\n return chalk.gray(paddedValue);\n }\n })\n .join(\" \");\n console.log(dataRow);\n });\n};\n\nconst formatRelativeTime = (dateString: string): string => {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n\n const seconds = Math.floor(diffMs / 1000);\n const minutes = Math.floor(seconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const months = Math.floor(days / 30);\n const years = Math.floor(days / 365);\n\n if (years > 0) return `${years}y ago`;\n if (months > 0) return `${months}mo ago`;\n if (days > 0) return `${days}d ago`;\n if (hours > 0) return `${hours}h ago`;\n if (minutes > 0) return `${minutes}m ago`;\n return `${seconds}s ago`;\n};\n\nexport const listCommand = async (): Promise<void> => {\n try {\n // Check API key before doing anything else\n checkApiKey();\n\n // Get LangWatch client\n const langwatch = new LangWatch();\n\n const spinner = ora(\"Fetching prompts from server...\").start();\n\n try {\n // Fetch all prompts\n const allPrompts = await langwatch.prompts.getAll();\n const prompts = allPrompts.filter((prompt) => prompt.version);\n const draftPrompts = allPrompts.filter((prompt) => !prompt.version);\n\n spinner.succeed(\n `Found ${prompts.length} published prompt${prompts.length !== 1 ? \"s\" : \"\"} ` +\n chalk.gray(\n `(+${draftPrompts.length} draft${\n draftPrompts.length !== 1 ? \"s\" : \"\"\n })`,\n ),\n );\n\n if (prompts.length === 0) {\n console.log();\n console.log(chalk.gray(\"No prompts found on the server.\"));\n console.log(chalk.gray(\"Create your first prompt with:\"));\n console.log(chalk.cyan(\" langwatch prompt init\"));\n return;\n }\n\n console.log();\n\n // Format prompts for table display\n const tableData = prompts.map((prompt) => ({\n Name: prompt.handle ?? `${prompt.name} ` + chalk.gray(`(${prompt.id})`),\n Version: prompt.version ? `${prompt.version}` : \"N/A\",\n Model: prompt.model ?? \"N/A\",\n Updated: formatRelativeTime(prompt.updatedAt),\n }));\n\n // Display table\n formatTable(tableData, [\"Name\", \"Version\", \"Model\", \"Updated\"]);\n\n console.log();\n console.log(\n chalk.gray(\n `Use ${chalk.cyan(\n \"langwatch prompt add <name>\",\n )} to add a prompt to your project`,\n ),\n );\n } catch (error) {\n spinner.fail();\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Error fetching prompts: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n }\n process.exit(1);\n }\n } catch (error) {\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Unexpected error: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n }\n process.exit(1);\n }\n};\n"]}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
getEndpoint
|
|
3
|
-
} from "./chunk-QEWDG5QE.mjs";
|
|
4
|
-
import "./chunk-YN4436PK.mjs";
|
|
1
|
+
import "./chunk-CU3443HD.mjs";
|
|
5
2
|
|
|
6
3
|
// src/cli/commands/login.ts
|
|
7
4
|
import * as fs from "fs";
|
|
@@ -9,6 +6,10 @@ import * as path from "path";
|
|
|
9
6
|
import chalk from "chalk";
|
|
10
7
|
import ora from "ora";
|
|
11
8
|
import prompts from "prompts";
|
|
9
|
+
var getEndpoint = () => {
|
|
10
|
+
var _a;
|
|
11
|
+
return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : "https://app.langwatch.ai";
|
|
12
|
+
};
|
|
12
13
|
var updateEnvFile = (apiKey) => {
|
|
13
14
|
const envPath = path.join(process.cwd(), ".env");
|
|
14
15
|
if (!fs.existsSync(envPath)) {
|
|
@@ -107,4 +108,4 @@ var loginCommand = async () => {
|
|
|
107
108
|
export {
|
|
108
109
|
loginCommand
|
|
109
110
|
};
|
|
110
|
-
//# sourceMappingURL=login-
|
|
111
|
+
//# sourceMappingURL=login-RCNKL5AM.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\";\nconst getEndpoint = (): string => {\n return process.env.LANGWATCH_ENDPOINT ?? \"https://app.langwatch.ai\";\n};\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,7 +1,4 @@
|
|
|
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');
|
|
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 }; }require('./chunk-OXBO24RB.js');
|
|
5
2
|
|
|
6
3
|
// src/cli/commands/login.ts
|
|
7
4
|
var _fs = require('fs'); var fs = _interopRequireWildcard(_fs);
|
|
@@ -9,6 +6,10 @@ var _path = require('path'); var path = _interopRequireWildcard(_path);
|
|
|
9
6
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
10
7
|
var _ora = require('ora'); var _ora2 = _interopRequireDefault(_ora);
|
|
11
8
|
var _prompts = require('prompts'); var _prompts2 = _interopRequireDefault(_prompts);
|
|
9
|
+
var getEndpoint = () => {
|
|
10
|
+
var _a;
|
|
11
|
+
return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : "https://app.langwatch.ai";
|
|
12
|
+
};
|
|
12
13
|
var updateEnvFile = (apiKey) => {
|
|
13
14
|
const envPath = path.join(process.cwd(), ".env");
|
|
14
15
|
if (!fs.existsSync(envPath)) {
|
|
@@ -45,7 +46,7 @@ var loginCommand = async () => {
|
|
|
45
46
|
)
|
|
46
47
|
);
|
|
47
48
|
console.log();
|
|
48
|
-
const endpoint =
|
|
49
|
+
const endpoint = getEndpoint();
|
|
49
50
|
const authUrl = `${endpoint}/authorize`;
|
|
50
51
|
console.log(_chalk2.default.cyan(`Opening: ${authUrl}`));
|
|
51
52
|
const spinner = _ora2.default.call(void 0, "Opening browser...").start();
|
|
@@ -107,4 +108,4 @@ var loginCommand = async () => {
|
|
|
107
108
|
|
|
108
109
|
|
|
109
110
|
exports.loginCommand = loginCommand;
|
|
110
|
-
//# sourceMappingURL=login-
|
|
111
|
+
//# sourceMappingURL=login-XF3BQQPV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-XF3BQQPV.js","../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA,0dAA4B;AAC5B;AACA;ACFA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAChB,oFAAoB;AACpB,IAAM,YAAA,EAAc,CAAA,EAAA,GAAc;AALlC,EAAA,IAAA,EAAA;AAME,EAAA,OAAA,CAAO,GAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAA,GAAZ,KAAA,EAAA,GAAA,EAAkC,0BAAA;AAC3C,CAAA;AAEA,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;AD1ByC;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-XF3BQQPV.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\";\nconst getEndpoint = (): string => {\n return process.env.LANGWATCH_ENDPOINT ?? \"https://app.langwatch.ai\";\n};\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,134 @@
|
|
|
1
|
+
export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, a as LangWatchExporterOptions, c as LangWatchLogger, L as LangWatchTraceExporter, a as LangWatchTraceExporterOptions, S as SpanProcessingExcludeRule, g as getLangWatchLogger, b as getLangWatchLoggerFromProvider, d as getLangWatchTracer, e as getLangWatchTracerFromProvider } from '../implementation-C4lvooSg.mjs';
|
|
2
|
+
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
|
|
3
|
+
import { a as DataCaptureMode } from '../types-Dmazk5Bk.mjs';
|
|
4
|
+
export { b as DataCaptureConfig, c as DataCaptureContext, D as DataCaptureOptions, d as DataCapturePredicate } from '../types-Dmazk5Bk.mjs';
|
|
5
|
+
import { L as LangWatchSpan } from '../types-1q5wIYP5.mjs';
|
|
6
|
+
export { f as INPUT_OUTPUT_TYPES, I as InputOutputType, J as JsonSerializable, b as LangWatchSpanMetrics, d as LangWatchSpanOptions, c as LangWatchSpanRAGContext, a as LangWatchTracer, e as SimpleChatMessage, S as SpanType, s as spanTypes } from '../types-1q5wIYP5.mjs';
|
|
7
|
+
import { Span } from '@opentelemetry/api';
|
|
8
|
+
export { b as SemConvAttributeKey, S as SemConvAttributes, a as SemConvLogRecordAttributes, l as attributes } from '../types-DRiQaKFG.mjs';
|
|
9
|
+
import '@opentelemetry/sdk-trace-base';
|
|
10
|
+
import '@opentelemetry/exporter-trace-otlp-http';
|
|
11
|
+
import '@opentelemetry/api-logs';
|
|
12
|
+
import '@opentelemetry/semantic-conventions';
|
|
13
|
+
import '@opentelemetry/semantic-conventions/incubating';
|
|
14
|
+
|
|
15
|
+
interface LangWatchLogsExporterOptions {
|
|
16
|
+
endpoint?: string;
|
|
17
|
+
apiKey?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* LangWatchLogsExporter extends the OpenTelemetry OTLP HTTP logs exporter
|
|
21
|
+
* to send logs to LangWatch with proper authentication and metadata headers.
|
|
22
|
+
*
|
|
23
|
+
* This exporter automatically configures:
|
|
24
|
+
* - Authorization headers using the provided API key or environment variables/fallback
|
|
25
|
+
* - SDK version and language identification headers
|
|
26
|
+
* - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { LangWatchLogsExporter } from '@langwatch/observability';
|
|
31
|
+
*
|
|
32
|
+
* // Using environment variables/fallback configuration
|
|
33
|
+
* const exporter = new LangWatchLogsExporter();
|
|
34
|
+
*
|
|
35
|
+
* // Using custom options
|
|
36
|
+
* const exporter = new LangWatchLogsExporter({
|
|
37
|
+
* apiKey: 'your-api-key',
|
|
38
|
+
* endpoint: 'https://custom.langwatch.com'
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
declare class LangWatchLogsExporter extends OTLPLogExporter {
|
|
43
|
+
/**
|
|
44
|
+
* Creates a new LangWatchLogsExporter instance.
|
|
45
|
+
*
|
|
46
|
+
* @param opts - Optional configuration options for the exporter.
|
|
47
|
+
* @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
|
|
48
|
+
* will use environment variables or fallback configuration.
|
|
49
|
+
* @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
|
|
50
|
+
* If not provided, will use environment variables or fallback configuration.
|
|
51
|
+
*/
|
|
52
|
+
constructor(opts?: LangWatchLogsExporterOptions);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Predefined data capture configurations for common use cases.
|
|
57
|
+
*/
|
|
58
|
+
declare const DataCapturePresets: {
|
|
59
|
+
/**
|
|
60
|
+
* Capture both input and output - useful for development and debugging.
|
|
61
|
+
*/
|
|
62
|
+
readonly CAPTURE_ALL: DataCaptureMode;
|
|
63
|
+
/**
|
|
64
|
+
* Capture nothing - useful for high-security environments.
|
|
65
|
+
*/
|
|
66
|
+
readonly CAPTURE_NONE: DataCaptureMode;
|
|
67
|
+
/**
|
|
68
|
+
* Capture only inputs - useful when you want to see what's being sent.
|
|
69
|
+
*/
|
|
70
|
+
readonly INPUT_ONLY: DataCaptureMode;
|
|
71
|
+
/**
|
|
72
|
+
* Capture only outputs - useful when you want to see responses.
|
|
73
|
+
*/
|
|
74
|
+
readonly OUTPUT_ONLY: DataCaptureMode;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Creates a LangWatchSpan, which adds additional methods to an OpenTelemetry Span.
|
|
79
|
+
*
|
|
80
|
+
* @param span - The OpenTelemetry Span to add LangWatch methods to
|
|
81
|
+
* @returns A LangWatchSpan with additional methods for LLM/GenAI observability
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* import { createLangWatchSpan } from './span';
|
|
86
|
+
* const otelSpan = tracer.startSpan('llm-call');
|
|
87
|
+
* const span = createLangWatchSpan(otelSpan);
|
|
88
|
+
* span.setType('llm').setInput('Prompt').setOutput('Completion');
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function createLangWatchSpan(span: Span): LangWatchSpan;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Determines the effective data capture mode.
|
|
95
|
+
*
|
|
96
|
+
* @returns The resolved {@link DataCaptureMode} ("all", "input", or "output").
|
|
97
|
+
*
|
|
98
|
+
* @remarks
|
|
99
|
+
* The mode is determined by the configuration, which can be a string, function, or object. Defaults to "all" if not specified.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```ts
|
|
103
|
+
* const mode = getDataCaptureMode();
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
declare function getDataCaptureMode(): DataCaptureMode;
|
|
107
|
+
/**
|
|
108
|
+
* Determines if input data should be captured.
|
|
109
|
+
*
|
|
110
|
+
* @returns `true` if input should be captured, otherwise `false`.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```ts
|
|
114
|
+
* if (shouldCaptureInput()) {
|
|
115
|
+
* // Capture input
|
|
116
|
+
* }
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
declare function shouldCaptureInput(): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Determines if output data should be captured.
|
|
122
|
+
*
|
|
123
|
+
* @returns `true` if output should be captured, otherwise `false`.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```ts
|
|
127
|
+
* if (shouldCaptureOutput()) {
|
|
128
|
+
* // Capture output
|
|
129
|
+
* }
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
declare function shouldCaptureOutput(): boolean;
|
|
133
|
+
|
|
134
|
+
export { DataCaptureMode, DataCapturePresets, LangWatchLogsExporter, type LangWatchLogsExporterOptions, LangWatchSpan, createLangWatchSpan, getDataCaptureMode, shouldCaptureInput, shouldCaptureOutput };
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, a as LangWatchExporterOptions, c as LangWatchLogger, L as LangWatchTraceExporter, a as LangWatchTraceExporterOptions, S as SpanProcessingExcludeRule, g as getLangWatchLogger, b as getLangWatchLoggerFromProvider, d as getLangWatchTracer, e as getLangWatchTracerFromProvider } from '../implementation-CzemP9jY.js';
|
|
2
|
+
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
|
|
3
|
+
import { a as DataCaptureMode } from '../types-Dmazk5Bk.js';
|
|
4
|
+
export { b as DataCaptureConfig, c as DataCaptureContext, D as DataCaptureOptions, d as DataCapturePredicate } from '../types-Dmazk5Bk.js';
|
|
5
|
+
import { L as LangWatchSpan } from '../types-C9k5gGhU.js';
|
|
6
|
+
export { f as INPUT_OUTPUT_TYPES, I as InputOutputType, J as JsonSerializable, b as LangWatchSpanMetrics, d as LangWatchSpanOptions, c as LangWatchSpanRAGContext, a as LangWatchTracer, e as SimpleChatMessage, S as SpanType, s as spanTypes } from '../types-C9k5gGhU.js';
|
|
7
|
+
import { Span } from '@opentelemetry/api';
|
|
8
|
+
export { b as SemConvAttributeKey, S as SemConvAttributes, a as SemConvLogRecordAttributes, l as attributes } from '../types-DRiQaKFG.js';
|
|
9
|
+
import '@opentelemetry/sdk-trace-base';
|
|
10
|
+
import '@opentelemetry/exporter-trace-otlp-http';
|
|
11
|
+
import '@opentelemetry/api-logs';
|
|
12
|
+
import '@opentelemetry/semantic-conventions';
|
|
13
|
+
import '@opentelemetry/semantic-conventions/incubating';
|
|
14
|
+
|
|
15
|
+
interface LangWatchLogsExporterOptions {
|
|
16
|
+
endpoint?: string;
|
|
17
|
+
apiKey?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* LangWatchLogsExporter extends the OpenTelemetry OTLP HTTP logs exporter
|
|
21
|
+
* to send logs to LangWatch with proper authentication and metadata headers.
|
|
22
|
+
*
|
|
23
|
+
* This exporter automatically configures:
|
|
24
|
+
* - Authorization headers using the provided API key or environment variables/fallback
|
|
25
|
+
* - SDK version and language identification headers
|
|
26
|
+
* - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { LangWatchLogsExporter } from '@langwatch/observability';
|
|
31
|
+
*
|
|
32
|
+
* // Using environment variables/fallback configuration
|
|
33
|
+
* const exporter = new LangWatchLogsExporter();
|
|
34
|
+
*
|
|
35
|
+
* // Using custom options
|
|
36
|
+
* const exporter = new LangWatchLogsExporter({
|
|
37
|
+
* apiKey: 'your-api-key',
|
|
38
|
+
* endpoint: 'https://custom.langwatch.com'
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
declare class LangWatchLogsExporter extends OTLPLogExporter {
|
|
43
|
+
/**
|
|
44
|
+
* Creates a new LangWatchLogsExporter instance.
|
|
45
|
+
*
|
|
46
|
+
* @param opts - Optional configuration options for the exporter.
|
|
47
|
+
* @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
|
|
48
|
+
* will use environment variables or fallback configuration.
|
|
49
|
+
* @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
|
|
50
|
+
* If not provided, will use environment variables or fallback configuration.
|
|
51
|
+
*/
|
|
52
|
+
constructor(opts?: LangWatchLogsExporterOptions);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Predefined data capture configurations for common use cases.
|
|
57
|
+
*/
|
|
58
|
+
declare const DataCapturePresets: {
|
|
59
|
+
/**
|
|
60
|
+
* Capture both input and output - useful for development and debugging.
|
|
61
|
+
*/
|
|
62
|
+
readonly CAPTURE_ALL: DataCaptureMode;
|
|
63
|
+
/**
|
|
64
|
+
* Capture nothing - useful for high-security environments.
|
|
65
|
+
*/
|
|
66
|
+
readonly CAPTURE_NONE: DataCaptureMode;
|
|
67
|
+
/**
|
|
68
|
+
* Capture only inputs - useful when you want to see what's being sent.
|
|
69
|
+
*/
|
|
70
|
+
readonly INPUT_ONLY: DataCaptureMode;
|
|
71
|
+
/**
|
|
72
|
+
* Capture only outputs - useful when you want to see responses.
|
|
73
|
+
*/
|
|
74
|
+
readonly OUTPUT_ONLY: DataCaptureMode;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Creates a LangWatchSpan, which adds additional methods to an OpenTelemetry Span.
|
|
79
|
+
*
|
|
80
|
+
* @param span - The OpenTelemetry Span to add LangWatch methods to
|
|
81
|
+
* @returns A LangWatchSpan with additional methods for LLM/GenAI observability
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* import { createLangWatchSpan } from './span';
|
|
86
|
+
* const otelSpan = tracer.startSpan('llm-call');
|
|
87
|
+
* const span = createLangWatchSpan(otelSpan);
|
|
88
|
+
* span.setType('llm').setInput('Prompt').setOutput('Completion');
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function createLangWatchSpan(span: Span): LangWatchSpan;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Determines the effective data capture mode.
|
|
95
|
+
*
|
|
96
|
+
* @returns The resolved {@link DataCaptureMode} ("all", "input", or "output").
|
|
97
|
+
*
|
|
98
|
+
* @remarks
|
|
99
|
+
* The mode is determined by the configuration, which can be a string, function, or object. Defaults to "all" if not specified.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```ts
|
|
103
|
+
* const mode = getDataCaptureMode();
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
declare function getDataCaptureMode(): DataCaptureMode;
|
|
107
|
+
/**
|
|
108
|
+
* Determines if input data should be captured.
|
|
109
|
+
*
|
|
110
|
+
* @returns `true` if input should be captured, otherwise `false`.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```ts
|
|
114
|
+
* if (shouldCaptureInput()) {
|
|
115
|
+
* // Capture input
|
|
116
|
+
* }
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
declare function shouldCaptureInput(): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Determines if output data should be captured.
|
|
122
|
+
*
|
|
123
|
+
* @returns `true` if output should be captured, otherwise `false`.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```ts
|
|
127
|
+
* if (shouldCaptureOutput()) {
|
|
128
|
+
* // Capture output
|
|
129
|
+
* }
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
declare function shouldCaptureOutput(): boolean;
|
|
133
|
+
|
|
134
|
+
export { DataCaptureMode, DataCapturePresets, LangWatchLogsExporter, type LangWatchLogsExporterOptions, LangWatchSpan, createLangWatchSpan, getDataCaptureMode, shouldCaptureInput, shouldCaptureOutput };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkYH5TIVK2js = require('../chunk-YH5TIVK2.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunkM4VUHTT2js = require('../chunk-M4VUHTT2.js');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
var _chunkOUCVXP4Gjs = require('../chunk-OUCVXP4G.js');
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
var _chunkDISMHYXCjs = require('../chunk-DISMHYXC.js');
|
|
23
|
+
require('../chunk-OXBO24RB.js');
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
exports.DataCapturePresets = _chunkYH5TIVK2js.DataCapturePresets; exports.FilterableBatchSpanProcessor = _chunkYH5TIVK2js.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunkOUCVXP4Gjs.LangWatchTraceExporter; exports.LangWatchLogsExporter = _chunkOUCVXP4Gjs.LangWatchLogsExporter; exports.LangWatchTraceExporter = _chunkOUCVXP4Gjs.LangWatchTraceExporter; exports.attributes = _chunkDISMHYXCjs.attributes_exports; exports.createLangWatchSpan = _chunkM4VUHTT2js.createLangWatchSpan; exports.getDataCaptureMode = _chunkDISMHYXCjs.getDataCaptureMode; exports.getLangWatchLogger = _chunkOUCVXP4Gjs.getLangWatchLogger; exports.getLangWatchLoggerFromProvider = _chunkOUCVXP4Gjs.getLangWatchLoggerFromProvider; exports.getLangWatchTracer = _chunkM4VUHTT2js.getLangWatchTracer; exports.getLangWatchTracerFromProvider = _chunkM4VUHTT2js.getLangWatchTracerFromProvider; exports.shouldCaptureInput = _chunkDISMHYXCjs.shouldCaptureInput; exports.shouldCaptureOutput = _chunkDISMHYXCjs.shouldCaptureOutput; exports.spanTypes = _chunkM4VUHTT2js.spanTypes;
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/index.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4hCAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/observability-sdk/index.js"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DataCapturePresets,
|
|
3
|
+
FilterableBatchSpanProcessor
|
|
4
|
+
} from "../chunk-N2V6J3U2.mjs";
|
|
5
|
+
import {
|
|
6
|
+
createLangWatchSpan,
|
|
7
|
+
getLangWatchTracer,
|
|
8
|
+
getLangWatchTracerFromProvider,
|
|
9
|
+
spanTypes
|
|
10
|
+
} from "../chunk-EJWJXTPU.mjs";
|
|
11
|
+
import {
|
|
12
|
+
LangWatchLogsExporter,
|
|
13
|
+
LangWatchTraceExporter,
|
|
14
|
+
getLangWatchLogger,
|
|
15
|
+
getLangWatchLoggerFromProvider
|
|
16
|
+
} from "../chunk-PGWR3OQY.mjs";
|
|
17
|
+
import {
|
|
18
|
+
attributes_exports,
|
|
19
|
+
getDataCaptureMode,
|
|
20
|
+
shouldCaptureInput,
|
|
21
|
+
shouldCaptureOutput
|
|
22
|
+
} from "../chunk-YNQ44U6D.mjs";
|
|
23
|
+
import "../chunk-CU3443HD.mjs";
|
|
24
|
+
export {
|
|
25
|
+
DataCapturePresets,
|
|
26
|
+
FilterableBatchSpanProcessor,
|
|
27
|
+
LangWatchTraceExporter as LangWatchExporter,
|
|
28
|
+
LangWatchLogsExporter,
|
|
29
|
+
LangWatchTraceExporter,
|
|
30
|
+
attributes_exports as attributes,
|
|
31
|
+
createLangWatchSpan,
|
|
32
|
+
getDataCaptureMode,
|
|
33
|
+
getLangWatchLogger,
|
|
34
|
+
getLangWatchLoggerFromProvider,
|
|
35
|
+
getLangWatchTracer,
|
|
36
|
+
getLangWatchTracerFromProvider,
|
|
37
|
+
shouldCaptureInput,
|
|
38
|
+
shouldCaptureOutput,
|
|
39
|
+
spanTypes
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import * as _opentelemetry_api from '@opentelemetry/api';
|
|
2
|
+
import { Attributes } from '@opentelemetry/api';
|
|
3
|
+
import { L as LangWatchSpan, a as LangWatchTracer, C as ChatMessage } from '../../../types-1q5wIYP5.mjs';
|
|
4
|
+
import { AgentAction, AgentFinish } from '@langchain/core/agents';
|
|
5
|
+
import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
|
|
6
|
+
import { DocumentInterface } from '@langchain/core/documents';
|
|
7
|
+
import { Serialized } from '@langchain/core/load/serializable';
|
|
8
|
+
import { BaseMessage } from '@langchain/core/messages';
|
|
9
|
+
import { LLMResult } from '@langchain/core/outputs';
|
|
10
|
+
import { ChainValues } from '@langchain/core/utils/types';
|
|
11
|
+
import '../../../types-DRiQaKFG.mjs';
|
|
12
|
+
import '@opentelemetry/api-logs';
|
|
13
|
+
import '@opentelemetry/semantic-conventions';
|
|
14
|
+
import '@opentelemetry/semantic-conventions/incubating';
|
|
15
|
+
|
|
16
|
+
type RunKind = "llm" | "chat" | "chain" | "tool" | "retriever";
|
|
17
|
+
declare class LangWatchCallbackHandler extends BaseCallbackHandler {
|
|
18
|
+
name: string;
|
|
19
|
+
tracer: LangWatchTracer;
|
|
20
|
+
private spans;
|
|
21
|
+
private parentOf;
|
|
22
|
+
private skipped;
|
|
23
|
+
private seenStarts;
|
|
24
|
+
private startRunSpan;
|
|
25
|
+
private finishRun;
|
|
26
|
+
handleLLMStart(llm: Serialized, prompts: string[], runId: string, parentRunId?: string, extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>, name?: string): Promise<void>;
|
|
27
|
+
handleChatModelStart(llm: Serialized, messages: BaseMessage[][], runId: string, parentRunId?: string, extraParams?: Record<string, unknown>, tags?: string[], metadata?: Record<string, unknown>, name?: string): Promise<void>;
|
|
28
|
+
handleLLMEnd(response: LLMResult, runId: string, parentRunId?: string): Promise<void>;
|
|
29
|
+
handleLLMError(err: Error, runId: string, parentRunId?: string): Promise<void>;
|
|
30
|
+
handleChainStart(chain: Serialized, inputs: ChainValues, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, _runType?: string, name?: string): Promise<void>;
|
|
31
|
+
handleChainEnd(output: ChainValues, runId: string, parentRunId?: string): Promise<void>;
|
|
32
|
+
handleChainError(err: Error, runId: string, parentRunId?: string, tags?: string[], kwargs?: {
|
|
33
|
+
inputs?: Record<string, unknown> | undefined;
|
|
34
|
+
}): Promise<void>;
|
|
35
|
+
handleToolStart(tool: Serialized, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, name?: string): Promise<void>;
|
|
36
|
+
handleToolEnd(output: string, runId: string, parentRunId?: string): Promise<void>;
|
|
37
|
+
handleToolError(err: Error, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
|
|
38
|
+
handleRetrieverStart(retriever: Serialized, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, name?: string): Promise<void>;
|
|
39
|
+
handleRetrieverEnd(documents: DocumentInterface<Record<string, any>>[], runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
|
|
40
|
+
handleRetrieverError(err: Error, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
|
|
41
|
+
handleAgentAction(_action: AgentAction, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
|
|
42
|
+
handleAgentEnd(action: AgentFinish, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
declare function convertFromLangChainMessages(messages: BaseMessage[]): ChatMessage[];
|
|
45
|
+
declare function className(serialized?: Serialized): string;
|
|
46
|
+
declare function shorten(str: string, max?: number): string;
|
|
47
|
+
declare function previewInput(v: unknown): string | undefined;
|
|
48
|
+
declare function ctxSkip(serialized?: Serialized, tags?: string[]): boolean;
|
|
49
|
+
declare function wrapNonScalarValues(value: unknown): string | number | boolean | undefined;
|
|
50
|
+
declare function addLangChainEvent(span: LangWatchSpan, eventName: string, runId: string, parentRunId: string | undefined, tags?: string[], metadata?: Record<string, unknown>, attributes?: Attributes): void;
|
|
51
|
+
declare function setLangGraphAttributes(span: LangWatchSpan, metadata?: Record<string, unknown>): void;
|
|
52
|
+
declare function buildLangChainMetadataAttributes(metadata: Record<string, unknown>): {
|
|
53
|
+
[k: string]: string | number | boolean | undefined;
|
|
54
|
+
};
|
|
55
|
+
declare function applyGenAIAttrs(span: LangWatchSpan, metadata?: Record<string, unknown>, extraParams?: Record<string, unknown>): void;
|
|
56
|
+
declare function getResolvedParentContext(runId: string | undefined, spans: Record<string, LangWatchSpan | undefined>, parentOf: Record<string, string | undefined>): _opentelemetry_api.Context;
|
|
57
|
+
declare function deriveNameAndType(opts: {
|
|
58
|
+
runType: RunKind;
|
|
59
|
+
name?: string;
|
|
60
|
+
serialized?: Serialized;
|
|
61
|
+
metadata?: Record<string, unknown>;
|
|
62
|
+
tags?: string[];
|
|
63
|
+
inputs?: unknown;
|
|
64
|
+
}): {
|
|
65
|
+
name: string;
|
|
66
|
+
type: "llm" | "chain" | "tool" | "rag" | "component";
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export { LangWatchCallbackHandler, addLangChainEvent, applyGenAIAttrs, buildLangChainMetadataAttributes, className, convertFromLangChainMessages, ctxSkip, deriveNameAndType, getResolvedParentContext, previewInput, setLangGraphAttributes, shorten, wrapNonScalarValues };
|