langwatch 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/{add-3MRUJN46.mjs → add-KNE3HWRY.mjs} +5 -5
  2. package/dist/{add-S6GXVJE5.js → add-V2V2U6OX.js} +8 -8
  3. package/dist/{add-S6GXVJE5.js.map → add-V2V2U6OX.js.map} +1 -1
  4. package/dist/{chunk-4XNHIYPE.js → chunk-2UTO2QPL.js} +14 -14
  5. package/dist/{chunk-4XNHIYPE.js.map → chunk-2UTO2QPL.js.map} +1 -1
  6. package/dist/{chunk-M57C3BU5.mjs → chunk-6VUZPNOC.mjs} +7 -7
  7. package/dist/{chunk-M57C3BU5.mjs.map → chunk-6VUZPNOC.mjs.map} +1 -1
  8. package/dist/{chunk-BP2WGNIV.js → chunk-A43BYF5Q.js} +6 -2
  9. package/dist/chunk-A43BYF5Q.js.map +1 -0
  10. package/dist/{chunk-PQZCGMWT.js → chunk-FISQBF2P.js} +12 -12
  11. package/dist/{chunk-PQZCGMWT.js.map → chunk-FISQBF2P.js.map} +1 -1
  12. package/dist/{chunk-4NB5C6GH.js → chunk-NQ7TYHRT.js} +2 -2
  13. package/dist/chunk-NQ7TYHRT.js.map +1 -0
  14. package/dist/{chunk-2BFLRROK.mjs → chunk-SMUOMBKY.mjs} +2 -2
  15. package/dist/chunk-SMUOMBKY.mjs.map +1 -0
  16. package/dist/{chunk-DQU2PZAL.mjs → chunk-WHPBZSTS.mjs} +6 -2
  17. package/dist/chunk-WHPBZSTS.mjs.map +1 -0
  18. package/dist/{chunk-LW62ZSAR.mjs → chunk-XBHIDR76.mjs} +2 -2
  19. package/dist/cli/index.js +6 -6
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/cli/index.mjs +6 -6
  22. package/dist/cli/index.mjs.map +1 -1
  23. package/dist/index.d.mts +3 -3
  24. package/dist/index.d.ts +3 -3
  25. package/dist/index.js +12 -12
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +6 -6
  28. package/dist/{list-XDVFYGVF.mjs → list-4BFJIHYB.mjs} +5 -5
  29. package/dist/{list-HV2QUNQG.js → list-VWXENE3O.js} +8 -8
  30. package/dist/{list-HV2QUNQG.js.map → list-VWXENE3O.js.map} +1 -1
  31. package/dist/{login-CHJE7P5F.js → login-6PM2MUZS.js} +3 -3
  32. package/dist/{login-CHJE7P5F.js.map → login-6PM2MUZS.js.map} +1 -1
  33. package/dist/{login-AVTZS3NG.mjs → login-CEO47GSW.mjs} +2 -2
  34. package/dist/observability-sdk/index.js +4 -4
  35. package/dist/observability-sdk/index.js.map +1 -1
  36. package/dist/observability-sdk/index.mjs +8 -8
  37. package/dist/observability-sdk/instrumentation/langchain/index.js +3 -3
  38. package/dist/observability-sdk/instrumentation/langchain/index.mjs +1 -1
  39. package/dist/observability-sdk/setup/node/index.js +10 -10
  40. package/dist/observability-sdk/setup/node/index.mjs +2 -2
  41. package/dist/{remove-5W3I5SID.mjs → remove-5YFEQXTZ.mjs} +5 -5
  42. package/dist/{remove-XUWNNMPS.js → remove-KVWGJOJY.js} +7 -7
  43. package/dist/{remove-XUWNNMPS.js.map → remove-KVWGJOJY.js.map} +1 -1
  44. package/dist/{sync-DRZDUADJ.mjs → sync-3P54PWWR.mjs} +5 -5
  45. package/dist/{sync-DK52GMDG.js → sync-6BHY2J72.js} +7 -7
  46. package/dist/{sync-DK52GMDG.js.map → sync-6BHY2J72.js.map} +1 -1
  47. package/package.json +2 -1
  48. package/dist/chunk-2BFLRROK.mjs.map +0 -1
  49. package/dist/chunk-4NB5C6GH.js.map +0 -1
  50. package/dist/chunk-BP2WGNIV.js.map +0 -1
  51. package/dist/chunk-DQU2PZAL.mjs.map +0 -1
  52. /package/dist/{add-3MRUJN46.mjs.map → add-KNE3HWRY.mjs.map} +0 -0
  53. /package/dist/{chunk-LW62ZSAR.mjs.map → chunk-XBHIDR76.mjs.map} +0 -0
  54. /package/dist/{list-XDVFYGVF.mjs.map → list-4BFJIHYB.mjs.map} +0 -0
  55. /package/dist/{login-AVTZS3NG.mjs.map → login-CEO47GSW.mjs.map} +0 -0
  56. /package/dist/{remove-5W3I5SID.mjs.map → remove-5YFEQXTZ.mjs.map} +0 -0
  57. /package/dist/{sync-DRZDUADJ.mjs.map → sync-3P54PWWR.mjs.map} +0 -0
@@ -9,11 +9,11 @@ import { config } from "dotenv";
9
9
  import { Command } from "commander";
10
10
  config();
11
11
  var addCommand = async (name, options) => {
12
- const { addCommand: addCommandImpl } = await import("../add-3MRUJN46.mjs");
12
+ const { addCommand: addCommandImpl } = await import("../add-KNE3HWRY.mjs");
13
13
  return addCommandImpl(name, options);
14
14
  };
15
15
  var removeCommand = async (name) => {
16
- const { removeCommand: removeCommandImpl } = await import("../remove-5W3I5SID.mjs");
16
+ const { removeCommand: removeCommandImpl } = await import("../remove-5YFEQXTZ.mjs");
17
17
  return removeCommandImpl(name);
18
18
  };
19
19
  var initCommand = async () => {
@@ -21,15 +21,15 @@ var initCommand = async () => {
21
21
  return initCommandImpl();
22
22
  };
23
23
  var loginCommand = async () => {
24
- const { loginCommand: loginCommandImpl } = await import("../login-AVTZS3NG.mjs");
24
+ const { loginCommand: loginCommandImpl } = await import("../login-CEO47GSW.mjs");
25
25
  return loginCommandImpl();
26
26
  };
27
27
  var listCommand = async () => {
28
- const { listCommand: listCommandImpl } = await import("../list-XDVFYGVF.mjs");
28
+ const { listCommand: listCommandImpl } = await import("../list-4BFJIHYB.mjs");
29
29
  return listCommandImpl();
30
30
  };
31
31
  var syncCommand = async () => {
32
- const { syncCommand: syncCommandImpl } = await import("../sync-DRZDUADJ.mjs");
32
+ const { syncCommand: syncCommandImpl } = await import("../sync-3P54PWWR.mjs");
33
33
  return syncCommandImpl();
34
34
  };
35
35
  var createCommand = async (name, options) => {
@@ -37,7 +37,7 @@ var createCommand = async (name, options) => {
37
37
  return createCommandImpl(name, options);
38
38
  };
39
39
  var program = new Command();
40
- program.name("langwatch").description("LangWatch CLI - The npm of prompts").configureHelp({
40
+ program.name("langwatch").description("LangWatch CLI - The npm of prompts").version("0.9.0", "-v, --version", "Display the current version").configureHelp({
41
41
  showGlobalOptions: true
42
42
  }).showHelpAfterError().showSuggestionAfterError();
43
43
  program.command("login").description("Login to LangWatch and save API key").action(async () => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\n// Load environment variables BEFORE any other imports\nimport { config } from \"dotenv\";\nconfig();\n\nimport { Command } from \"commander\";\nimport { parsePromptSpec } from \"./types\";\n\n// Import commands with proper async handling\nconst addCommand = async (name: string, options: { version?: string; localFile?: string }): Promise<void> => {\n const { addCommand: addCommandImpl } = await import(\"./commands/add.js\");\n return addCommandImpl(name, options);\n};\n\nconst removeCommand = async (name: string): Promise<void> => {\n const { removeCommand: removeCommandImpl } = await import(\"./commands/remove.js\");\n return removeCommandImpl(name);\n};\n\nconst initCommand = async (): Promise<void> => {\n const { initCommand: initCommandImpl } = await import(\"./commands/init.js\");\n return initCommandImpl();\n};\n\nconst loginCommand = async (): Promise<void> => {\n const { loginCommand: loginCommandImpl } = await import(\"./commands/login.js\");\n return loginCommandImpl();\n};\n\nconst listCommand = async (): Promise<void> => {\n const { listCommand: listCommandImpl } = await import(\"./commands/list.js\");\n return listCommandImpl();\n};\n\nconst syncCommand = async (): Promise<void> => {\n const { syncCommand: syncCommandImpl } = await import(\"./commands/sync.js\");\n return syncCommandImpl();\n};\n\nconst createCommand = async (name: string, options: Record<string, unknown>): Promise<void> => {\n const { createCommand: createCommandImpl } = await import(\"./commands/create.js\");\n return createCommandImpl(name, options);\n};\n\nconst program = new Command();\n\nprogram\n .name(\"langwatch\")\n .description(\"LangWatch CLI - The npm of prompts\")\n .configureHelp({\n showGlobalOptions: true,\n })\n .showHelpAfterError()\n .showSuggestionAfterError();\n\n// Top-level commands\nprogram\n .command(\"login\")\n .description(\"Login to LangWatch and save API key\")\n .action(async () => {\n try {\n await loginCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\n// Add prompt command group\nconst promptCmd = program\n .command(\"prompt\")\n .description(\"Manage prompt dependencies\");\n\npromptCmd\n .command(\"init\")\n .description(\"Initialize a new prompts project\")\n .action(async () => {\n try {\n await initCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"create <name>\")\n .description(\"Create a new prompt YAML file with default content\")\n .action(async (name: string) => {\n try {\n await createCommand(name, {});\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"add <spec> [localFile]\")\n .description(\"Add a prompt dependency (e.g., 'agent/foo', 'agent/bar@5') or local file\")\n .action(async (spec: string, localFile?: string) => {\n try {\n if (localFile) {\n await addCommand(spec, { localFile });\n } else {\n const { name, version } = parsePromptSpec(spec);\n await addCommand(name, { version });\n }\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"remove <name>\")\n .description(\"Remove a prompt dependency\")\n .action(async (name: string) => {\n try {\n await removeCommand(name);\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"list\")\n .description(\"List all available prompts on the server\")\n .action(async () => {\n try {\n await listCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"sync\")\n .description(\"Sync prompts - fetch remote and push local\")\n .action(async () => {\n try {\n await syncCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\nprogram.parse(process.argv);"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\n// Load environment variables BEFORE any other imports\nimport { config } from \"dotenv\";\nconfig();\n\nimport { Command } from \"commander\";\nimport { parsePromptSpec } from \"./types\";\n\ndeclare const __CLI_VERSION__: string;\n\n// Import commands with proper async handling\nconst addCommand = async (name: string, options: { version?: string; localFile?: string }): Promise<void> => {\n const { addCommand: addCommandImpl } = await import(\"./commands/add.js\");\n return addCommandImpl(name, options);\n};\n\nconst removeCommand = async (name: string): Promise<void> => {\n const { removeCommand: removeCommandImpl } = await import(\"./commands/remove.js\");\n return removeCommandImpl(name);\n};\n\nconst initCommand = async (): Promise<void> => {\n const { initCommand: initCommandImpl } = await import(\"./commands/init.js\");\n return initCommandImpl();\n};\n\nconst loginCommand = async (): Promise<void> => {\n const { loginCommand: loginCommandImpl } = await import(\"./commands/login.js\");\n return loginCommandImpl();\n};\n\nconst listCommand = async (): Promise<void> => {\n const { listCommand: listCommandImpl } = await import(\"./commands/list.js\");\n return listCommandImpl();\n};\n\nconst syncCommand = async (): Promise<void> => {\n const { syncCommand: syncCommandImpl } = await import(\"./commands/sync.js\");\n return syncCommandImpl();\n};\n\nconst createCommand = async (name: string, options: Record<string, unknown>): Promise<void> => {\n const { createCommand: createCommandImpl } = await import(\"./commands/create.js\");\n return createCommandImpl(name, options);\n};\n\nconst program = new Command();\n\nprogram\n .name(\"langwatch\")\n .description(\"LangWatch CLI - The npm of prompts\")\n .version(__CLI_VERSION__, \"-v, --version\", \"Display the current version\")\n .configureHelp({\n showGlobalOptions: true,\n })\n .showHelpAfterError()\n .showSuggestionAfterError();\n\n// Top-level commands\nprogram\n .command(\"login\")\n .description(\"Login to LangWatch and save API key\")\n .action(async () => {\n try {\n await loginCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\n// Add prompt command group\nconst promptCmd = program\n .command(\"prompt\")\n .description(\"Manage prompt dependencies\");\n\npromptCmd\n .command(\"init\")\n .description(\"Initialize a new prompts project\")\n .action(async () => {\n try {\n await initCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"create <name>\")\n .description(\"Create a new prompt YAML file with default content\")\n .action(async (name: string) => {\n try {\n await createCommand(name, {});\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"add <spec> [localFile]\")\n .description(\"Add a prompt dependency (e.g., 'agent/foo', 'agent/bar@5') or local file\")\n .action(async (spec: string, localFile?: string) => {\n try {\n if (localFile) {\n await addCommand(spec, { localFile });\n } else {\n const { name, version } = parsePromptSpec(spec);\n await addCommand(name, { version });\n }\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"remove <name>\")\n .description(\"Remove a prompt dependency\")\n .action(async (name: string) => {\n try {\n await removeCommand(name);\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"list\")\n .description(\"List all available prompts on the server\")\n .action(async () => {\n try {\n await listCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"sync\")\n .description(\"Sync prompts - fetch remote and push local\")\n .action(async () => {\n try {\n await syncCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\nprogram.parse(process.argv);"],"mappings":"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","names":[]}
package/dist/index.d.mts CHANGED
@@ -300,12 +300,12 @@ declare class PromptsFacade {
300
300
  * Retrieves a prompt by handle or ID.
301
301
  * @param handleOrId The prompt's handle or unique identifier.
302
302
  * @param options Optional parameters for the request.
303
- * @returns The Prompt instance or null if not found.
304
- * @throws {PromptsError} If the API call fails.
303
+ * @returns The Prompt instance.
304
+ * @throws {PromptsError} If the prompt is not found or the API call fails.
305
305
  */
306
306
  get(handleOrId: string, options?: {
307
307
  version?: string;
308
- }): Promise<Prompt | null>;
308
+ }): Promise<Prompt>;
309
309
  /**
310
310
  * Retrieves all prompts.
311
311
  * @returns Array of Prompt instances.
package/dist/index.d.ts CHANGED
@@ -300,12 +300,12 @@ declare class PromptsFacade {
300
300
  * Retrieves a prompt by handle or ID.
301
301
  * @param handleOrId The prompt's handle or unique identifier.
302
302
  * @param options Optional parameters for the request.
303
- * @returns The Prompt instance or null if not found.
304
- * @throws {PromptsError} If the API call fails.
303
+ * @returns The Prompt instance.
304
+ * @throws {PromptsError} If the prompt is not found or the API call fails.
305
305
  */
306
306
  get(handleOrId: string, options?: {
307
307
  version?: string;
308
- }): Promise<Prompt | null>;
308
+ }): Promise<Prompt>;
309
309
  /**
310
310
  * Retrieves all prompts.
311
311
  * @returns Array of Prompt instances.
package/dist/index.js CHANGED
@@ -4,22 +4,22 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkPQZCGMWTjs = require('./chunk-PQZCGMWT.js');
7
+ var _chunkFISQBF2Pjs = require('./chunk-FISQBF2P.js');
8
8
 
9
9
 
10
10
  var _chunkSNDTNU3Tjs = require('./chunk-SNDTNU3T.js');
11
11
 
12
12
 
13
- var _chunkBP2WGNIVjs = require('./chunk-BP2WGNIV.js');
14
13
 
14
+ var _chunk2UTO2QPLjs = require('./chunk-2UTO2QPL.js');
15
15
 
16
16
 
17
- var _chunk4XNHIYPEjs = require('./chunk-4XNHIYPE.js');
18
17
 
19
18
 
19
+ var _chunkNQ7TYHRTjs = require('./chunk-NQ7TYHRT.js');
20
20
 
21
21
 
22
- var _chunk4NB5C6GHjs = require('./chunk-4NB5C6GH.js');
22
+ var _chunkA43BYF5Qjs = require('./chunk-A43BYF5Q.js');
23
23
 
24
24
 
25
25
 
@@ -46,13 +46,13 @@ var TracesError = class extends Error {
46
46
  };
47
47
 
48
48
  // src/client-sdk/services/traces/tracing/tracer.ts
49
- var tracer = _chunkBP2WGNIVjs.getLangWatchTracer.call(void 0, `${_chunk4NB5C6GHjs.LANGWATCH_SDK_NAME_CLIENT}.traces`, _chunk4NB5C6GHjs.LANGWATCH_SDK_VERSION);
49
+ var tracer = _chunkA43BYF5Qjs.getLangWatchTracer.call(void 0, `${_chunkNQ7TYHRTjs.LANGWATCH_SDK_NAME_CLIENT}.traces`, _chunkNQ7TYHRTjs.LANGWATCH_SDK_VERSION);
50
50
 
51
51
  // src/client-sdk/services/traces/service.ts
52
52
  var TracesService = class {
53
53
  constructor(config) {
54
54
  this.config = config;
55
- return _chunkPQZCGMWTjs.createTracingProxy.call(void 0,
55
+ return _chunkFISQBF2Pjs.createTracingProxy.call(void 0,
56
56
  this,
57
57
  tracer
58
58
  );
@@ -115,15 +115,15 @@ var LangWatch = class {
115
115
  _chunkOHM7JUMRjs.__privateAdd.call(void 0, this, _LangWatch_instances);
116
116
  var _a, _b, _c, _d;
117
117
  const apiKey = (_b = (_a = options.apiKey) != null ? _a : process.env.LANGWATCH_API_KEY) != null ? _b : "";
118
- const endpoint = (_d = (_c = options.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : _chunk4NB5C6GHjs.DEFAULT_ENDPOINT;
118
+ const endpoint = (_d = (_c = options.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : _chunkNQ7TYHRTjs.DEFAULT_ENDPOINT;
119
119
  this.config = _chunkOHM7JUMRjs.__privateMethod.call(void 0, this, _LangWatch_instances, createInternalConfig_fn).call(this, {
120
120
  apiKey,
121
121
  endpoint,
122
122
  options: options.options
123
123
  });
124
- this.prompts = new (0, _chunkPQZCGMWTjs.PromptsFacade)(_chunkOHM7JUMRjs.__spreadValues.call(void 0, {
125
- promptsApiService: new (0, _chunkPQZCGMWTjs.PromptsApiService)(this.config),
126
- localPromptsService: new (0, _chunkPQZCGMWTjs.LocalPromptsService)()
124
+ this.prompts = new (0, _chunkFISQBF2Pjs.PromptsFacade)(_chunkOHM7JUMRjs.__spreadValues.call(void 0, {
125
+ promptsApiService: new (0, _chunkFISQBF2Pjs.PromptsApiService)(this.config),
126
+ localPromptsService: new (0, _chunkFISQBF2Pjs.LocalPromptsService)()
127
127
  }, this.config));
128
128
  this.traces = new TracesFacade(this.config);
129
129
  }
@@ -140,7 +140,7 @@ createInternalConfig_fn = function({
140
140
  var _a;
141
141
  return {
142
142
  logger: (_a = options == null ? void 0 : options.logger) != null ? _a : new (0, _chunkCKIZDPIJjs.NoOpLogger)(),
143
- langwatchApiClient: _chunkPQZCGMWTjs.createLangWatchApiClient.call(void 0, apiKey, endpoint)
143
+ langwatchApiClient: _chunkFISQBF2Pjs.createLangWatchApiClient.call(void 0, apiKey, endpoint)
144
144
  };
145
145
  };
146
146
 
@@ -157,5 +157,5 @@ var logger = {
157
157
 
158
158
 
159
159
 
160
- exports.FilterableBatchSpanProcessor = _chunkSNDTNU3Tjs.FilterableBatchSpanProcessor; exports.LangWatch = LangWatch; exports.LangWatchExporter = _chunk4XNHIYPEjs.LangWatchTraceExporter; exports.attributes = _chunkCKIZDPIJjs.attributes_exports; exports.getLangWatchLogger = _chunk4XNHIYPEjs.getLangWatchLogger; exports.getLangWatchTracer = _chunkBP2WGNIVjs.getLangWatchTracer; exports.logger = logger;
160
+ exports.FilterableBatchSpanProcessor = _chunkSNDTNU3Tjs.FilterableBatchSpanProcessor; exports.LangWatch = LangWatch; exports.LangWatchExporter = _chunk2UTO2QPLjs.LangWatchTraceExporter; exports.attributes = _chunkCKIZDPIJjs.attributes_exports; exports.getLangWatchLogger = _chunk2UTO2QPLjs.getLangWatchLogger; exports.getLangWatchTracer = _chunkA43BYF5Qjs.getLangWatchTracer; exports.logger = logger;
161
161
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/index.js","../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","../src/index.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACvBO,IAAM,YAAA,EAAN,MAAA,QAA0B,MAAM;AAAA,EACrC,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,aAAA;AAAA,EACd;AACF,CAAA;ADuBA;AACA;AE5CO,IAAM,OAAA,EAAS,iDAAA,CAAmB,EAAA;AF8CR;AACA;AGnCN;AAGW,EAAA;AACpB,IAAA;AAKP,IAAA;AACL,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ0C,EAAA;AApC5C,IAAA;AAsCa,IAAA;AAGC,IAAA;AACmB,MAAA;AAC3B,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAY6B,EAAA;AACH,IAAA;AACd,MAAA;AACA,QAAA;AACA,UAAA;AACN,QAAA;AACF,MAAA;AACO,MAAA;AACR,IAAA;AAEU,IAAA;AACW,MAAA;AACtB,IAAA;AAEO,IAAA;AACT,EAAA;AACF;AHsBiC;AACA;AIjGjC;AAI0B;AAGY,EAAA;AAF3B,IAAA;AAGS,IAAA;AAClB,EAAA;AAE+E,EAAA;AACjE,IAAA;AACd,EAAA;AACF;AATW;AJwGsB;AACA;AK9GjC;AAgBuB;AAMkC,EAAA;AANlD,IAAA;AAhBP,IAAA;AAuBmB,IAAA;AACE,IAAA;AAEH,IAAA;AACZ,MAAA;AACA,MAAA;AACiB,MAAA;AACnB,IAAA;AAEmB,IAAA;AACM,MAAA;AACE,MAAA;AAE1B,IAAA;AACiB,IAAA;AACpB,EAAA;AAEoC,EAAA;AACf,IAAA;AACrB,EAAA;AAgBF;AA1CO;AA4BgB;AACnB,EAAA;AACA,EAAA;AACA,EAAA;AAKiB;AApDrB,EAAA;AAqDW,EAAA;AACG,IAAA;AACY,IAAA;AACtB,EAAA;AACF;ALwF+B;AACA;AMnIX;AACpB,EAAA;AACA,EAAA;AACF;ANqIiC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/index.js","sourcesContent":[null,"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 #service: TracesService;\n\n constructor(config: InternalConfig) {\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 { PromptsFacade, PromptsApiService } from \"./services/prompts\";\nimport { LocalPromptsService } from \"./services/prompts/local-prompts.service\";\nimport { type InternalConfig } from \"./types\";\nimport { createLangWatchApiClient, type LangwatchApiClient } from \"../internal/api/client\";\nimport { type Logger, NoOpLogger } from \"../logger\";\nimport { TracesFacade } from \"./services/traces/facade\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\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\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({\n promptsApiService: new PromptsApiService(this.config),\n localPromptsService: new LocalPromptsService(),\n ...this.config,\n });\n this.traces = new TracesFacade(this.config);\n }\n\n get apiClient(): LangwatchApiClient {\n return this.config.langwatchApiClient;\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","import { ConsoleLogger, NoOpLogger } from \"./logger\";\n\nexport {\n getLangWatchTracer,\n getLangWatchLogger,\n attributes,\n} from \"./observability-sdk\";\n\nexport {\n FilterableBatchSpanProcessor,\n type SpanProcessingExcludeRule,\n} from \"./observability-sdk/processors\";\nexport { LangWatchExporter } from \"./observability-sdk/exporters\";\nexport { LangWatch } from \"./client-sdk\";\n\nexport const logger = {\n ConsoleLogger,\n NoOpLogger,\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/index.js","../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","../src/index.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACvBO,IAAM,YAAA,EAAN,MAAA,QAA0B,MAAM;AAAA,EACrC,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,aAAA;AAAA,EACd;AACF,CAAA;ADuBA;AACA;AE5CO,IAAM,OAAA,EAAS,iDAAA,CAAmB,EAAA;AF8CR;AACA;AGnCN;AAGW,EAAA;AACpB,IAAA;AAKP,IAAA;AACL,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ0C,EAAA;AApC5C,IAAA;AAsCa,IAAA;AAGC,IAAA;AACmB,MAAA;AAC3B,MAAA;AACA,MAAA;AACF,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAY6B,EAAA;AACH,IAAA;AACd,MAAA;AACA,QAAA;AACA,UAAA;AACN,QAAA;AACF,MAAA;AACO,MAAA;AACR,IAAA;AAEU,IAAA;AACW,MAAA;AACtB,IAAA;AAEO,IAAA;AACT,EAAA;AACF;AHsBiC;AACA;AIjGjC;AAI0B;AAGY,EAAA;AAF3B,IAAA;AAGS,IAAA;AAClB,EAAA;AAE+E,EAAA;AACjE,IAAA;AACd,EAAA;AACF;AATW;AJwGsB;AACA;AK9GjC;AAgBuB;AAMkC,EAAA;AANlD,IAAA;AAhBP,IAAA;AAuBmB,IAAA;AACE,IAAA;AAEH,IAAA;AACZ,MAAA;AACA,MAAA;AACiB,MAAA;AACnB,IAAA;AAEmB,IAAA;AACM,MAAA;AACE,MAAA;AAE1B,IAAA;AACiB,IAAA;AACpB,EAAA;AAEoC,EAAA;AACf,IAAA;AACrB,EAAA;AAgBF;AA1CO;AA4BgB;AACnB,EAAA;AACA,EAAA;AACA,EAAA;AAKiB;AApDrB,EAAA;AAqDW,EAAA;AACG,IAAA;AACY,IAAA;AACtB,EAAA;AACF;ALwF+B;AACA;AMnIX;AACpB,EAAA;AACA,EAAA;AACF;ANqIiC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/index.js","sourcesContent":[null,"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 #service: TracesService;\n\n constructor(config: InternalConfig) {\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 { PromptsFacade, PromptsApiService } from \"./services/prompts\";\nimport { LocalPromptsService } from \"./services/prompts/local-prompts.service\";\nimport { type InternalConfig } from \"./types\";\nimport { createLangWatchApiClient, type LangwatchApiClient } from \"../internal/api/client\";\nimport { type Logger, NoOpLogger } from \"../logger\";\nimport { TracesFacade } from \"./services/traces/facade\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\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\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({\n promptsApiService: new PromptsApiService(this.config),\n localPromptsService: new LocalPromptsService(),\n ...this.config,\n });\n this.traces = new TracesFacade(this.config);\n }\n\n get apiClient(): LangwatchApiClient {\n return this.config.langwatchApiClient;\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","import { ConsoleLogger, NoOpLogger } from \"./logger\";\n\nexport {\n getLangWatchTracer,\n getLangWatchLogger,\n attributes,\n} from \"./observability-sdk\";\n\nexport {\n FilterableBatchSpanProcessor,\n type SpanProcessingExcludeRule,\n} from \"./observability-sdk/processors\";\nexport { LangWatchExporter } from \"./observability-sdk/exporters\";\nexport { LangWatch } from \"./client-sdk\";\n\nexport const logger = {\n ConsoleLogger,\n NoOpLogger,\n};\n"]}
package/dist/index.mjs CHANGED
@@ -4,22 +4,22 @@ import {
4
4
  PromptsFacade,
5
5
  createLangWatchApiClient,
6
6
  createTracingProxy
7
- } from "./chunk-M57C3BU5.mjs";
7
+ } from "./chunk-6VUZPNOC.mjs";
8
8
  import {
9
9
  FilterableBatchSpanProcessor
10
10
  } from "./chunk-FEL5FLHA.mjs";
11
- import {
12
- getLangWatchTracer
13
- } from "./chunk-DQU2PZAL.mjs";
14
11
  import {
15
12
  LangWatchTraceExporter,
16
13
  getLangWatchLogger
17
- } from "./chunk-LW62ZSAR.mjs";
14
+ } from "./chunk-XBHIDR76.mjs";
18
15
  import {
19
16
  DEFAULT_ENDPOINT,
20
17
  LANGWATCH_SDK_NAME_CLIENT,
21
18
  LANGWATCH_SDK_VERSION
22
- } from "./chunk-2BFLRROK.mjs";
19
+ } from "./chunk-SMUOMBKY.mjs";
20
+ import {
21
+ getLangWatchTracer
22
+ } from "./chunk-WHPBZSTS.mjs";
23
23
  import {
24
24
  ConsoleLogger,
25
25
  NoOpLogger,
@@ -4,11 +4,11 @@ import {
4
4
  import {
5
5
  PromptsApiService,
6
6
  PromptsError
7
- } from "./chunk-M57C3BU5.mjs";
7
+ } from "./chunk-6VUZPNOC.mjs";
8
8
  import "./chunk-FEL5FLHA.mjs";
9
- import "./chunk-DQU2PZAL.mjs";
10
- import "./chunk-LW62ZSAR.mjs";
11
- import "./chunk-2BFLRROK.mjs";
9
+ import "./chunk-XBHIDR76.mjs";
10
+ import "./chunk-SMUOMBKY.mjs";
11
+ import "./chunk-WHPBZSTS.mjs";
12
12
  import "./chunk-I2SOBPAF.mjs";
13
13
  import "./chunk-O6D3W3PG.mjs";
14
14
  import "./chunk-BTBSMJTY.mjs";
@@ -145,4 +145,4 @@ var listCommand = async () => {
145
145
  export {
146
146
  listCommand
147
147
  };
148
- //# sourceMappingURL=list-XDVFYGVF.mjs.map
148
+ //# sourceMappingURL=list-4BFJIHYB.mjs.map
@@ -4,11 +4,11 @@ var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
4
4
 
5
5
 
6
6
 
7
- var _chunkPQZCGMWTjs = require('./chunk-PQZCGMWT.js');
7
+ var _chunkFISQBF2Pjs = require('./chunk-FISQBF2P.js');
8
8
  require('./chunk-SNDTNU3T.js');
9
- require('./chunk-BP2WGNIV.js');
10
- require('./chunk-4XNHIYPE.js');
11
- require('./chunk-4NB5C6GH.js');
9
+ require('./chunk-2UTO2QPL.js');
10
+ require('./chunk-NQ7TYHRT.js');
11
+ require('./chunk-A43BYF5Q.js');
12
12
  require('./chunk-CKIZDPIJ.js');
13
13
  require('./chunk-WAAQLJ67.js');
14
14
  require('./chunk-AZHZ4NB4.js');
@@ -79,7 +79,7 @@ var formatRelativeTime = (dateString) => {
79
79
  var listCommand = async () => {
80
80
  try {
81
81
  _chunkF6E4XQQUjs.checkApiKey.call(void 0, );
82
- const promptsApiService = new (0, _chunkPQZCGMWTjs.PromptsApiService)();
82
+ const promptsApiService = new (0, _chunkFISQBF2Pjs.PromptsApiService)();
83
83
  const spinner = _ora2.default.call(void 0, "Fetching prompts from server...").start();
84
84
  try {
85
85
  const allPrompts = await promptsApiService.getAll();
@@ -118,7 +118,7 @@ var listCommand = async () => {
118
118
  );
119
119
  } catch (error) {
120
120
  spinner.fail();
121
- if (error instanceof _chunkPQZCGMWTjs.PromptsError) {
121
+ if (error instanceof _chunkFISQBF2Pjs.PromptsError) {
122
122
  console.error(_chalk2.default.red(`Error: ${error.message}`));
123
123
  } else {
124
124
  console.error(
@@ -130,7 +130,7 @@ var listCommand = async () => {
130
130
  process.exit(1);
131
131
  }
132
132
  } catch (error) {
133
- if (error instanceof _chunkPQZCGMWTjs.PromptsError) {
133
+ if (error instanceof _chunkFISQBF2Pjs.PromptsError) {
134
134
  console.error(_chalk2.default.red(`Error: ${error.message}`));
135
135
  } else {
136
136
  console.error(
@@ -145,4 +145,4 @@ var listCommand = async () => {
145
145
 
146
146
 
147
147
  exports.listCommand = listCommand;
148
- //# sourceMappingURL=list-HV2QUNQG.js.map
148
+ //# sourceMappingURL=list-VWXENE3O.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-HV2QUNQG.js","../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;AChBA,4EAAkB;AAClB,oEAAgB;AAKhB,IAAM,UAAA,EAAY,CAAC,GAAA,EAAA,GAAwB;AAEzC,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;AAGN,IAAA;AAEc,IAAA;AAEhB,IAAA;AAEiB,MAAA;AACH,MAAA;AACV,MAAA;AAEE,MAAA;AACW,QAAA;AAIR,UAAA;AAGP,QAAA;AACJ,MAAA;AAEY,MAAA;AACE,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACZ,QAAA;AACF,MAAA;AAEY,MAAA;AAGM,MAAA;AA7HxB,QAAA;AA6HiD,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;AD5ByB;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-HV2QUNQG.js","sourcesContent":[null,"import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptsApiService, PromptsError } from \"@/client-sdk/services/prompts\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n// Helper to strip ANSI codes for length calculation\nconst stripAnsi = (str: string): string => {\n // eslint-disable-next-line no-control-regex\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 prompts API service\n const promptsApiService = new PromptsApiService();\n\n const spinner = ora(\"Fetching prompts from server...\").start();\n\n try {\n // Fetch all prompts\n const allPrompts = await promptsApiService.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${\n prompts.length !== 1 ? \"s\" : \"\"\n } ` +\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
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-VWXENE3O.js","../src/cli/commands/list.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-VWXENE3O.js","sourcesContent":[null,"import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptsApiService, PromptsError } from \"@/client-sdk/services/prompts\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n// Helper to strip ANSI codes for length calculation\nconst stripAnsi = (str: string): string => {\n // eslint-disable-next-line no-control-regex\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 prompts API service\n const promptsApiService = new PromptsApiService();\n\n const spinner = ora(\"Fetching prompts from server...\").start();\n\n try {\n // Fetch all prompts\n const allPrompts = await promptsApiService.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${\n prompts.length !== 1 ? \"s\" : \"\"\n } ` +\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,6 +1,6 @@
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 _chunk4NB5C6GHjs = require('./chunk-4NB5C6GH.js');
3
+ var _chunkNQ7TYHRTjs = require('./chunk-NQ7TYHRT.js');
4
4
  require('./chunk-OHM7JUMR.js');
5
5
 
6
6
  // src/cli/commands/login.ts
@@ -11,7 +11,7 @@ var _ora = require('ora'); var _ora2 = _interopRequireDefault(_ora);
11
11
  var _prompts = require('prompts'); var _prompts2 = _interopRequireDefault(_prompts);
12
12
  var getEndpoint = () => {
13
13
  var _a;
14
- return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : _chunk4NB5C6GHjs.DEFAULT_ENDPOINT;
14
+ return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : _chunkNQ7TYHRTjs.DEFAULT_ENDPOINT;
15
15
  };
16
16
  var updateEnvFile = (apiKey) => {
17
17
  const envPath = path.join(process.cwd(), ".env");
@@ -111,4 +111,4 @@ var loginCommand = async () => {
111
111
 
112
112
 
113
113
  exports.loginCommand = loginCommand;
114
- //# sourceMappingURL=login-CHJE7P5F.js.map
114
+ //# sourceMappingURL=login-6PM2MUZS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-CHJE7P5F.js","../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACLA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAChB,oFAAoB;AAGpB,IAAM,YAAA,EAAc,CAAA,EAAA,GAAc;AAPlC,EAAA,IAAA,EAAA;AAQE,EAAA,OAAA,CAAO,GAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAA,GAAZ,KAAA,EAAA,GAAA,EAAkC,iCAAA;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;ADzByC;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-CHJE7P5F.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport prompts from \"prompts\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\nconst getEndpoint = (): string => {\n return process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT;\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"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-6PM2MUZS.js","../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACLA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAChB,oFAAoB;AAGpB,IAAM,YAAA,EAAc,CAAA,EAAA,GAAc;AAPlC,EAAA,IAAA,EAAA;AAQE,EAAA,OAAA,CAAO,GAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAA,GAAZ,KAAA,EAAA,GAAA,EAAkC,iCAAA;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;ADzByC;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-6PM2MUZS.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport prompts from \"prompts\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\nconst getEndpoint = (): string => {\n return process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT;\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"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_ENDPOINT
3
- } from "./chunk-2BFLRROK.mjs";
3
+ } from "./chunk-SMUOMBKY.mjs";
4
4
  import "./chunk-URTD2WOC.mjs";
5
5
 
6
6
  // src/cli/commands/login.ts
@@ -111,4 +111,4 @@ var loginCommand = async () => {
111
111
  export {
112
112
  loginCommand
113
113
  };
114
- //# sourceMappingURL=login-AVTZS3NG.mjs.map
114
+ //# sourceMappingURL=login-CEO47GSW.mjs.map
@@ -7,14 +7,14 @@ var _chunkSNDTNU3Tjs = require('../chunk-SNDTNU3T.js');
7
7
 
8
8
 
9
9
 
10
- var _chunkBP2WGNIVjs = require('../chunk-BP2WGNIV.js');
10
+ var _chunk2UTO2QPLjs = require('../chunk-2UTO2QPL.js');
11
+ require('../chunk-NQ7TYHRT.js');
11
12
 
12
13
 
13
14
 
14
15
 
15
16
 
16
- var _chunk4XNHIYPEjs = require('../chunk-4XNHIYPE.js');
17
- require('../chunk-4NB5C6GH.js');
17
+ var _chunkA43BYF5Qjs = require('../chunk-A43BYF5Q.js');
18
18
 
19
19
 
20
20
 
@@ -38,5 +38,5 @@ require('../chunk-OHM7JUMR.js');
38
38
 
39
39
 
40
40
 
41
- exports.DataCapturePresets = _chunkSNDTNU3Tjs.DataCapturePresets; exports.FilterableBatchSpanProcessor = _chunkSNDTNU3Tjs.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunk4XNHIYPEjs.LangWatchTraceExporter; exports.LangWatchLogsExporter = _chunk4XNHIYPEjs.LangWatchLogsExporter; exports.LangWatchTraceExporter = _chunk4XNHIYPEjs.LangWatchTraceExporter; exports.attributes = _chunkCKIZDPIJjs.attributes_exports; exports.createLangWatchSpan = _chunkBP2WGNIVjs.createLangWatchSpan; exports.getDataCaptureMode = _chunkCKIZDPIJjs.getDataCaptureMode; exports.getLangWatchLogger = _chunk4XNHIYPEjs.getLangWatchLogger; exports.getLangWatchLoggerFromProvider = _chunk4XNHIYPEjs.getLangWatchLoggerFromProvider; exports.getLangWatchTracer = _chunkBP2WGNIVjs.getLangWatchTracer; exports.getLangWatchTracerFromProvider = _chunkBP2WGNIVjs.getLangWatchTracerFromProvider; exports.shouldCaptureInput = _chunkCKIZDPIJjs.shouldCaptureInput; exports.shouldCaptureOutput = _chunkCKIZDPIJjs.shouldCaptureOutput; exports.spanTypes = _chunkBP2WGNIVjs.spanTypes;
41
+ exports.DataCapturePresets = _chunkSNDTNU3Tjs.DataCapturePresets; exports.FilterableBatchSpanProcessor = _chunkSNDTNU3Tjs.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunk2UTO2QPLjs.LangWatchTraceExporter; exports.LangWatchLogsExporter = _chunk2UTO2QPLjs.LangWatchLogsExporter; exports.LangWatchTraceExporter = _chunk2UTO2QPLjs.LangWatchTraceExporter; exports.attributes = _chunkCKIZDPIJjs.attributes_exports; exports.createLangWatchSpan = _chunkA43BYF5Qjs.createLangWatchSpan; exports.getDataCaptureMode = _chunkCKIZDPIJjs.getDataCaptureMode; exports.getLangWatchLogger = _chunk2UTO2QPLjs.getLangWatchLogger; exports.getLangWatchLoggerFromProvider = _chunk2UTO2QPLjs.getLangWatchLoggerFromProvider; exports.getLangWatchTracer = _chunkA43BYF5Qjs.getLangWatchTracer; exports.getLangWatchTracerFromProvider = _chunkA43BYF5Qjs.getLangWatchTracerFromProvider; exports.shouldCaptureInput = _chunkCKIZDPIJjs.shouldCaptureInput; exports.shouldCaptureOutput = _chunkCKIZDPIJjs.shouldCaptureOutput; exports.spanTypes = _chunkA43BYF5Qjs.spanTypes;
42
42
  //# sourceMappingURL=index.js.map
@@ -1 +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,gCAA6B;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"}
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,gCAA6B;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"}
@@ -2,19 +2,19 @@ import {
2
2
  DataCapturePresets,
3
3
  FilterableBatchSpanProcessor
4
4
  } from "../chunk-FEL5FLHA.mjs";
5
- import {
6
- createLangWatchSpan,
7
- getLangWatchTracer,
8
- getLangWatchTracerFromProvider,
9
- spanTypes
10
- } from "../chunk-DQU2PZAL.mjs";
11
5
  import {
12
6
  LangWatchLogsExporter,
13
7
  LangWatchTraceExporter,
14
8
  getLangWatchLogger,
15
9
  getLangWatchLoggerFromProvider
16
- } from "../chunk-LW62ZSAR.mjs";
17
- import "../chunk-2BFLRROK.mjs";
10
+ } from "../chunk-XBHIDR76.mjs";
11
+ import "../chunk-SMUOMBKY.mjs";
12
+ import {
13
+ createLangWatchSpan,
14
+ getLangWatchTracer,
15
+ getLangWatchTracerFromProvider,
16
+ spanTypes
17
+ } from "../chunk-WHPBZSTS.mjs";
18
18
  import {
19
19
  attributes_exports,
20
20
  getDataCaptureMode,
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkBP2WGNIVjs = require('../../../chunk-BP2WGNIV.js');
4
+ var _chunkA43BYF5Qjs = require('../../../chunk-A43BYF5Q.js');
5
5
 
6
6
 
7
7
 
@@ -31,7 +31,7 @@ var LangWatchCallbackHandler = class extends _base.BaseCallbackHandler {
31
31
  constructor() {
32
32
  super(...arguments);
33
33
  this.name = "LangWatchCallbackHandler";
34
- this.tracer = _chunkBP2WGNIVjs.getLangWatchTracer.call(void 0, "langwatch.instrumentation.langchain");
34
+ this.tracer = _chunkA43BYF5Qjs.getLangWatchTracer.call(void 0, "langwatch.instrumentation.langchain");
35
35
  this.spans = {};
36
36
  this.parentOf = {};
37
37
  this.skipped = {};
@@ -362,7 +362,7 @@ function wrapNonScalarValues(value) {
362
362
  if (value === null) return JSON.stringify(null);
363
363
  if (typeof value === "string" || typeof value === "number" || typeof value === "boolean")
364
364
  return value;
365
- const chatMessages = _chunkBP2WGNIVjs.chatMessageSchema.array().safeParse(value);
365
+ const chatMessages = _chunkA43BYF5Qjs.chatMessageSchema.array().safeParse(value);
366
366
  if (Array.isArray(value) && chatMessages.success) {
367
367
  return JSON.stringify({ type: "chat_messages", value: chatMessages.data });
368
368
  }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  chatMessageSchema,
3
3
  getLangWatchTracer
4
- } from "../../../chunk-DQU2PZAL.mjs";
4
+ } from "../../../chunk-WHPBZSTS.mjs";
5
5
  import {
6
6
  shouldCaptureInput,
7
7
  shouldCaptureOutput
@@ -2,14 +2,14 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk4XNHIYPEjs = require('../../../chunk-4XNHIYPE.js');
5
+ var _chunk2UTO2QPLjs = require('../../../chunk-2UTO2QPL.js');
6
6
 
7
7
 
8
8
 
9
9
 
10
10
 
11
11
 
12
- var _chunk4NB5C6GHjs = require('../../../chunk-4NB5C6GH.js');
12
+ var _chunkNQ7TYHRTjs = require('../../../chunk-NQ7TYHRT.js');
13
13
 
14
14
 
15
15
 
@@ -30,12 +30,12 @@ var _resources = require('@opentelemetry/resources');
30
30
  var _incubating = require('@opentelemetry/semantic-conventions/incubating'); var semconv = _interopRequireWildcard(_incubating);
31
31
  function createMergedResource(attributes, serviceName, givenResource) {
32
32
  const langwatchResource = _resources.resourceFromAttributes.call(void 0, {
33
- [semconv.ATTR_TELEMETRY_SDK_NAME]: _chunk4NB5C6GHjs.LANGWATCH_SDK_NAME_OBSERVABILITY,
34
- [semconv.ATTR_TELEMETRY_SDK_LANGUAGE]: _chunk4NB5C6GHjs.LANGWATCH_SDK_LANGUAGE,
35
- [semconv.ATTR_TELEMETRY_SDK_VERSION]: _chunk4NB5C6GHjs.LANGWATCH_SDK_VERSION
33
+ [semconv.ATTR_TELEMETRY_SDK_NAME]: _chunkNQ7TYHRTjs.LANGWATCH_SDK_NAME_OBSERVABILITY,
34
+ [semconv.ATTR_TELEMETRY_SDK_LANGUAGE]: _chunkNQ7TYHRTjs.LANGWATCH_SDK_LANGUAGE,
35
+ [semconv.ATTR_TELEMETRY_SDK_VERSION]: _chunkNQ7TYHRTjs.LANGWATCH_SDK_VERSION
36
36
  });
37
37
  const userResource = _resources.resourceFromAttributes.call(void 0, _chunkOHM7JUMRjs.__spreadValues.call(void 0, {
38
- [semconv.ATTR_SERVICE_NAME]: serviceName != null ? serviceName : _chunk4NB5C6GHjs.DEFAULT_SERVICE_NAME
38
+ [semconv.ATTR_SERVICE_NAME]: serviceName != null ? serviceName : _chunkNQ7TYHRTjs.DEFAULT_SERVICE_NAME
39
39
  }, attributes != null ? attributes : {}));
40
40
  return (givenResource != null ? givenResource : _resources.defaultResource.call(void 0, )).merge(langwatchResource).merge(userResource);
41
41
  }
@@ -91,7 +91,7 @@ var getLangWatchConfig = (options) => {
91
91
  return {
92
92
  disabled: isDisabled,
93
93
  apiKey: isDisabled ? void 0 : (_a = config.apiKey) != null ? _a : process.env.LANGWATCH_API_KEY,
94
- endpoint: isDisabled ? void 0 : (_c = (_b = config.endpoint) != null ? _b : process.env.LANGWATCH_ENDPOINT) != null ? _c : _chunk4NB5C6GHjs.DEFAULT_ENDPOINT,
94
+ endpoint: isDisabled ? void 0 : (_c = (_b = config.endpoint) != null ? _b : process.env.LANGWATCH_ENDPOINT) != null ? _c : _chunkNQ7TYHRTjs.DEFAULT_ENDPOINT,
95
95
  processorType: (_d = config.processorType) != null ? _d : "simple"
96
96
  };
97
97
  };
@@ -198,11 +198,11 @@ function createAndStartNodeSdk(options, logger, resource) {
198
198
  logger.debug("Console recording of logs enabled; adding console log record processor");
199
199
  }
200
200
  if (!langwatch.disabled) {
201
- const traceExporter = new (0, _chunk4XNHIYPEjs.LangWatchTraceExporter)({
201
+ const traceExporter = new (0, _chunk2UTO2QPLjs.LangWatchTraceExporter)({
202
202
  apiKey: langwatch.apiKey,
203
203
  endpoint: langwatch.endpoint
204
204
  });
205
- const logExporter = new (0, _chunk4XNHIYPEjs.LangWatchLogsExporter)({
205
+ const logExporter = new (0, _chunk2UTO2QPLjs.LangWatchLogsExporter)({
206
206
  apiKey: langwatch.apiKey,
207
207
  endpoint: langwatch.endpoint
208
208
  });
@@ -272,7 +272,7 @@ function createAndStartNodeSdk(options, logger, resource) {
272
272
  });
273
273
  }
274
274
  if (loggerProvider) {
275
- _chunk4XNHIYPEjs.setLangWatchLoggerProvider.call(void 0, loggerProvider);
275
+ _chunk2UTO2QPLjs.setLangWatchLoggerProvider.call(void 0, loggerProvider);
276
276
  logger.debug("Set LangWatch logger provider");
277
277
  }
278
278
  if (!((_e = options.advanced) == null ? void 0 : _e.disableAutoShutdown)) {