langwatch 0.3.2 → 0.4.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 → add-RGWB3264.js} +35 -28
- package/dist/add-RGWB3264.js.map +1 -0
- package/dist/{add-RD3ZKFAT.mjs → add-WLUMK5VQ.mjs} +23 -16
- package/dist/add-WLUMK5VQ.mjs.map +1 -0
- package/dist/chunk-4ILMGMAP.mjs +155 -0
- package/dist/chunk-4ILMGMAP.mjs.map +1 -0
- package/dist/chunk-4TF2O2TH.js +207 -0
- package/dist/chunk-4TF2O2TH.js.map +1 -0
- package/dist/chunk-5N5BUR2Z.js +636 -0
- package/dist/chunk-5N5BUR2Z.js.map +1 -0
- package/dist/chunk-AZELEDOV.js +155 -0
- package/dist/chunk-AZELEDOV.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-DEVJ7BPE.js +63 -0
- package/dist/chunk-DEVJ7BPE.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-FQSWUK5N.mjs +63 -0
- package/dist/chunk-FQSWUK5N.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-IZ2U3ABC.mjs +636 -0
- package/dist/chunk-IZ2U3ABC.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-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-FJLK5CFL.js → chunk-OXBO24RB.js} +13 -8
- package/dist/chunk-OXBO24RB.js.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/chunk-ZJZ3MIWE.mjs +207 -0
- package/dist/chunk-ZJZ3MIWE.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 +17 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +28 -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-ZXFLAF52.js → list-DBUK47MA.js} +30 -17
- package/dist/list-DBUK47MA.js.map +1 -0
- package/dist/{list-7NPSX2E4.mjs → list-ZOMRKOBV.mjs} +29 -16
- package/dist/list-ZOMRKOBV.mjs.map +1 -0
- package/dist/{login-76NQIHKR.js → login-A7LEPNBR.js} +8 -4
- package/dist/login-A7LEPNBR.js.map +1 -0
- package/dist/{login-EK4WVOI2.mjs → login-ULPHWIAX.mjs} +8 -4
- package/dist/login-ULPHWIAX.mjs.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 +42 -0
- package/dist/observability-sdk/index.js.map +1 -0
- package/dist/observability-sdk/index.mjs +42 -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 +279 -0
- package/dist/observability-sdk/setup/node/index.js.map +1 -0
- package/dist/observability-sdk/setup/node/index.mjs +279 -0
- package/dist/observability-sdk/setup/node/index.mjs.map +1 -0
- package/dist/{remove-XBNGIVMR.js → remove-ODTJLFWR.js} +19 -15
- package/dist/remove-ODTJLFWR.js.map +1 -0
- package/dist/{remove-SDJYEPAY.mjs → remove-RAJBGHQQ.mjs} +12 -8
- package/dist/remove-RAJBGHQQ.mjs.map +1 -0
- package/dist/{sync-ST2IWXSB.mjs → sync-2IXPWN64.mjs} +40 -33
- package/dist/sync-2IXPWN64.mjs.map +1 -0
- package/dist/{sync-EISKGPTL.js → sync-PBOL5ODF.js} +53 -46
- package/dist/sync-PBOL5ODF.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
|
@@ -1,22 +1,28 @@
|
|
|
1
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
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkAZELEDOVjs = require('./chunk-AZELEDOV.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
10
|
-
require('./chunk-
|
|
9
|
+
var _chunk5N5BUR2Zjs = require('./chunk-5N5BUR2Z.js');
|
|
10
|
+
require('./chunk-YH5TIVK2.js');
|
|
11
|
+
require('./chunk-M4VUHTT2.js');
|
|
12
|
+
require('./chunk-4TF2O2TH.js');
|
|
13
|
+
require('./chunk-DEVJ7BPE.js');
|
|
14
|
+
require('./chunk-DISMHYXC.js');
|
|
11
15
|
|
|
12
16
|
|
|
17
|
+
var _chunkK64Y6YUGjs = require('./chunk-K64Y6YUG.js');
|
|
13
18
|
|
|
14
|
-
var _chunkVGHLQXKBjs = require('./chunk-VGHLQXKB.js');
|
|
15
19
|
|
|
20
|
+
var _chunkD2CSG4SJjs = require('./chunk-D2CSG4SJ.js');
|
|
16
21
|
|
|
17
|
-
|
|
18
|
-
require('./chunk-
|
|
19
|
-
require('./chunk-
|
|
22
|
+
|
|
23
|
+
var _chunkSGNJDRCTjs = require('./chunk-SGNJDRCT.js');
|
|
24
|
+
require('./chunk-HA3LI5IK.js');
|
|
25
|
+
require('./chunk-OXBO24RB.js');
|
|
20
26
|
|
|
21
27
|
// src/cli/commands/add.ts
|
|
22
28
|
var _fs = require('fs'); var fs = _interopRequireWildcard(_fs);
|
|
@@ -33,12 +39,12 @@ var addLocalFile = async (name, localFilePath) => {
|
|
|
33
39
|
process.exit(1);
|
|
34
40
|
}
|
|
35
41
|
try {
|
|
36
|
-
const config =
|
|
37
|
-
await
|
|
38
|
-
const promptsConfig =
|
|
42
|
+
const config = _chunkD2CSG4SJjs.FileManager.loadLocalPrompt(localFilePath);
|
|
43
|
+
await _chunkK64Y6YUGjs.ensureProjectInitialized.call(void 0, );
|
|
44
|
+
const promptsConfig = _chunkD2CSG4SJjs.FileManager.loadPromptsConfig();
|
|
39
45
|
promptsConfig.prompts[name] = `file:${localFilePath}`;
|
|
40
|
-
|
|
41
|
-
const lock =
|
|
46
|
+
_chunkD2CSG4SJjs.FileManager.savePromptsConfig(promptsConfig);
|
|
47
|
+
const lock = _chunkD2CSG4SJjs.FileManager.loadPromptsLock();
|
|
42
48
|
lock.prompts[name] = {
|
|
43
49
|
version: 0,
|
|
44
50
|
// Local files start at version 0
|
|
@@ -46,7 +52,7 @@ var addLocalFile = async (name, localFilePath) => {
|
|
|
46
52
|
materialized: localFilePath
|
|
47
53
|
// Store the original file path
|
|
48
54
|
};
|
|
49
|
-
|
|
55
|
+
_chunkD2CSG4SJjs.FileManager.savePromptsLock(lock);
|
|
50
56
|
console.log(_chalk2.default.green(`\u2713 Added local prompt: ${_chalk2.default.cyan(name)} \u2192 ${_chalk2.default.gray(localFilePath)}`));
|
|
51
57
|
} catch (error) {
|
|
52
58
|
console.error(_chalk2.default.red("Error loading local prompt file:"));
|
|
@@ -55,6 +61,7 @@ var addLocalFile = async (name, localFilePath) => {
|
|
|
55
61
|
}
|
|
56
62
|
};
|
|
57
63
|
var addCommand = async (name, options) => {
|
|
64
|
+
var _a;
|
|
58
65
|
try {
|
|
59
66
|
if (!name || name.trim() === "") {
|
|
60
67
|
console.error(_chalk2.default.red("Error: Prompt name cannot be empty"));
|
|
@@ -65,34 +72,34 @@ var addCommand = async (name, options) => {
|
|
|
65
72
|
return;
|
|
66
73
|
}
|
|
67
74
|
_chunkF6E4XQQUjs.checkApiKey.call(void 0, );
|
|
68
|
-
const
|
|
69
|
-
const version = options.version
|
|
75
|
+
const langwatch = new (0, _chunkAZELEDOVjs.LangWatch)();
|
|
76
|
+
const version = (_a = options.version) != null ? _a : "latest";
|
|
70
77
|
const spinner = _ora2.default.call(void 0, `Adding ${_chalk2.default.cyan(`${name}@${version}`)}...`).start();
|
|
71
78
|
try {
|
|
72
|
-
const prompt = await
|
|
79
|
+
const prompt = await langwatch.prompts.get(name);
|
|
73
80
|
if (!prompt) {
|
|
74
81
|
spinner.fail();
|
|
75
82
|
console.error(_chalk2.default.red(`Error: Prompt "${name}" not found`));
|
|
76
83
|
process.exit(1);
|
|
77
84
|
}
|
|
78
85
|
spinner.stop();
|
|
79
|
-
await
|
|
86
|
+
await _chunkK64Y6YUGjs.ensureProjectInitialized.call(void 0, );
|
|
80
87
|
spinner.start(`Adding ${_chalk2.default.cyan(`${name}@${version}`)}...`);
|
|
81
|
-
const materializedPrompt =
|
|
82
|
-
const savedPath =
|
|
88
|
+
const materializedPrompt = _chunkSGNJDRCTjs.PromptConverter.fromApiToMaterialized(prompt);
|
|
89
|
+
const savedPath = _chunkD2CSG4SJjs.FileManager.saveMaterializedPrompt(name, materializedPrompt);
|
|
83
90
|
const relativePath = path.relative(process.cwd(), savedPath);
|
|
84
|
-
const config =
|
|
85
|
-
const lock =
|
|
91
|
+
const config = _chunkD2CSG4SJjs.FileManager.loadPromptsConfig();
|
|
92
|
+
const lock = _chunkD2CSG4SJjs.FileManager.loadPromptsLock();
|
|
86
93
|
config.prompts[name] = version;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
_chunkD2CSG4SJjs.FileManager.updateLockEntry(lock, name, materializedPrompt, savedPath);
|
|
95
|
+
_chunkD2CSG4SJjs.FileManager.savePromptsConfig(config);
|
|
96
|
+
_chunkD2CSG4SJjs.FileManager.savePromptsLock(lock);
|
|
90
97
|
spinner.succeed();
|
|
91
98
|
const displayPath = relativePath.startsWith("./") ? relativePath : `./${relativePath}`;
|
|
92
99
|
console.log(_chalk2.default.green(`\u2713 Pulled ${_chalk2.default.cyan(`${name}@${version}`)} ${_chalk2.default.gray(`(version ${prompt.version})`)} \u2192 ${_chalk2.default.gray(displayPath)}`));
|
|
93
100
|
} catch (error) {
|
|
94
101
|
spinner.fail();
|
|
95
|
-
if (error instanceof
|
|
102
|
+
if (error instanceof _chunk5N5BUR2Zjs.PromptsError) {
|
|
96
103
|
console.error(_chalk2.default.red(`Error: ${error.message}`));
|
|
97
104
|
} else {
|
|
98
105
|
console.error(_chalk2.default.red(`Error adding prompt: ${error instanceof Error ? error.message : "Unknown error"}`));
|
|
@@ -100,7 +107,7 @@ var addCommand = async (name, options) => {
|
|
|
100
107
|
process.exit(1);
|
|
101
108
|
}
|
|
102
109
|
} catch (error) {
|
|
103
|
-
if (error instanceof
|
|
110
|
+
if (error instanceof _chunk5N5BUR2Zjs.PromptsError) {
|
|
104
111
|
console.error(_chalk2.default.red(`Error: ${error.message}`));
|
|
105
112
|
} else {
|
|
106
113
|
console.error(_chalk2.default.red(`Unexpected error: ${error instanceof Error ? error.message : "Unknown error"}`));
|
|
@@ -111,4 +118,4 @@ var addCommand = async (name, options) => {
|
|
|
111
118
|
|
|
112
119
|
|
|
113
120
|
exports.addCommand = addCommand;
|
|
114
|
-
//# sourceMappingURL=add-
|
|
121
|
+
//# sourceMappingURL=add-RGWB3264.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/add-RGWB3264.js","../src/cli/commands/add.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;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;AC1BA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAahB,IAAM,aAAA,EAAe,MAAA,CAAO,IAAA,EAAc,aAAA,EAAA,GAAyC;AAEjF,EAAA,GAAA,CAAI,CAAI,EAAA,CAAA,UAAA,CAAW,aAAa,CAAA,EAAG;AACjC,IAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,CAAM,GAAA,CAAI,CAAA,6BAAA,EAAgC,aAAa,CAAA,CAAA;AACvD,IAAA;AAChB,EAAA;AAE6C,EAAA;AACnB,IAAA;AACV,IAAA;AAChB,EAAA;AAGI,EAAA;AACsD,IAAA;AAGzB,IAAA;AAGqB,IAAA;AACD,IAAA;AACR,IAAA;AAGF,IAAA;AACpB,IAAA;AACV,MAAA;AAAA;AACE,MAAA;AACG,MAAA;AAAA;AAChB,IAAA;AACgC,IAAA;AAEiC,IAAA;AAEnD,EAAA;AAC6C,IAAA;AACM,IAAA;AACnD,IAAA;AAChB,EAAA;AACF;AAEsF;AA1DtF,EAAA;AA2DM,EAAA;AAE+B,IAAA;AAC8B,MAAA;AAC/C,MAAA;AAChB,IAAA;AAGuB,IAAA;AACqB,MAAA;AAC1C,MAAA;AACF,IAAA;AAGY,IAAA;AAEoB,IAAA;AACG,IAAA;AAGkC,IAAA;AAEjE,IAAA;AAE6C,MAAA;AAElC,MAAA;AACE,QAAA;AAC+C,QAAA;AAC9C,QAAA;AAChB,MAAA;AAGa,MAAA;AAGkB,MAAA;AAG8B,MAAA;AAGI,MAAA;AACN,MAAA;AACA,MAAA;AAGd,MAAA;AACJ,MAAA;AAElB,MAAA;AACqC,MAAA;AAGxB,MAAA;AACJ,MAAA;AAEhB,MAAA;AAGmD,MAAA;AACT,MAAA;AAE5C,IAAA;AACD,MAAA;AACsB,MAAA;AACiB,QAAA;AAC7C,MAAA;AAC4D,QAAA;AACnE,MAAA;AACc,MAAA;AAChB,IAAA;AAEc,EAAA;AACqB,IAAA;AACiB,MAAA;AAC7C,IAAA;AACyD,MAAA;AAChE,IAAA;AACc,IAAA;AAChB,EAAA;AACF;ADvB0E;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/add-RGWB3264.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { PromptsError } from \"@/client-sdk/services/prompts\";\nimport { PromptConverter } from \"../utils/promptConverter\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { LangWatch } from \"@/client-sdk\";\n\ninterface AddOptions {\n version?: string;\n localFile?: string;\n}\n\nconst addLocalFile = async (name: string, localFilePath: string): Promise<void> => {\n // Validate that the file exists and has the right extension\n if (!fs.existsSync(localFilePath)) {\n console.error(chalk.red(`Error: Local file not found: ${localFilePath}`));\n process.exit(1);\n }\n\n if (!localFilePath.endsWith('.prompt.yaml')) {\n console.error(chalk.red(`Error: Local file must have .prompt.yaml extension`));\n process.exit(1);\n }\n\n // Load and validate the YAML file\n try {\n const config = FileManager.loadLocalPrompt(localFilePath);\n\n // Ensure project is initialized\n await ensureProjectInitialized();\n\n // Add to prompts.json as a file: dependency\n const promptsConfig = FileManager.loadPromptsConfig();\n promptsConfig.prompts[name] = `file:${localFilePath}`;\n FileManager.savePromptsConfig(promptsConfig);\n\n // Update lock file\n const lock = FileManager.loadPromptsLock();\n lock.prompts[name] = {\n version: 0, // Local files start at version 0\n versionId: \"local\",\n materialized: localFilePath, // Store the original file path\n };\n FileManager.savePromptsLock(lock);\n\n console.log(chalk.green(`✓ Added local prompt: ${chalk.cyan(name)} → ${chalk.gray(localFilePath)}`));\n\n } catch (error) {\n console.error(chalk.red(\"Error loading local prompt file:\"));\n console.error(chalk.red(error instanceof Error ? error.message : String(error)));\n process.exit(1);\n }\n};\n\nexport const addCommand = async (name: string, options: AddOptions): Promise<void> => {\n try {\n // Validate prompt name\n if (!name || name.trim() === \"\") {\n console.error(chalk.red(\"Error: Prompt name cannot be empty\"));\n process.exit(1);\n }\n\n // Handle local file addition\n if (options.localFile) {\n await addLocalFile(name, options.localFile);\n return;\n }\n\n // Check API key before doing anything else\n checkApiKey();\n\n const langwatch = new LangWatch();\n const version = options.version ?? \"latest\";\n\n // Fetch and materialize the prompt (like sync does for individual prompts)\n const spinner = ora(`Adding ${chalk.cyan(`${name}@${version}`)}...`).start();\n\n try {\n // Fetch the prompt from the API\n const prompt = await langwatch.prompts.get(name);\n\n if (!prompt) {\n spinner.fail();\n console.error(chalk.red(`Error: Prompt \"${name}\" not found`));\n process.exit(1);\n }\n\n // Stop spinner before any user input prompts\n spinner.stop();\n\n // Ensure project is initialized (prompts.json, lock file, directories)\n await ensureProjectInitialized();\n\n // Restart spinner for the actual work\n spinner.start(`Adding ${chalk.cyan(`${name}@${version}`)}...`);\n\n // Convert to MaterializedPrompt format and save\n const materializedPrompt = PromptConverter.fromApiToMaterialized(prompt);\n const savedPath = FileManager.saveMaterializedPrompt(name, materializedPrompt);\n const relativePath = path.relative(process.cwd(), savedPath);\n\n // Load existing config and lock, add the new dependency\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n config.prompts[name] = version;\n FileManager.updateLockEntry(lock, name, materializedPrompt, savedPath);\n\n // Save the updated config and lock\n FileManager.savePromptsConfig(config);\n FileManager.savePromptsLock(lock);\n\n spinner.succeed();\n\n // Show what was done (add ./ prefix for consistency)\n const displayPath = relativePath.startsWith('./') ? relativePath : `./${relativePath}`;\n console.log(chalk.green(`✓ Pulled ${chalk.cyan(`${name}@${version}`)} ${chalk.gray(`(version ${prompt.version})`)} → ${chalk.gray(displayPath)}`));\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(chalk.red(`Error adding prompt: ${error instanceof Error ? error.message : \"Unknown error\"}`));\n }\n process.exit(1);\n }\n\n } catch (error) {\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(chalk.red(`Unexpected error: ${error instanceof Error ? error.message : \"Unknown error\"}`));\n }\n process.exit(1);\n }\n};\n"]}
|
|
@@ -1,22 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ensureProjectInitialized
|
|
3
|
-
} from "./chunk-E7UE2MPD.mjs";
|
|
4
|
-
import {
|
|
5
|
-
FileManager
|
|
6
|
-
} from "./chunk-3GKPQB4R.mjs";
|
|
7
1
|
import {
|
|
8
2
|
checkApiKey
|
|
9
3
|
} from "./chunk-DHJKJVY7.mjs";
|
|
10
|
-
import "./chunk-4NRLVT2U.mjs";
|
|
11
4
|
import {
|
|
12
|
-
|
|
5
|
+
LangWatch
|
|
6
|
+
} from "./chunk-4ILMGMAP.mjs";
|
|
7
|
+
import {
|
|
13
8
|
PromptsError
|
|
14
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-IZ2U3ABC.mjs";
|
|
10
|
+
import "./chunk-N2V6J3U2.mjs";
|
|
11
|
+
import "./chunk-EJWJXTPU.mjs";
|
|
12
|
+
import "./chunk-ZJZ3MIWE.mjs";
|
|
13
|
+
import "./chunk-FQSWUK5N.mjs";
|
|
14
|
+
import "./chunk-YNQ44U6D.mjs";
|
|
15
|
+
import {
|
|
16
|
+
ensureProjectInitialized
|
|
17
|
+
} from "./chunk-ECUXLXFT.mjs";
|
|
18
|
+
import {
|
|
19
|
+
FileManager
|
|
20
|
+
} from "./chunk-HUI45ULC.mjs";
|
|
15
21
|
import {
|
|
16
22
|
PromptConverter
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-SYMZPWZE.mjs";
|
|
24
|
+
import "./chunk-4NRLVT2U.mjs";
|
|
25
|
+
import "./chunk-CU3443HD.mjs";
|
|
20
26
|
|
|
21
27
|
// src/cli/commands/add.ts
|
|
22
28
|
import * as fs from "fs";
|
|
@@ -55,6 +61,7 @@ var addLocalFile = async (name, localFilePath) => {
|
|
|
55
61
|
}
|
|
56
62
|
};
|
|
57
63
|
var addCommand = async (name, options) => {
|
|
64
|
+
var _a;
|
|
58
65
|
try {
|
|
59
66
|
if (!name || name.trim() === "") {
|
|
60
67
|
console.error(chalk.red("Error: Prompt name cannot be empty"));
|
|
@@ -65,11 +72,11 @@ var addCommand = async (name, options) => {
|
|
|
65
72
|
return;
|
|
66
73
|
}
|
|
67
74
|
checkApiKey();
|
|
68
|
-
const
|
|
69
|
-
const version = options.version
|
|
75
|
+
const langwatch = new LangWatch();
|
|
76
|
+
const version = (_a = options.version) != null ? _a : "latest";
|
|
70
77
|
const spinner = ora(`Adding ${chalk.cyan(`${name}@${version}`)}...`).start();
|
|
71
78
|
try {
|
|
72
|
-
const prompt = await
|
|
79
|
+
const prompt = await langwatch.prompts.get(name);
|
|
73
80
|
if (!prompt) {
|
|
74
81
|
spinner.fail();
|
|
75
82
|
console.error(chalk.red(`Error: Prompt "${name}" not found`));
|
|
@@ -111,4 +118,4 @@ var addCommand = async (name, options) => {
|
|
|
111
118
|
export {
|
|
112
119
|
addCommand
|
|
113
120
|
};
|
|
114
|
-
//# sourceMappingURL=add-
|
|
121
|
+
//# sourceMappingURL=add-WLUMK5VQ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/add.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { PromptsError } from \"@/client-sdk/services/prompts\";\nimport { PromptConverter } from \"../utils/promptConverter\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { LangWatch } from \"@/client-sdk\";\n\ninterface AddOptions {\n version?: string;\n localFile?: string;\n}\n\nconst addLocalFile = async (name: string, localFilePath: string): Promise<void> => {\n // Validate that the file exists and has the right extension\n if (!fs.existsSync(localFilePath)) {\n console.error(chalk.red(`Error: Local file not found: ${localFilePath}`));\n process.exit(1);\n }\n\n if (!localFilePath.endsWith('.prompt.yaml')) {\n console.error(chalk.red(`Error: Local file must have .prompt.yaml extension`));\n process.exit(1);\n }\n\n // Load and validate the YAML file\n try {\n const config = FileManager.loadLocalPrompt(localFilePath);\n\n // Ensure project is initialized\n await ensureProjectInitialized();\n\n // Add to prompts.json as a file: dependency\n const promptsConfig = FileManager.loadPromptsConfig();\n promptsConfig.prompts[name] = `file:${localFilePath}`;\n FileManager.savePromptsConfig(promptsConfig);\n\n // Update lock file\n const lock = FileManager.loadPromptsLock();\n lock.prompts[name] = {\n version: 0, // Local files start at version 0\n versionId: \"local\",\n materialized: localFilePath, // Store the original file path\n };\n FileManager.savePromptsLock(lock);\n\n console.log(chalk.green(`✓ Added local prompt: ${chalk.cyan(name)} → ${chalk.gray(localFilePath)}`));\n\n } catch (error) {\n console.error(chalk.red(\"Error loading local prompt file:\"));\n console.error(chalk.red(error instanceof Error ? error.message : String(error)));\n process.exit(1);\n }\n};\n\nexport const addCommand = async (name: string, options: AddOptions): Promise<void> => {\n try {\n // Validate prompt name\n if (!name || name.trim() === \"\") {\n console.error(chalk.red(\"Error: Prompt name cannot be empty\"));\n process.exit(1);\n }\n\n // Handle local file addition\n if (options.localFile) {\n await addLocalFile(name, options.localFile);\n return;\n }\n\n // Check API key before doing anything else\n checkApiKey();\n\n const langwatch = new LangWatch();\n const version = options.version ?? \"latest\";\n\n // Fetch and materialize the prompt (like sync does for individual prompts)\n const spinner = ora(`Adding ${chalk.cyan(`${name}@${version}`)}...`).start();\n\n try {\n // Fetch the prompt from the API\n const prompt = await langwatch.prompts.get(name);\n\n if (!prompt) {\n spinner.fail();\n console.error(chalk.red(`Error: Prompt \"${name}\" not found`));\n process.exit(1);\n }\n\n // Stop spinner before any user input prompts\n spinner.stop();\n\n // Ensure project is initialized (prompts.json, lock file, directories)\n await ensureProjectInitialized();\n\n // Restart spinner for the actual work\n spinner.start(`Adding ${chalk.cyan(`${name}@${version}`)}...`);\n\n // Convert to MaterializedPrompt format and save\n const materializedPrompt = PromptConverter.fromApiToMaterialized(prompt);\n const savedPath = FileManager.saveMaterializedPrompt(name, materializedPrompt);\n const relativePath = path.relative(process.cwd(), savedPath);\n\n // Load existing config and lock, add the new dependency\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n config.prompts[name] = version;\n FileManager.updateLockEntry(lock, name, materializedPrompt, savedPath);\n\n // Save the updated config and lock\n FileManager.savePromptsConfig(config);\n FileManager.savePromptsLock(lock);\n\n spinner.succeed();\n\n // Show what was done (add ./ prefix for consistency)\n const displayPath = relativePath.startsWith('./') ? relativePath : `./${relativePath}`;\n console.log(chalk.green(`✓ Pulled ${chalk.cyan(`${name}@${version}`)} ${chalk.gray(`(version ${prompt.version})`)} → ${chalk.gray(displayPath)}`));\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(chalk.red(`Error adding prompt: ${error instanceof Error ? error.message : \"Unknown error\"}`));\n }\n process.exit(1);\n }\n\n } catch (error) {\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(chalk.red(`Unexpected error: ${error instanceof Error ? error.message : \"Unknown error\"}`));\n }\n process.exit(1);\n }\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PromptsFacade,
|
|
3
|
+
createTracingProxy
|
|
4
|
+
} from "./chunk-IZ2U3ABC.mjs";
|
|
5
|
+
import {
|
|
6
|
+
getLangWatchTracer
|
|
7
|
+
} from "./chunk-EJWJXTPU.mjs";
|
|
8
|
+
import {
|
|
9
|
+
DEFAULT_ENDPOINT,
|
|
10
|
+
LANGWATCH_SDK_LANGUAGE,
|
|
11
|
+
LANGWATCH_SDK_NAME_CLIENT,
|
|
12
|
+
LANGWATCH_SDK_NAME_OBSERVABILITY,
|
|
13
|
+
LANGWATCH_SDK_RUNTIME,
|
|
14
|
+
LANGWATCH_SDK_VERSION,
|
|
15
|
+
version
|
|
16
|
+
} from "./chunk-FQSWUK5N.mjs";
|
|
17
|
+
import {
|
|
18
|
+
NoOpLogger
|
|
19
|
+
} from "./chunk-YNQ44U6D.mjs";
|
|
20
|
+
import {
|
|
21
|
+
__privateAdd,
|
|
22
|
+
__privateGet,
|
|
23
|
+
__privateMethod,
|
|
24
|
+
__privateSet,
|
|
25
|
+
__spreadProps,
|
|
26
|
+
__spreadValues
|
|
27
|
+
} from "./chunk-CU3443HD.mjs";
|
|
28
|
+
|
|
29
|
+
// src/internal/api/client.ts
|
|
30
|
+
import openApiCreateClient from "openapi-fetch";
|
|
31
|
+
function createLangWatchApiClient(apiKey, endpoint) {
|
|
32
|
+
return openApiCreateClient({
|
|
33
|
+
baseUrl: endpoint,
|
|
34
|
+
headers: __spreadProps(__spreadValues({}, apiKey ? { authorization: `Bearer ${apiKey}`, "x-auth-token": apiKey } : {}), {
|
|
35
|
+
"content-type": "application/json",
|
|
36
|
+
"user-agent": `langwatch-sdk-node/${version}`,
|
|
37
|
+
"x-langwatch-sdk-name": LANGWATCH_SDK_NAME_OBSERVABILITY,
|
|
38
|
+
"x-langwatch-sdk-language": LANGWATCH_SDK_LANGUAGE,
|
|
39
|
+
"x-langwatch-sdk-version": LANGWATCH_SDK_VERSION,
|
|
40
|
+
"x-langwatch-sdk-platform": LANGWATCH_SDK_RUNTIME()
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// src/client-sdk/services/traces/types.ts
|
|
46
|
+
var TracesError = class extends Error {
|
|
47
|
+
constructor(message, operation, originalError) {
|
|
48
|
+
super(message);
|
|
49
|
+
this.operation = operation;
|
|
50
|
+
this.originalError = originalError;
|
|
51
|
+
this.name = "TracesError";
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// src/client-sdk/services/traces/tracing/tracer.ts
|
|
56
|
+
var tracer = getLangWatchTracer(`${LANGWATCH_SDK_NAME_CLIENT}.traces`, LANGWATCH_SDK_VERSION);
|
|
57
|
+
|
|
58
|
+
// src/client-sdk/services/traces/service.ts
|
|
59
|
+
var TracesService = class {
|
|
60
|
+
constructor(config) {
|
|
61
|
+
this.config = config;
|
|
62
|
+
return createTracingProxy(
|
|
63
|
+
this,
|
|
64
|
+
tracer
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Handles API errors by throwing a TracesError with operation context.
|
|
69
|
+
* @param operation Description of the operation being performed.
|
|
70
|
+
* @param error The error object returned from the API client.
|
|
71
|
+
* @throws {TracesError}
|
|
72
|
+
*/
|
|
73
|
+
handleApiError(operation, error) {
|
|
74
|
+
var _a, _b;
|
|
75
|
+
const errorMessage = typeof error === "string" ? error : (_b = (_a = error == null ? void 0 : error.error) != null ? _a : error == null ? void 0 : error.message) != null ? _b : "Unknown error occurred";
|
|
76
|
+
throw new TracesError(
|
|
77
|
+
`Failed to ${operation}: ${errorMessage}`,
|
|
78
|
+
operation,
|
|
79
|
+
error
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Retrieves a trace by its ID.
|
|
84
|
+
* @param traceId The trace's unique identifier.
|
|
85
|
+
* @param params Optional parameters for the request.
|
|
86
|
+
* @returns The trace response object.
|
|
87
|
+
* @throws {TracesError} If the API call fails.
|
|
88
|
+
*/
|
|
89
|
+
async get(traceId, params) {
|
|
90
|
+
const { data, error } = await this.config.langwatchApiClient.GET("/api/trace/{id}", {
|
|
91
|
+
params: {
|
|
92
|
+
path: {
|
|
93
|
+
id: traceId
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
query: params
|
|
97
|
+
});
|
|
98
|
+
if (error) {
|
|
99
|
+
this.handleApiError("get trace", error);
|
|
100
|
+
}
|
|
101
|
+
return data;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
// src/client-sdk/services/traces/facade.ts
|
|
106
|
+
var _config, _service;
|
|
107
|
+
var TracesFacade = class {
|
|
108
|
+
constructor(config) {
|
|
109
|
+
__privateAdd(this, _config);
|
|
110
|
+
__privateAdd(this, _service);
|
|
111
|
+
__privateSet(this, _config, config);
|
|
112
|
+
__privateSet(this, _service, new TracesService(config));
|
|
113
|
+
}
|
|
114
|
+
async get(traceId, params) {
|
|
115
|
+
return __privateGet(this, _service).get(traceId, params);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
_config = new WeakMap();
|
|
119
|
+
_service = new WeakMap();
|
|
120
|
+
|
|
121
|
+
// src/client-sdk/index.ts
|
|
122
|
+
var _LangWatch_instances, createInternalConfig_fn;
|
|
123
|
+
var LangWatch = class {
|
|
124
|
+
constructor(options = {}) {
|
|
125
|
+
__privateAdd(this, _LangWatch_instances);
|
|
126
|
+
this.tracer = getLangWatchTracer(LANGWATCH_SDK_NAME_CLIENT, LANGWATCH_SDK_VERSION);
|
|
127
|
+
var _a, _b, _c, _d;
|
|
128
|
+
const apiKey = (_b = (_a = options.apiKey) != null ? _a : process.env.LANGWATCH_API_KEY) != null ? _b : "";
|
|
129
|
+
const endpoint = (_d = (_c = options.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : DEFAULT_ENDPOINT;
|
|
130
|
+
this.config = __privateMethod(this, _LangWatch_instances, createInternalConfig_fn).call(this, {
|
|
131
|
+
apiKey,
|
|
132
|
+
endpoint,
|
|
133
|
+
options: options.options
|
|
134
|
+
});
|
|
135
|
+
this.prompts = new PromptsFacade(this.config);
|
|
136
|
+
this.traces = new TracesFacade(this.config);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
_LangWatch_instances = new WeakSet();
|
|
140
|
+
createInternalConfig_fn = function({
|
|
141
|
+
apiKey,
|
|
142
|
+
endpoint,
|
|
143
|
+
options
|
|
144
|
+
}) {
|
|
145
|
+
var _a;
|
|
146
|
+
return {
|
|
147
|
+
logger: (_a = options == null ? void 0 : options.logger) != null ? _a : new NoOpLogger(),
|
|
148
|
+
langwatchApiClient: createLangWatchApiClient(apiKey, endpoint)
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
export {
|
|
153
|
+
LangWatch
|
|
154
|
+
};
|
|
155
|
+
//# sourceMappingURL=chunk-4ILMGMAP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/api/client.ts","../src/client-sdk/services/traces/types.ts","../src/client-sdk/services/traces/tracing/tracer.ts","../src/client-sdk/services/traces/service.ts","../src/client-sdk/services/traces/facade.ts","../src/client-sdk/index.ts"],"sourcesContent":["import openApiCreateClient from \"openapi-fetch\";\nimport type { paths } from \"../generated/openapi/api-client\";\nimport { version } from \"../../../package.json\";\nimport {\n LANGWATCH_SDK_LANGUAGE,\n LANGWATCH_SDK_NAME_OBSERVABILITY,\n LANGWATCH_SDK_RUNTIME,\n LANGWATCH_SDK_VERSION,\n} from \"../constants\";\n\nexport type LangwatchApiClient = ReturnType<typeof openApiCreateClient<paths>>;\n\nexport function createLangWatchApiClient(\n apiKey?: string,\n endpoint?: string\n): LangwatchApiClient {\n return openApiCreateClient<paths>({\n baseUrl: endpoint,\n headers: {\n ...(apiKey ? { authorization: `Bearer ${apiKey}`, 'x-auth-token': apiKey } : {}),\n \"content-type\": \"application/json\",\n \"user-agent\": `langwatch-sdk-node/${version}`,\n \"x-langwatch-sdk-name\": LANGWATCH_SDK_NAME_OBSERVABILITY,\n \"x-langwatch-sdk-language\": LANGWATCH_SDK_LANGUAGE,\n \"x-langwatch-sdk-version\": LANGWATCH_SDK_VERSION,\n \"x-langwatch-sdk-platform\": LANGWATCH_SDK_RUNTIME(),\n },\n });\n}\n","import type { paths } from \"@/internal/generated/openapi/api-client\";\n\nexport interface GetTraceParams {\n includeSpans?: boolean;\n}\n\nexport type GetTraceResponse = NonNullable<\n paths[\"/api/trace/{id}\"][\"get\"][\"responses\"][\"200\"][\"content\"][\"application/json\"]\n>;\n\n/**\n * Custom error class for Traces API operations.\n * Provides context about the failed operation and the original error.\n */\nexport class TracesError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: any,\n ) {\n super(message);\n this.name = \"TracesError\";\n }\n}\n","import { LANGWATCH_SDK_NAME_CLIENT, LANGWATCH_SDK_VERSION } from \"@/internal/constants\";\nimport { getLangWatchTracer } from \"@/observability-sdk/tracer\";\n\nexport const tracer = getLangWatchTracer(`${LANGWATCH_SDK_NAME_CLIENT}.traces`, LANGWATCH_SDK_VERSION);\n","import { createTracingProxy } from \"@/client-sdk/tracing/create-tracing-proxy\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\nimport { type GetTraceParams, TracesError, type GetTraceResponse } from \"./types\";\nimport { tracer } from \"./tracing\";\n\n/**\n * Service for managing trace resources via the Langwatch API.\n * Constructor creates a proxy that wraps the service and traces all methods.\n *\n * Responsibilities:\n * - Retrieving trace data\n * - Error handling with contextual information\n *\n * All methods return trace response objects directly.\n */\nexport class TracesService {\n private config: InternalConfig;\n\n constructor(config: InternalConfig) {\n this.config = config;\n\n /**\n * Wraps the service in a tracing proxy via the decorator.\n */\n return createTracingProxy(\n this as TracesService,\n tracer,\n );\n }\n\n /**\n * Handles API errors by throwing a TracesError with operation context.\n * @param operation Description of the operation being performed.\n * @param error The error object returned from the API client.\n * @throws {TracesError}\n */\n private handleApiError(operation: string, error: any): never {\n const errorMessage =\n typeof error === \"string\"\n ? error\n : error?.error ?? error?.message ?? \"Unknown error occurred\";\n throw new TracesError(\n `Failed to ${operation}: ${errorMessage}`,\n operation,\n error,\n );\n }\n\n /**\n * Retrieves a trace by its ID.\n * @param traceId The trace's unique identifier.\n * @param params Optional parameters for the request.\n * @returns The trace response object.\n * @throws {TracesError} If the API call fails.\n */\n async get(\n traceId: string,\n params?: GetTraceParams,\n ): Promise<GetTraceResponse> {\n const { data, error } = await this.config.langwatchApiClient.GET(\"/api/trace/{id}\", {\n params: {\n path: {\n id: traceId,\n },\n },\n query: params,\n });\n\n if (error) {\n this.handleApiError(\"get trace\", error);\n }\n\n return data;\n }\n}\n","import { type InternalConfig } from \"../../types\";\nimport { TracesService } from \"./service\";\nimport { type GetTraceParams, type GetTraceResponse } from \"./types\";\n\nexport class TracesFacade {\n readonly #config: InternalConfig;\n readonly #service: TracesService;\n\n constructor(config: InternalConfig) {\n this.#config = config;\n this.#service = new TracesService(config);\n }\n\n async get(traceId: string, params?: GetTraceParams): Promise<GetTraceResponse> {\n return this.#service.get(traceId, params);\n }\n}\n","import { PromptFacade as PromptsFacade } from \"./services/prompts\";\nimport { type InternalConfig } from \"./types\";\nimport { createLangWatchApiClient } from \"../internal/api/client\";\nimport { type Logger, NoOpLogger } from \"../logger\";\nimport { TracesFacade } from \"./services/traces/facade\";\nimport { getLangWatchTracer, type LangWatchTracer } from \"@/observability-sdk\";\nimport { LANGWATCH_SDK_NAME_CLIENT, LANGWATCH_SDK_VERSION, DEFAULT_ENDPOINT } from \"@/internal/constants\";\nexport interface LangWatchConstructorOptions {\n apiKey?: string;\n endpoint?: string;\n options?: {\n logger?: Logger;\n };\n}\n\nexport class LangWatch {\n private readonly config: InternalConfig;\n private readonly tracer: LangWatchTracer = getLangWatchTracer(LANGWATCH_SDK_NAME_CLIENT, LANGWATCH_SDK_VERSION);\n\n readonly prompts: PromptsFacade;\n readonly traces: TracesFacade;\n\n constructor(options: LangWatchConstructorOptions = {}) {\n const apiKey = options.apiKey ?? process.env.LANGWATCH_API_KEY ?? \"\";\n const endpoint = options.endpoint ?? process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT;\n\n this.config = this.#createInternalConfig({\n apiKey,\n endpoint,\n options: options.options,\n });\n\n this.prompts = new PromptsFacade(this.config);\n this.traces = new TracesFacade(this.config);\n }\n\n #createInternalConfig({\n apiKey,\n endpoint,\n options,\n }: {\n apiKey: string;\n endpoint: string;\n options?: LangWatchConstructorOptions[\"options\"];\n }): InternalConfig {\n return {\n logger: options?.logger ?? new NoOpLogger(),\n langwatchApiClient: createLangWatchApiClient(apiKey, endpoint),\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,yBAAyB;AAYzB,SAAS,yBACd,QACA,UACoB;AACpB,SAAO,oBAA2B;AAAA,IAChC,SAAS;AAAA,IACT,SAAS,iCACH,SAAS,EAAE,eAAe,UAAU,MAAM,IAAI,gBAAgB,OAAO,IAAI,CAAC,IADvE;AAAA,MAEP,gBAAgB;AAAA,MAChB,cAAc,sBAAsB,OAAO;AAAA,MAC3C,wBAAwB;AAAA,MACxB,4BAA4B;AAAA,MAC5B,2BAA2B;AAAA,MAC3B,4BAA4B,sBAAsB;AAAA,IACpD;AAAA,EACF,CAAC;AACH;;;ACdO,IAAM,cAAN,cAA0B,MAAM;AAAA,EACrC,YACE,SACgB,WACA,eAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;;;ACpBO,IAAM,SAAS,mBAAmB,GAAG,yBAAyB,WAAW,qBAAqB;;;ACY9F,IAAM,gBAAN,MAAoB;AAAA,EAGzB,YAAY,QAAwB;AAClC,SAAK,SAAS;AAKd,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQQ,eAAe,WAAmB,OAAmB;AApC/D;AAqCI,UAAM,eACJ,OAAO,UAAU,WACb,SACA,0CAAO,UAAP,YAAgB,+BAAO,YAAvB,YAAkC;AACxC,UAAM,IAAI;AAAA,MACR,aAAa,SAAS,KAAK,YAAY;AAAA,MACvC;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,IACJ,SACA,QAC2B;AAC3B,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,OAAO,mBAAmB,IAAI,mBAAmB;AAAA,MAClF,QAAQ;AAAA,QACN,MAAM;AAAA,UACJ,IAAI;AAAA,QACN;AAAA,MACF;AAAA,MACA,OAAO;AAAA,IACT,CAAC;AAED,QAAI,OAAO;AACT,WAAK,eAAe,aAAa,KAAK;AAAA,IACxC;AAEA,WAAO;AAAA,EACT;AACF;;;AC1EA;AAIO,IAAM,eAAN,MAAmB;AAAA,EAIxB,YAAY,QAAwB;AAHpC,uBAAS;AACT,uBAAS;AAGP,uBAAK,SAAU;AACf,uBAAK,UAAW,IAAI,cAAc,MAAM;AAAA,EAC1C;AAAA,EAEA,MAAM,IAAI,SAAiB,QAAoD;AAC7E,WAAO,mBAAK,UAAS,IAAI,SAAS,MAAM;AAAA,EAC1C;AACF;AAXW;AACA;;;ACNX;AAeO,IAAM,YAAN,MAAgB;AAAA,EAOrB,YAAY,UAAuC,CAAC,GAAG;AAPlD;AAEL,SAAiB,SAA0B,mBAAmB,2BAA2B,qBAAqB;AAjBhH;AAuBI,UAAM,UAAS,mBAAQ,WAAR,YAAkB,QAAQ,IAAI,sBAA9B,YAAmD;AAClE,UAAM,YAAW,mBAAQ,aAAR,YAAoB,QAAQ,IAAI,uBAAhC,YAAsD;AAEvE,SAAK,SAAS,sBAAK,+CAAL,WAA2B;AAAA,MACvC;AAAA,MACA;AAAA,MACA,SAAS,QAAQ;AAAA,IACnB;AAEA,SAAK,UAAU,IAAI,cAAc,KAAK,MAAM;AAC5C,SAAK,SAAS,IAAI,aAAa,KAAK,MAAM;AAAA,EAC5C;AAgBF;AAnCO;AAqBL,0BAAqB,SAAC;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF,GAImB;AA5CrB;AA6CI,SAAO;AAAA,IACL,SAAQ,wCAAS,WAAT,YAAmB,IAAI,WAAW;AAAA,IAC1C,oBAAoB,yBAAyB,QAAQ,QAAQ;AAAA,EAC/D;AACF;","names":[]}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkDEVJ7BPEjs = require('./chunk-DEVJ7BPE.js');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _chunkDISMHYXCjs = require('./chunk-DISMHYXC.js');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
var _chunkOXBO24RBjs = require('./chunk-OXBO24RB.js');
|
|
17
|
+
|
|
18
|
+
// src/observability-sdk/exporters/langwatch-trace-exporter.ts
|
|
19
|
+
var _exportertraceotlphttp = require('@opentelemetry/exporter-trace-otlp-http');
|
|
20
|
+
var LangWatchTraceExporter = class extends _exportertraceotlphttp.OTLPTraceExporter {
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new LangWatchExporter instance.
|
|
23
|
+
*
|
|
24
|
+
* @param opts - Optional configuration options for the exporter
|
|
25
|
+
* @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
|
|
26
|
+
* will use environment variables or fallback configuration.
|
|
27
|
+
* @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
|
|
28
|
+
* If not provided, will use environment variables or fallback configuration.
|
|
29
|
+
* @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version
|
|
30
|
+
* @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version
|
|
31
|
+
*/
|
|
32
|
+
constructor(opts) {
|
|
33
|
+
var _a, _b, _c, _d;
|
|
34
|
+
const apiKey = (_b = (_a = opts == null ? void 0 : opts.apiKey) != null ? _a : process.env.LANGWATCH_API_KEY) != null ? _b : "";
|
|
35
|
+
const endpoint = (_d = (_c = opts == null ? void 0 : opts.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : _chunkDEVJ7BPEjs.DEFAULT_ENDPOINT;
|
|
36
|
+
if (opts && opts.includeAllSpans !== void 0) {
|
|
37
|
+
console.warn(
|
|
38
|
+
"[LangWatchExporter] The behavior of `includeAllSpans` is deprecated and will be removed in a future version"
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
if (opts && opts.debug !== void 0) {
|
|
42
|
+
console.warn(
|
|
43
|
+
"[LangWatchExporter] The behavior of `debug` is deprecated and will be removed in a future version"
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
const url = new URL(_chunkDEVJ7BPEjs.TRACES_PATH, endpoint);
|
|
47
|
+
const otelEndpoint = url.toString();
|
|
48
|
+
super({
|
|
49
|
+
headers: _chunkOXBO24RBjs.__spreadValues.call(void 0, {
|
|
50
|
+
"x-langwatch-sdk-name": _chunkDEVJ7BPEjs.LANGWATCH_SDK_NAME_OBSERVABILITY,
|
|
51
|
+
"x-langwatch-sdk-language": _chunkDEVJ7BPEjs.LANGWATCH_SDK_LANGUAGE,
|
|
52
|
+
"x-langwatch-sdk-version": _chunkDEVJ7BPEjs.LANGWATCH_SDK_VERSION,
|
|
53
|
+
"x-langwatch-sdk-runtime": _chunkDEVJ7BPEjs.LANGWATCH_SDK_RUNTIME.call(void 0, )
|
|
54
|
+
}, apiKey ? { authorization: `Bearer ${apiKey}` } : {}),
|
|
55
|
+
url: otelEndpoint.toString()
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// src/observability-sdk/exporters/langwatch-logs-exporter.ts
|
|
61
|
+
var _exporterlogsotlphttp = require('@opentelemetry/exporter-logs-otlp-http');
|
|
62
|
+
var LangWatchLogsExporter = class extends _exporterlogsotlphttp.OTLPLogExporter {
|
|
63
|
+
/**
|
|
64
|
+
* Creates a new LangWatchLogsExporter instance.
|
|
65
|
+
*
|
|
66
|
+
* @param opts - Optional configuration options for the exporter.
|
|
67
|
+
* @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
|
|
68
|
+
* will use environment variables or fallback configuration.
|
|
69
|
+
* @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
|
|
70
|
+
* If not provided, will use environment variables or fallback configuration.
|
|
71
|
+
*/
|
|
72
|
+
constructor(opts) {
|
|
73
|
+
var _a, _b, _c, _d;
|
|
74
|
+
const apiKey = (_b = (_a = opts == null ? void 0 : opts.apiKey) != null ? _a : process.env.LANGWATCH_API_KEY) != null ? _b : "";
|
|
75
|
+
const endpoint = (_d = (_c = opts == null ? void 0 : opts.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : _chunkDEVJ7BPEjs.DEFAULT_ENDPOINT;
|
|
76
|
+
const url = new URL(_chunkDEVJ7BPEjs.LOGS_PATH, endpoint);
|
|
77
|
+
const otelEndpoint = url.toString();
|
|
78
|
+
super({
|
|
79
|
+
headers: _chunkOXBO24RBjs.__spreadValues.call(void 0, {
|
|
80
|
+
"x-langwatch-sdk-name": _chunkDEVJ7BPEjs.LANGWATCH_SDK_NAME_OBSERVABILITY,
|
|
81
|
+
"x-langwatch-sdk-language": _chunkDEVJ7BPEjs.LANGWATCH_SDK_LANGUAGE,
|
|
82
|
+
"x-langwatch-sdk-version": _chunkDEVJ7BPEjs.LANGWATCH_SDK_VERSION,
|
|
83
|
+
"x-langwatch-sdk-runtime": _chunkDEVJ7BPEjs.LANGWATCH_SDK_RUNTIME.call(void 0, )
|
|
84
|
+
}, apiKey ? { authorization: `Bearer ${apiKey}` } : {}),
|
|
85
|
+
url: otelEndpoint.toString()
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
// src/observability-sdk/semconv/events.ts
|
|
91
|
+
var LOG_EVNT_GEN_AI_SYSTEM_MESSAGE = "gen.ai.system_message";
|
|
92
|
+
var LOG_EVNT_GEN_AI_USER_MESSAGE = "gen.ai.user_message";
|
|
93
|
+
var LOG_EVNT_GEN_AI_ASSISTANT_MESSAGE = "gen.ai.assistant_message";
|
|
94
|
+
var LOG_EVNT_GEN_AI_TOOL_MESSAGE = "gen.ai.tool_message";
|
|
95
|
+
var LOG_EVNT_GEN_AI_CHOICE = "gen.ai.choice";
|
|
96
|
+
|
|
97
|
+
// src/observability-sdk/logger/index.ts
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
var _apilogs = require('@opentelemetry/api-logs');
|
|
101
|
+
|
|
102
|
+
// src/observability-sdk/logger/implementation.ts
|
|
103
|
+
var _api = require('@opentelemetry/api');
|
|
104
|
+
var LangWatchLoggerInternal = class {
|
|
105
|
+
constructor(logger) {
|
|
106
|
+
this.logger = logger;
|
|
107
|
+
}
|
|
108
|
+
emit(logRecord, options) {
|
|
109
|
+
if (!_chunkDISMHYXCjs.shouldCaptureOutput.call(void 0, )) {
|
|
110
|
+
logRecord.body = void 0;
|
|
111
|
+
}
|
|
112
|
+
if (!logRecord.context && !(options == null ? void 0 : options.excludeContext)) {
|
|
113
|
+
logRecord.context = _api.context.active();
|
|
114
|
+
}
|
|
115
|
+
this.logger.emit(logRecord);
|
|
116
|
+
}
|
|
117
|
+
emitGenAISystemMessageEvent(body, system, attributes) {
|
|
118
|
+
var _a;
|
|
119
|
+
this.emitGenAIEvent(
|
|
120
|
+
LOG_EVNT_GEN_AI_SYSTEM_MESSAGE,
|
|
121
|
+
_chunkOXBO24RBjs.__spreadProps.call(void 0, _chunkOXBO24RBjs.__spreadValues.call(void 0, {}, body), { role: (_a = body.role) != null ? _a : "system" }),
|
|
122
|
+
_chunkOXBO24RBjs.__spreadProps.call(void 0, _chunkOXBO24RBjs.__spreadValues.call(void 0, {}, attributes), {
|
|
123
|
+
"gen_ai.system": system
|
|
124
|
+
})
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
emitGenAIUserMessageEvent(body, system, attributes) {
|
|
128
|
+
var _a;
|
|
129
|
+
this.emitGenAIEvent(
|
|
130
|
+
LOG_EVNT_GEN_AI_USER_MESSAGE,
|
|
131
|
+
_chunkOXBO24RBjs.__spreadProps.call(void 0, _chunkOXBO24RBjs.__spreadValues.call(void 0, {}, body), { role: (_a = body.role) != null ? _a : "user" }),
|
|
132
|
+
_chunkOXBO24RBjs.__spreadProps.call(void 0, _chunkOXBO24RBjs.__spreadValues.call(void 0, {}, attributes), {
|
|
133
|
+
"gen_ai.system": system
|
|
134
|
+
})
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
emitGenAIAssistantMessageEvent(body, system, attributes) {
|
|
138
|
+
var _a;
|
|
139
|
+
this.emitGenAIEvent(
|
|
140
|
+
LOG_EVNT_GEN_AI_ASSISTANT_MESSAGE,
|
|
141
|
+
_chunkOXBO24RBjs.__spreadProps.call(void 0, _chunkOXBO24RBjs.__spreadValues.call(void 0, {}, body), { role: (_a = body.role) != null ? _a : "assistant" }),
|
|
142
|
+
_chunkOXBO24RBjs.__spreadProps.call(void 0, _chunkOXBO24RBjs.__spreadValues.call(void 0, {}, attributes), {
|
|
143
|
+
"gen_ai.system": system
|
|
144
|
+
})
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
emitGenAIToolMessageEvent(body, system, attributes) {
|
|
148
|
+
if (body.role === void 0) {
|
|
149
|
+
body.role = "tool";
|
|
150
|
+
}
|
|
151
|
+
this.emitGenAIEvent(
|
|
152
|
+
LOG_EVNT_GEN_AI_TOOL_MESSAGE,
|
|
153
|
+
_chunkOXBO24RBjs.__spreadValues.call(void 0, {}, body),
|
|
154
|
+
_chunkOXBO24RBjs.__spreadProps.call(void 0, _chunkOXBO24RBjs.__spreadValues.call(void 0, {}, attributes), {
|
|
155
|
+
"gen_ai.system": system
|
|
156
|
+
})
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
emitGenAIChoiceEvent(body, system, attributes) {
|
|
160
|
+
var _a, _b;
|
|
161
|
+
if (body.message && body.message.role === void 0) {
|
|
162
|
+
body.message.role = "assistant";
|
|
163
|
+
}
|
|
164
|
+
this.emitGenAIEvent(
|
|
165
|
+
LOG_EVNT_GEN_AI_CHOICE,
|
|
166
|
+
_chunkOXBO24RBjs.__spreadProps.call(void 0, _chunkOXBO24RBjs.__spreadValues.call(void 0, {}, body), {
|
|
167
|
+
message: _chunkOXBO24RBjs.__spreadProps.call(void 0, _chunkOXBO24RBjs.__spreadValues.call(void 0, {}, body.message), { role: (_b = (_a = body.message) == null ? void 0 : _a.role) != null ? _b : "assistant" })
|
|
168
|
+
}),
|
|
169
|
+
_chunkOXBO24RBjs.__spreadProps.call(void 0, _chunkOXBO24RBjs.__spreadValues.call(void 0, {}, attributes), {
|
|
170
|
+
"gen_ai.system": system
|
|
171
|
+
})
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
emitGenAIEvent(eventName, body, attributes) {
|
|
175
|
+
this.emit({
|
|
176
|
+
eventName,
|
|
177
|
+
context: _api.context.active(),
|
|
178
|
+
attributes: _chunkOXBO24RBjs.__spreadValues.call(void 0, {}, attributes),
|
|
179
|
+
body: _chunkDISMHYXCjs.shouldCaptureOutput.call(void 0, ) ? body : void 0,
|
|
180
|
+
observedTimestamp: (/* @__PURE__ */ new Date()).getTime()
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
// src/observability-sdk/logger/index.ts
|
|
186
|
+
var currentLoggerProvider = new (0, _apilogs.NoopLoggerProvider)();
|
|
187
|
+
function setLangWatchLoggerProvider(loggerProvider) {
|
|
188
|
+
currentLoggerProvider = loggerProvider;
|
|
189
|
+
}
|
|
190
|
+
function getLangWatchLogger(name, version) {
|
|
191
|
+
return getLangWatchLoggerFromProvider(currentLoggerProvider, name, version);
|
|
192
|
+
}
|
|
193
|
+
function getLangWatchLoggerFromProvider(loggerProvider, name, version) {
|
|
194
|
+
return createLangWatchLogger(loggerProvider.getLogger(name, version));
|
|
195
|
+
}
|
|
196
|
+
function createLangWatchLogger(logger) {
|
|
197
|
+
return new LangWatchLoggerInternal(logger);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
exports.LangWatchTraceExporter = LangWatchTraceExporter; exports.LangWatchLogsExporter = LangWatchLogsExporter; exports.setLangWatchLoggerProvider = setLangWatchLoggerProvider; exports.getLangWatchLogger = getLangWatchLogger; exports.getLangWatchLoggerFromProvider = getLangWatchLoggerFromProvider;
|
|
207
|
+
//# sourceMappingURL=chunk-4TF2O2TH.js.map
|