langwatch 0.7.1 → 0.8.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 (88) hide show
  1. package/README.md +43 -52
  2. package/dist/{add-HWFRMAQX.mjs → add-TMFGG3SC.mjs} +7 -7
  3. package/dist/{add-5QV3TEWC.js → add-VOEIH432.js} +24 -24
  4. package/dist/{add-5QV3TEWC.js.map → add-VOEIH432.js.map} +1 -1
  5. package/dist/{chunk-5HAVK64Q.js → chunk-B5K6DU6G.js} +2 -2
  6. package/dist/chunk-B5K6DU6G.js.map +1 -0
  7. package/dist/{chunk-VMZUN4EF.js → chunk-BP2WGNIV.js} +3 -1
  8. package/dist/chunk-BP2WGNIV.js.map +1 -0
  9. package/dist/{chunk-UNMZPS55.mjs → chunk-DQU2PZAL.mjs} +3 -1
  10. package/dist/chunk-DQU2PZAL.mjs.map +1 -0
  11. package/dist/{chunk-DZH6SY3Z.js → chunk-GC7VHCU5.js} +10 -10
  12. package/dist/{chunk-DZH6SY3Z.js.map → chunk-GC7VHCU5.js.map} +1 -1
  13. package/dist/{chunk-7VHZNB2S.mjs → chunk-GMQHOSEU.mjs} +2 -2
  14. package/dist/chunk-GMQHOSEU.mjs.map +1 -0
  15. package/dist/{chunk-AD7QRYIJ.mjs → chunk-MBXENFRR.mjs} +2 -2
  16. package/dist/{chunk-PYVDTUA6.mjs → chunk-O6D3W3PG.mjs} +38 -49
  17. package/dist/chunk-O6D3W3PG.mjs.map +1 -0
  18. package/dist/{chunk-EPGKOTSN.mjs → chunk-SC4YBWRM.mjs} +17 -7
  19. package/dist/chunk-SC4YBWRM.mjs.map +1 -0
  20. package/dist/{chunk-7MG7DGPP.mjs → chunk-VH7IIHFW.mjs} +109 -20
  21. package/dist/chunk-VH7IIHFW.mjs.map +1 -0
  22. package/dist/{chunk-J55AV2YW.js → chunk-VWZCWYRH.js} +121 -32
  23. package/dist/chunk-VWZCWYRH.js.map +1 -0
  24. package/dist/{chunk-36XAYVMC.js → chunk-WAAQLJ67.js} +39 -50
  25. package/dist/chunk-WAAQLJ67.js.map +1 -0
  26. package/dist/{chunk-D7UAKYVI.js → chunk-XHNJY5BP.js} +26 -16
  27. package/dist/chunk-XHNJY5BP.js.map +1 -0
  28. package/dist/cli/index.js +7 -7
  29. package/dist/cli/index.mjs +7 -7
  30. package/dist/{create-S5RDGF3H.js → create-ACGBGFVO.js} +8 -8
  31. package/dist/{create-S5RDGF3H.js.map → create-ACGBGFVO.js.map} +1 -1
  32. package/dist/{create-LXQB4EFB.mjs → create-YUOTG2TS.mjs} +3 -3
  33. package/dist/{implementation-DsHp9FYU.d.ts → implementation-TF91Gn0l.d.ts} +154 -20
  34. package/dist/{implementation-nE9dgTwc.d.mts → implementation-pq0g2B5y.d.mts} +154 -20
  35. package/dist/index.d.mts +5 -2
  36. package/dist/index.d.ts +5 -2
  37. package/dist/index.js +13 -13
  38. package/dist/index.mjs +5 -5
  39. package/dist/{init-T4YDPHBA.mjs → init-ED3OW3TK.mjs} +3 -3
  40. package/dist/{init-UADBKUJU.js → init-UFZF26SF.js} +4 -4
  41. package/dist/{init-UADBKUJU.js.map → init-UFZF26SF.js.map} +1 -1
  42. package/dist/{list-HSCIBC4Z.js → list-42DGIFAC.js} +9 -9
  43. package/dist/{list-HSCIBC4Z.js.map → list-42DGIFAC.js.map} +1 -1
  44. package/dist/{list-BQXECLEM.mjs → list-KDYBQLVU.mjs} +6 -6
  45. package/dist/{login-EUDCIJRM.js → login-IRO5FBZI.js} +3 -3
  46. package/dist/{login-EUDCIJRM.js.map → login-IRO5FBZI.js.map} +1 -1
  47. package/dist/{login-3IM3PYSJ.mjs → login-RNWEYFQK.mjs} +2 -2
  48. package/dist/observability-sdk/index.d.mts +4 -3
  49. package/dist/observability-sdk/index.d.ts +4 -3
  50. package/dist/observability-sdk/index.js +4 -4
  51. package/dist/observability-sdk/index.mjs +3 -3
  52. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +1 -1
  53. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +1 -1
  54. package/dist/observability-sdk/instrumentation/langchain/index.js +3 -3
  55. package/dist/observability-sdk/instrumentation/langchain/index.mjs +1 -1
  56. package/dist/observability-sdk/setup/node/index.js +29 -10
  57. package/dist/observability-sdk/setup/node/index.js.map +1 -1
  58. package/dist/observability-sdk/setup/node/index.mjs +21 -2
  59. package/dist/observability-sdk/setup/node/index.mjs.map +1 -1
  60. package/dist/{remove-VDQ4M6JF.js → remove-5EXAIGBX.js} +14 -14
  61. package/dist/{remove-VDQ4M6JF.js.map → remove-5EXAIGBX.js.map} +1 -1
  62. package/dist/{remove-IVFQAHNT.mjs → remove-UWKI7GIJ.mjs} +6 -6
  63. package/dist/{sync-KUMBMGJS.js → sync-MOBSZVYV.js} +30 -31
  64. package/dist/sync-MOBSZVYV.js.map +1 -0
  65. package/dist/{sync-2MVHHWCX.mjs → sync-WJSJIKEW.mjs} +12 -13
  66. package/dist/sync-WJSJIKEW.mjs.map +1 -0
  67. package/dist/{types-B9772cUR.d.ts → types-CAQOMGrf.d.ts} +161 -43
  68. package/dist/{types-DbPAi4US.d.mts → types-DhEYjnRD.d.mts} +161 -43
  69. package/package.json +3 -2
  70. package/dist/chunk-36XAYVMC.js.map +0 -1
  71. package/dist/chunk-5HAVK64Q.js.map +0 -1
  72. package/dist/chunk-7MG7DGPP.mjs.map +0 -1
  73. package/dist/chunk-7VHZNB2S.mjs.map +0 -1
  74. package/dist/chunk-D7UAKYVI.js.map +0 -1
  75. package/dist/chunk-EPGKOTSN.mjs.map +0 -1
  76. package/dist/chunk-J55AV2YW.js.map +0 -1
  77. package/dist/chunk-PYVDTUA6.mjs.map +0 -1
  78. package/dist/chunk-UNMZPS55.mjs.map +0 -1
  79. package/dist/chunk-VMZUN4EF.js.map +0 -1
  80. package/dist/sync-2MVHHWCX.mjs.map +0 -1
  81. package/dist/sync-KUMBMGJS.js.map +0 -1
  82. /package/dist/{add-HWFRMAQX.mjs.map → add-TMFGG3SC.mjs.map} +0 -0
  83. /package/dist/{chunk-AD7QRYIJ.mjs.map → chunk-MBXENFRR.mjs.map} +0 -0
  84. /package/dist/{create-LXQB4EFB.mjs.map → create-YUOTG2TS.mjs.map} +0 -0
  85. /package/dist/{init-T4YDPHBA.mjs.map → init-ED3OW3TK.mjs.map} +0 -0
  86. /package/dist/{list-BQXECLEM.mjs.map → list-KDYBQLVU.mjs.map} +0 -0
  87. /package/dist/{login-3IM3PYSJ.mjs.map → login-RNWEYFQK.mjs.map} +0 -0
  88. /package/dist/{remove-IVFQAHNT.mjs.map → remove-UWKI7GIJ.mjs.map} +0 -0
@@ -3,10 +3,10 @@
3
3
  var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
4
4
 
5
5
 
6
- var _chunkDZH6SY3Zjs = require('./chunk-DZH6SY3Z.js');
6
+ var _chunkGC7VHCU5js = require('./chunk-GC7VHCU5.js');
7
7
 
8
8
 
9
- var _chunk36XAYVMCjs = require('./chunk-36XAYVMC.js');
9
+ var _chunkWAAQLJ67js = require('./chunk-WAAQLJ67.js');
10
10
  require('./chunk-AZHZ4NB4.js');
11
11
  require('./chunk-OHM7JUMR.js');
12
12
 
@@ -21,7 +21,7 @@ var createCommand = async (name, _options) => {
21
21
  process.exit(1);
22
22
  }
23
23
  _chunkF6E4XQQUjs.checkApiKey.call(void 0, );
24
- await _chunkDZH6SY3Zjs.ensureProjectInitialized.call(void 0, );
24
+ await _chunkGC7VHCU5js.ensureProjectInitialized.call(void 0, );
25
25
  const promptPath = path.join(
26
26
  process.cwd(),
27
27
  "prompts",
@@ -47,11 +47,11 @@ messages:
47
47
  content: "{{input}}"
48
48
  `;
49
49
  fs.writeFileSync(promptPath, defaultContent, "utf8");
50
- const promptsConfig = _chunk36XAYVMCjs.FileManager.loadPromptsConfig();
50
+ const promptsConfig = _chunkWAAQLJ67js.FileManager.loadPromptsConfig();
51
51
  const relativePath = path.relative(process.cwd(), promptPath);
52
52
  promptsConfig.prompts[name] = `file:${relativePath}`;
53
- _chunk36XAYVMCjs.FileManager.savePromptsConfig(promptsConfig);
54
- const lock = _chunk36XAYVMCjs.FileManager.loadPromptsLock();
53
+ _chunkWAAQLJ67js.FileManager.savePromptsConfig(promptsConfig);
54
+ const lock = _chunkWAAQLJ67js.FileManager.loadPromptsLock();
55
55
  lock.prompts[name] = {
56
56
  version: 0,
57
57
  // Local files start at version 0
@@ -59,7 +59,7 @@ messages:
59
59
  materialized: relativePath
60
60
  // Store the original file path
61
61
  };
62
- _chunk36XAYVMCjs.FileManager.savePromptsLock(lock);
62
+ _chunkWAAQLJ67js.FileManager.savePromptsLock(lock);
63
63
  const displayPath = `./${relativePath}`;
64
64
  console.log(
65
65
  _chalk2.default.green(`\u2713 Created prompt file: ${_chalk2.default.cyan(displayPath)}`)
@@ -77,4 +77,4 @@ messages:
77
77
 
78
78
 
79
79
  exports.createCommand = createCommand;
80
- //# sourceMappingURL=create-S5RDGF3H.js.map
80
+ //# sourceMappingURL=create-ACGBGFVO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/create-S5RDGF3H.js","../src/cli/commands/create.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACZA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAOX,IAAM,cAAA,EAAgB,MAAA,CAC3B,IAAA,EACA,QAAA,EAAA,GACkB;AAClB,EAAA,IAAI;AAEF,IAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,EAAA,IAAM,EAAA,EAAI;AAC/B,MAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,CAAM,GAAA,CAAI,oCAAoC,CAAC,CAAA;AAC7D,MAAA,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA;AAAA,IAChB;AAGA,IAAA,0CAAA,CAAY;AAGZ,IAAA,MAAM,uDAAA,CAAyB;AAG/B,IAAA,MAAM,WAAA,EAAkB,IAAA,CAAA,IAAA;AAAA,MACtB,OAAA,CAAQ,GAAA,CAAI,CAAA;AAAA,MACZ,SAAA;AAAA,MACA,CAAA,EAAA;AACF,IAAA;AAEA,IAAA;AACE,MAAA;AAAQ,QAAA;AAER,MAAA;AACA,MAAA;AACF,IAAA;AAGA,IAAA;AACA,IAAA;AACK,MAAA;AACL,IAAA;AAGA,IAAA;AAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWpB,IAAA;AAGH,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAGA,IAAA;AACA,IAAA;AACE,MAAA;AAAS;AACT,MAAA;AACA,MAAA;AAAc;AAChB,IAAA;AACA,IAAA;AAEA,IAAA;AACA,IAAA;AACE,MAAA;AACF,IAAA;AACA,IAAA;AACA,IAAA;AACF,EAAA;AACE,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AACF;ADZO;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/create-S5RDGF3H.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { ensureProjectInitialized } from \"../utils/init\";\n\ntype CreateOptions = Record<string, unknown>;\n\nexport const createCommand = async (\n name: string,\n _options: CreateOptions,\n): 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 // Check API key before doing anything else\n checkApiKey();\n\n // Ensure project is initialized\n await ensureProjectInitialized();\n\n // Check if file already exists\n const promptPath = path.join(\n process.cwd(),\n \"prompts\",\n `${name}.prompt.yaml`,\n );\n\n if (fs.existsSync(promptPath)) {\n console.error(\n chalk.red(`Error: Prompt file already exists at ${promptPath}`),\n );\n process.exit(1);\n }\n\n // Create prompts directory if it doesn't exist\n const promptsDir = path.dirname(promptPath);\n if (!fs.existsSync(promptsDir)) {\n fs.mkdirSync(promptsDir, { recursive: true });\n }\n\n // Default prompt content\n const defaultContent = `model: openai/gpt-5\nmodelParameters:\n temperature: 0.7\nmessages:\n - role: system\n content: You are a helpful assistant.\n - role: user\n content: \"{{input}}\"\n`;\n\n // Write the file\n fs.writeFileSync(promptPath, defaultContent, \"utf8\");\n\n // Add to prompts.json as a file: dependency\n const promptsConfig = FileManager.loadPromptsConfig();\n const relativePath = path.relative(process.cwd(), promptPath);\n promptsConfig.prompts[name] = `file:${relativePath}`;\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: relativePath, // Store the original file path\n };\n FileManager.savePromptsLock(lock);\n\n const displayPath = `./${relativePath}`;\n console.log(\n chalk.green(`✓ Created prompt file: ${chalk.cyan(displayPath)}`),\n );\n console.log(chalk.gray(` Edit this file and then run:`));\n console.log(chalk.cyan(` langwatch prompt sync`));\n } catch (error) {\n console.error(\n chalk.red(\"Unexpected error:\"),\n error instanceof Error ? error.message : error,\n );\n process.exit(1);\n }\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/create-ACGBGFVO.js","../src/cli/commands/create.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACZA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAOX,IAAM,cAAA,EAAgB,MAAA,CAC3B,IAAA,EACA,QAAA,EAAA,GACkB;AAClB,EAAA,IAAI;AAEF,IAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,EAAA,IAAM,EAAA,EAAI;AAC/B,MAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,CAAM,GAAA,CAAI,oCAAoC,CAAC,CAAA;AAC7D,MAAA,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA;AAAA,IAChB;AAGA,IAAA,0CAAA,CAAY;AAGZ,IAAA,MAAM,uDAAA,CAAyB;AAG/B,IAAA,MAAM,WAAA,EAAkB,IAAA,CAAA,IAAA;AAAA,MACtB,OAAA,CAAQ,GAAA,CAAI,CAAA;AAAA,MACZ,SAAA;AAAA,MACA,CAAA,EAAA;AACF,IAAA;AAEA,IAAA;AACE,MAAA;AAAQ,QAAA;AAER,MAAA;AACA,MAAA;AACF,IAAA;AAGA,IAAA;AACA,IAAA;AACK,MAAA;AACL,IAAA;AAGA,IAAA;AAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWpB,IAAA;AAGH,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAGA,IAAA;AACA,IAAA;AACE,MAAA;AAAS;AACT,MAAA;AACA,MAAA;AAAc;AAChB,IAAA;AACA,IAAA;AAEA,IAAA;AACA,IAAA;AACE,MAAA;AACF,IAAA;AACA,IAAA;AACA,IAAA;AACF,EAAA;AACE,IAAA;AACE,MAAA;AACA,MAAA;AACF,IAAA;AACA,IAAA;AACF,EAAA;AACF;ADZO;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/create-ACGBGFVO.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { ensureProjectInitialized } from \"../utils/init\";\n\ntype CreateOptions = Record<string, unknown>;\n\nexport const createCommand = async (\n name: string,\n _options: CreateOptions,\n): 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 // Check API key before doing anything else\n checkApiKey();\n\n // Ensure project is initialized\n await ensureProjectInitialized();\n\n // Check if file already exists\n const promptPath = path.join(\n process.cwd(),\n \"prompts\",\n `${name}.prompt.yaml`,\n );\n\n if (fs.existsSync(promptPath)) {\n console.error(\n chalk.red(`Error: Prompt file already exists at ${promptPath}`),\n );\n process.exit(1);\n }\n\n // Create prompts directory if it doesn't exist\n const promptsDir = path.dirname(promptPath);\n if (!fs.existsSync(promptsDir)) {\n fs.mkdirSync(promptsDir, { recursive: true });\n }\n\n // Default prompt content\n const defaultContent = `model: openai/gpt-5\nmodelParameters:\n temperature: 0.7\nmessages:\n - role: system\n content: You are a helpful assistant.\n - role: user\n content: \"{{input}}\"\n`;\n\n // Write the file\n fs.writeFileSync(promptPath, defaultContent, \"utf8\");\n\n // Add to prompts.json as a file: dependency\n const promptsConfig = FileManager.loadPromptsConfig();\n const relativePath = path.relative(process.cwd(), promptPath);\n promptsConfig.prompts[name] = `file:${relativePath}`;\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: relativePath, // Store the original file path\n };\n FileManager.savePromptsLock(lock);\n\n const displayPath = `./${relativePath}`;\n console.log(\n chalk.green(`✓ Created prompt file: ${chalk.cyan(displayPath)}`),\n );\n console.log(chalk.gray(` Edit this file and then run:`));\n console.log(chalk.cyan(` langwatch prompt sync`));\n } catch (error) {\n console.error(\n chalk.red(\"Unexpected error:\"),\n error instanceof Error ? error.message : error,\n );\n process.exit(1);\n }\n};\n"]}
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-DHJKJVY7.mjs";
4
4
  import {
5
5
  ensureProjectInitialized
6
- } from "./chunk-AD7QRYIJ.mjs";
6
+ } from "./chunk-MBXENFRR.mjs";
7
7
  import {
8
8
  FileManager
9
- } from "./chunk-PYVDTUA6.mjs";
9
+ } from "./chunk-O6D3W3PG.mjs";
10
10
  import "./chunk-BTBSMJTY.mjs";
11
11
  import "./chunk-URTD2WOC.mjs";
12
12
 
@@ -77,4 +77,4 @@ messages:
77
77
  export {
78
78
  createCommand
79
79
  };
80
- //# sourceMappingURL=create-LXQB4EFB.mjs.map
80
+ //# sourceMappingURL=create-YUOTG2TS.mjs.map
@@ -1,9 +1,10 @@
1
1
  import { BatchSpanProcessor, SpanExporter, ReadableSpan } from '@opentelemetry/sdk-trace-base';
2
2
  import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
3
+ import { ExportResult } from '@opentelemetry/core';
3
4
  import { Logger, LogRecord, LoggerProvider } from '@opentelemetry/api-logs';
4
5
  import { a as SemConvLogRecordAttributes, S as SemConvAttributes } from './types-DRiQaKFG.js';
5
6
  import { TracerProvider } from '@opentelemetry/api';
6
- import { a as LangWatchTracer } from './types-B9772cUR.js';
7
+ import { a as LangWatchTracer } from './types-CAQOMGrf.js';
7
8
 
8
9
  /**
9
10
  * Filterable Batch Span Exporter for OpenTelemetry
@@ -66,48 +67,181 @@ declare class FilterableBatchSpanProcessor extends BatchSpanProcessor {
66
67
  onEnd(span: ReadableSpan): void;
67
68
  }
68
69
 
70
+ interface Criteria {
71
+ instrumentationScopeName?: Match[];
72
+ name?: Match[];
73
+ }
74
+ interface Match {
75
+ equals?: string;
76
+ startsWith?: string;
77
+ matches?: RegExp;
78
+ ignoreCase?: boolean;
79
+ }
80
+ type TraceFilter = {
81
+ preset: "vercelAIOnly" | "excludeHttpRequests";
82
+ } | {
83
+ include: Criteria;
84
+ } | {
85
+ exclude: Criteria;
86
+ };
87
+
88
+ /**
89
+ * Configuration options for the LangWatchTraceExporter.
90
+ *
91
+ * @property endpoint - Custom LangWatch endpoint URL. Falls back to LANGWATCH_ENDPOINT env var or default.
92
+ * @property apiKey - API key for authentication. Falls back to LANGWATCH_API_KEY env var.
93
+ * @property filters - Array of filters applied sequentially to spans before export.
94
+ * Default: `[{ preset: "excludeHttpRequests" }]` to reduce framework noise.
95
+ * Pass `null` or `[]` to disable all filtering.
96
+ */
69
97
  interface LangWatchTraceExporterOptions {
70
98
  endpoint?: string;
71
99
  apiKey?: string;
72
- includeAllSpans?: boolean;
73
- debug?: boolean;
100
+ filters?: TraceFilter[] | null;
74
101
  }
102
+
75
103
  /**
76
104
  * LangWatchTraceExporter extends the OpenTelemetry OTLP HTTP trace exporter
77
105
  * to send trace data to LangWatch with proper authentication and metadata headers.
78
106
  *
79
- * This exporter automatically configures:
80
- * - Authorization headers using the provided API key or environment variables/fallback
81
- * - SDK version and language identification headers
82
- * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback
107
+ * ## Features
108
+ * - Automatic authorization header configuration via API key
109
+ * - SDK version and runtime identification headers
110
+ * - Proper endpoint URL construction for LangWatch ingestion
111
+ * - Intent-based span filtering with presets and custom criteria
83
112
  *
84
- * @example
113
+ * ## Filtering Behavior
114
+ * - **Default**: HTTP request spans are excluded to reduce framework noise
115
+ * - **Pipeline**: Filters are applied sequentially with AND semantics
116
+ * - **Matching**: All string comparisons are case-sensitive by default
117
+ * - **Array Syntax**: All criteria require arrays of Match objects for explicit filtering
118
+ *
119
+ * ## Filter Types
120
+ * - **Presets**: Pre-configured common filters (`vercelAIOnly`, `excludeHttpRequests`)
121
+ * - **Include**: Keep only spans matching criteria (OR within field, AND across fields)
122
+ * - **Exclude**: Remove spans matching criteria (OR within field, AND across fields)
123
+ *
124
+ * @example Basic usage with default filtering
85
125
  * ```typescript
86
126
  * import { LangWatchTraceExporter } from '@langwatch/observability';
87
127
  *
88
- * // Using environment variables/fallback configuration
128
+ * // Default: excludes HTTP request spans
89
129
  * const exporter = new LangWatchTraceExporter();
130
+ * ```
131
+ *
132
+ * @example Using presets
133
+ * ```typescript
134
+ * // Keep only Vercel AI SDK spans
135
+ * const exporterAI = new LangWatchTraceExporter({
136
+ * filters: [{ preset: 'vercelAIOnly' }],
137
+ * });
138
+ *
139
+ * // Explicitly exclude HTTP requests (same as default)
140
+ * const exporterNoHttp = new LangWatchTraceExporter({
141
+ * filters: [{ preset: 'excludeHttpRequests' }],
142
+ * });
143
+ *
144
+ * // No filtering at all (send all spans)
145
+ * const exporterAll = new LangWatchTraceExporter({
146
+ * filters: null, // or filters: []
147
+ * });
148
+ * ```
149
+ *
150
+ * @example Custom filtering with criteria
151
+ * ```typescript
152
+ * // Include only spans with specific scope
153
+ * const exporter1 = new LangWatchTraceExporter({
154
+ * filters: [
155
+ * { include: { instrumentationScopeName: [{ equals: 'ai' }] } }
156
+ * ],
157
+ * });
158
+ *
159
+ * // Exclude spans by name pattern
160
+ * const exporter2 = new LangWatchTraceExporter({
161
+ * filters: [
162
+ * { exclude: { name: [{ startsWith: 'internal.' }] } }
163
+ * ],
164
+ * });
165
+ *
166
+ * // Case-insensitive matching
167
+ * const exporter3 = new LangWatchTraceExporter({
168
+ * filters: [
169
+ * { include: { name: [{ equals: 'chat.completion', ignoreCase: true }] } }
170
+ * ],
171
+ * });
172
+ * ```
173
+ *
174
+ * @example Filter pipelines (AND semantics)
175
+ * ```typescript
176
+ * // Keep AI spans, then remove HTTP requests
177
+ * const exporter = new LangWatchTraceExporter({
178
+ * filters: [
179
+ * { include: { instrumentationScopeName: [{ equals: 'ai' }] } },
180
+ * { preset: 'excludeHttpRequests' },
181
+ * ],
182
+ * });
183
+ * ```
184
+ *
185
+ * @example OR semantics within a field
186
+ * ```typescript
187
+ * // Include spans with name starting with 'chat.' OR 'llm.'
188
+ * const exporter = new LangWatchTraceExporter({
189
+ * filters: [
190
+ * {
191
+ * include: {
192
+ * name: [
193
+ * { startsWith: 'chat.' },
194
+ * { startsWith: 'llm.' }
195
+ * ]
196
+ * }
197
+ * }
198
+ * ],
199
+ * });
200
+ * ```
90
201
  *
91
- * // Using custom options
202
+ * @example Using regex patterns
203
+ * ```typescript
92
204
  * const exporter = new LangWatchTraceExporter({
93
- * apiKey: 'your-api-key',
94
- * endpoint: 'https://custom.langwatch.com'
205
+ * filters: [
206
+ * {
207
+ * include: {
208
+ * name: [{ matches: /^(chat|llm)\./i }]
209
+ * }
210
+ * }
211
+ * ],
95
212
  * });
96
213
  * ```
97
214
  */
98
215
  declare class LangWatchTraceExporter extends OTLPTraceExporter {
216
+ private readonly filters;
99
217
  /**
100
- * Creates a new LangWatchExporter instance.
218
+ * Creates a new LangWatchTraceExporter instance.
219
+ *
220
+ * @param opts - Configuration options for the exporter
221
+ * @param opts.apiKey - API key for LangWatch authentication.
222
+ * Falls back to `LANGWATCH_API_KEY` environment variable, then empty string.
223
+ * @param opts.endpoint - Custom endpoint URL for LangWatch ingestion.
224
+ * Falls back to `LANGWATCH_ENDPOINT` environment variable, then default endpoint.
225
+ * @param opts.filters - Array of filters applied sequentially to spans before export (AND semantics).
226
+ * When omitted, defaults to `[{ preset: "excludeHttpRequests" }]`.
227
+ * Pass `null` or `[]` to disable all filtering and send all spans.
228
+ *
229
+ * @example
230
+ * ```typescript
231
+ * // With API key and default filtering
232
+ * const exporter = new LangWatchTraceExporter({
233
+ * apiKey: 'your-api-key'
234
+ * });
101
235
  *
102
- * @param opts - Optional configuration options for the exporter
103
- * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
104
- * will use environment variables or fallback configuration.
105
- * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
106
- * If not provided, will use environment variables or fallback configuration.
107
- * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version
108
- * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version
236
+ * // With custom endpoint and no filtering
237
+ * const exporter = new LangWatchTraceExporter({
238
+ * endpoint: 'https://custom.langwatch.ai',
239
+ * filters: null
240
+ * });
241
+ * ```
109
242
  */
110
243
  constructor(opts?: LangWatchTraceExporterOptions);
244
+ export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void;
111
245
  }
112
246
 
113
247
  /**
@@ -1,9 +1,10 @@
1
1
  import { BatchSpanProcessor, SpanExporter, ReadableSpan } from '@opentelemetry/sdk-trace-base';
2
2
  import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
3
+ import { ExportResult } from '@opentelemetry/core';
3
4
  import { Logger, LogRecord, LoggerProvider } from '@opentelemetry/api-logs';
4
5
  import { a as SemConvLogRecordAttributes, S as SemConvAttributes } from './types-DRiQaKFG.mjs';
5
6
  import { TracerProvider } from '@opentelemetry/api';
6
- import { a as LangWatchTracer } from './types-DbPAi4US.mjs';
7
+ import { a as LangWatchTracer } from './types-DhEYjnRD.mjs';
7
8
 
8
9
  /**
9
10
  * Filterable Batch Span Exporter for OpenTelemetry
@@ -66,48 +67,181 @@ declare class FilterableBatchSpanProcessor extends BatchSpanProcessor {
66
67
  onEnd(span: ReadableSpan): void;
67
68
  }
68
69
 
70
+ interface Criteria {
71
+ instrumentationScopeName?: Match[];
72
+ name?: Match[];
73
+ }
74
+ interface Match {
75
+ equals?: string;
76
+ startsWith?: string;
77
+ matches?: RegExp;
78
+ ignoreCase?: boolean;
79
+ }
80
+ type TraceFilter = {
81
+ preset: "vercelAIOnly" | "excludeHttpRequests";
82
+ } | {
83
+ include: Criteria;
84
+ } | {
85
+ exclude: Criteria;
86
+ };
87
+
88
+ /**
89
+ * Configuration options for the LangWatchTraceExporter.
90
+ *
91
+ * @property endpoint - Custom LangWatch endpoint URL. Falls back to LANGWATCH_ENDPOINT env var or default.
92
+ * @property apiKey - API key for authentication. Falls back to LANGWATCH_API_KEY env var.
93
+ * @property filters - Array of filters applied sequentially to spans before export.
94
+ * Default: `[{ preset: "excludeHttpRequests" }]` to reduce framework noise.
95
+ * Pass `null` or `[]` to disable all filtering.
96
+ */
69
97
  interface LangWatchTraceExporterOptions {
70
98
  endpoint?: string;
71
99
  apiKey?: string;
72
- includeAllSpans?: boolean;
73
- debug?: boolean;
100
+ filters?: TraceFilter[] | null;
74
101
  }
102
+
75
103
  /**
76
104
  * LangWatchTraceExporter extends the OpenTelemetry OTLP HTTP trace exporter
77
105
  * to send trace data to LangWatch with proper authentication and metadata headers.
78
106
  *
79
- * This exporter automatically configures:
80
- * - Authorization headers using the provided API key or environment variables/fallback
81
- * - SDK version and language identification headers
82
- * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback
107
+ * ## Features
108
+ * - Automatic authorization header configuration via API key
109
+ * - SDK version and runtime identification headers
110
+ * - Proper endpoint URL construction for LangWatch ingestion
111
+ * - Intent-based span filtering with presets and custom criteria
83
112
  *
84
- * @example
113
+ * ## Filtering Behavior
114
+ * - **Default**: HTTP request spans are excluded to reduce framework noise
115
+ * - **Pipeline**: Filters are applied sequentially with AND semantics
116
+ * - **Matching**: All string comparisons are case-sensitive by default
117
+ * - **Array Syntax**: All criteria require arrays of Match objects for explicit filtering
118
+ *
119
+ * ## Filter Types
120
+ * - **Presets**: Pre-configured common filters (`vercelAIOnly`, `excludeHttpRequests`)
121
+ * - **Include**: Keep only spans matching criteria (OR within field, AND across fields)
122
+ * - **Exclude**: Remove spans matching criteria (OR within field, AND across fields)
123
+ *
124
+ * @example Basic usage with default filtering
85
125
  * ```typescript
86
126
  * import { LangWatchTraceExporter } from '@langwatch/observability';
87
127
  *
88
- * // Using environment variables/fallback configuration
128
+ * // Default: excludes HTTP request spans
89
129
  * const exporter = new LangWatchTraceExporter();
130
+ * ```
131
+ *
132
+ * @example Using presets
133
+ * ```typescript
134
+ * // Keep only Vercel AI SDK spans
135
+ * const exporterAI = new LangWatchTraceExporter({
136
+ * filters: [{ preset: 'vercelAIOnly' }],
137
+ * });
138
+ *
139
+ * // Explicitly exclude HTTP requests (same as default)
140
+ * const exporterNoHttp = new LangWatchTraceExporter({
141
+ * filters: [{ preset: 'excludeHttpRequests' }],
142
+ * });
143
+ *
144
+ * // No filtering at all (send all spans)
145
+ * const exporterAll = new LangWatchTraceExporter({
146
+ * filters: null, // or filters: []
147
+ * });
148
+ * ```
149
+ *
150
+ * @example Custom filtering with criteria
151
+ * ```typescript
152
+ * // Include only spans with specific scope
153
+ * const exporter1 = new LangWatchTraceExporter({
154
+ * filters: [
155
+ * { include: { instrumentationScopeName: [{ equals: 'ai' }] } }
156
+ * ],
157
+ * });
158
+ *
159
+ * // Exclude spans by name pattern
160
+ * const exporter2 = new LangWatchTraceExporter({
161
+ * filters: [
162
+ * { exclude: { name: [{ startsWith: 'internal.' }] } }
163
+ * ],
164
+ * });
165
+ *
166
+ * // Case-insensitive matching
167
+ * const exporter3 = new LangWatchTraceExporter({
168
+ * filters: [
169
+ * { include: { name: [{ equals: 'chat.completion', ignoreCase: true }] } }
170
+ * ],
171
+ * });
172
+ * ```
173
+ *
174
+ * @example Filter pipelines (AND semantics)
175
+ * ```typescript
176
+ * // Keep AI spans, then remove HTTP requests
177
+ * const exporter = new LangWatchTraceExporter({
178
+ * filters: [
179
+ * { include: { instrumentationScopeName: [{ equals: 'ai' }] } },
180
+ * { preset: 'excludeHttpRequests' },
181
+ * ],
182
+ * });
183
+ * ```
184
+ *
185
+ * @example OR semantics within a field
186
+ * ```typescript
187
+ * // Include spans with name starting with 'chat.' OR 'llm.'
188
+ * const exporter = new LangWatchTraceExporter({
189
+ * filters: [
190
+ * {
191
+ * include: {
192
+ * name: [
193
+ * { startsWith: 'chat.' },
194
+ * { startsWith: 'llm.' }
195
+ * ]
196
+ * }
197
+ * }
198
+ * ],
199
+ * });
200
+ * ```
90
201
  *
91
- * // Using custom options
202
+ * @example Using regex patterns
203
+ * ```typescript
92
204
  * const exporter = new LangWatchTraceExporter({
93
- * apiKey: 'your-api-key',
94
- * endpoint: 'https://custom.langwatch.com'
205
+ * filters: [
206
+ * {
207
+ * include: {
208
+ * name: [{ matches: /^(chat|llm)\./i }]
209
+ * }
210
+ * }
211
+ * ],
95
212
  * });
96
213
  * ```
97
214
  */
98
215
  declare class LangWatchTraceExporter extends OTLPTraceExporter {
216
+ private readonly filters;
99
217
  /**
100
- * Creates a new LangWatchExporter instance.
218
+ * Creates a new LangWatchTraceExporter instance.
219
+ *
220
+ * @param opts - Configuration options for the exporter
221
+ * @param opts.apiKey - API key for LangWatch authentication.
222
+ * Falls back to `LANGWATCH_API_KEY` environment variable, then empty string.
223
+ * @param opts.endpoint - Custom endpoint URL for LangWatch ingestion.
224
+ * Falls back to `LANGWATCH_ENDPOINT` environment variable, then default endpoint.
225
+ * @param opts.filters - Array of filters applied sequentially to spans before export (AND semantics).
226
+ * When omitted, defaults to `[{ preset: "excludeHttpRequests" }]`.
227
+ * Pass `null` or `[]` to disable all filtering and send all spans.
228
+ *
229
+ * @example
230
+ * ```typescript
231
+ * // With API key and default filtering
232
+ * const exporter = new LangWatchTraceExporter({
233
+ * apiKey: 'your-api-key'
234
+ * });
101
235
  *
102
- * @param opts - Optional configuration options for the exporter
103
- * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
104
- * will use environment variables or fallback configuration.
105
- * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
106
- * If not provided, will use environment variables or fallback configuration.
107
- * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version
108
- * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version
236
+ * // With custom endpoint and no filtering
237
+ * const exporter = new LangWatchTraceExporter({
238
+ * endpoint: 'https://custom.langwatch.ai',
239
+ * filters: null
240
+ * });
241
+ * ```
109
242
  */
110
243
  constructor(opts?: LangWatchTraceExporterOptions);
244
+ export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void;
111
245
  }
112
246
 
113
247
  /**
package/dist/index.d.mts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { L as Logger, C as ConsoleLogger, N as NoOpLogger } from './index-D7rKIGrO.mjs';
2
- export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation-nE9dgTwc.mjs';
2
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation-pq0g2B5y.mjs';
3
3
  export { l as attributes } from './types-DRiQaKFG.mjs';
4
- import { p as paths, P as PromptResponse, g as CreatePromptBody, U as UpdatePromptBody, h as PromptData, i as Prompt } from './types-DbPAi4US.mjs';
4
+ import { p as paths, P as PromptResponse, g as CreatePromptBody, U as UpdatePromptBody, h as PromptData, i as Prompt } from './types-DhEYjnRD.mjs';
5
5
  import openApiCreateClient from 'openapi-fetch';
6
6
  import { z } from 'zod';
7
7
  import '@opentelemetry/sdk-trace-base';
8
8
  import '@opentelemetry/exporter-trace-otlp-http';
9
+ import '@opentelemetry/core';
9
10
  import '@opentelemetry/api-logs';
10
11
  import '@opentelemetry/api';
11
12
  import '@opentelemetry/semantic-conventions';
@@ -197,6 +198,8 @@ declare class FileManager {
197
198
  private static readonly PROMPTS_LOCK_FILE;
198
199
  private static readonly PROMPTS_DIR;
199
200
  private static readonly MATERIALIZED_DIR;
201
+ private static _projectRoot;
202
+ private static findProjectRoot;
200
203
  static getPromptsConfigPath(): string;
201
204
  static getPromptsLockPath(): string;
202
205
  static getPromptsDir(): string;
package/dist/index.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { L as Logger, C as ConsoleLogger, N as NoOpLogger } from './index-D7rKIGrO.js';
2
- export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation-DsHp9FYU.js';
2
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation-TF91Gn0l.js';
3
3
  export { l as attributes } from './types-DRiQaKFG.js';
4
- import { p as paths, P as PromptResponse, g as CreatePromptBody, U as UpdatePromptBody, h as PromptData, i as Prompt } from './types-B9772cUR.js';
4
+ import { p as paths, P as PromptResponse, g as CreatePromptBody, U as UpdatePromptBody, h as PromptData, i as Prompt } from './types-CAQOMGrf.js';
5
5
  import openApiCreateClient from 'openapi-fetch';
6
6
  import { z } from 'zod';
7
7
  import '@opentelemetry/sdk-trace-base';
8
8
  import '@opentelemetry/exporter-trace-otlp-http';
9
+ import '@opentelemetry/core';
9
10
  import '@opentelemetry/api-logs';
10
11
  import '@opentelemetry/api';
11
12
  import '@opentelemetry/semantic-conventions';
@@ -197,6 +198,8 @@ declare class FileManager {
197
198
  private static readonly PROMPTS_LOCK_FILE;
198
199
  private static readonly PROMPTS_DIR;
199
200
  private static readonly MATERIALIZED_DIR;
201
+ private static _projectRoot;
202
+ private static findProjectRoot;
200
203
  static getPromptsConfigPath(): string;
201
204
  static getPromptsLockPath(): string;
202
205
  static getPromptsDir(): string;
package/dist/index.js CHANGED
@@ -4,28 +4,28 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkD7UAKYVIjs = require('./chunk-D7UAKYVI.js');
7
+ var _chunkXHNJY5BPjs = require('./chunk-XHNJY5BP.js');
8
8
 
9
9
 
10
10
  var _chunkSNDTNU3Tjs = require('./chunk-SNDTNU3T.js');
11
11
 
12
12
 
13
- var _chunkVMZUN4EFjs = require('./chunk-VMZUN4EF.js');
13
+ var _chunkBP2WGNIVjs = require('./chunk-BP2WGNIV.js');
14
14
 
15
15
 
16
16
 
17
- var _chunkJ55AV2YWjs = require('./chunk-J55AV2YW.js');
17
+ var _chunkVWZCWYRHjs = require('./chunk-VWZCWYRH.js');
18
18
 
19
19
 
20
20
 
21
21
 
22
- var _chunk5HAVK64Qjs = require('./chunk-5HAVK64Q.js');
22
+ var _chunkB5K6DU6Gjs = require('./chunk-B5K6DU6G.js');
23
23
 
24
24
 
25
25
 
26
26
 
27
27
  var _chunkCKIZDPIJjs = require('./chunk-CKIZDPIJ.js');
28
- require('./chunk-36XAYVMC.js');
28
+ require('./chunk-WAAQLJ67.js');
29
29
  require('./chunk-AZHZ4NB4.js');
30
30
 
31
31
 
@@ -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 = _chunkVMZUN4EFjs.getLangWatchTracer.call(void 0, `${_chunk5HAVK64Qjs.LANGWATCH_SDK_NAME_CLIENT}.traces`, _chunk5HAVK64Qjs.LANGWATCH_SDK_VERSION);
49
+ var tracer = _chunkBP2WGNIVjs.getLangWatchTracer.call(void 0, `${_chunkB5K6DU6Gjs.LANGWATCH_SDK_NAME_CLIENT}.traces`, _chunkB5K6DU6Gjs.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 _chunkD7UAKYVIjs.createTracingProxy.call(void 0,
55
+ return _chunkXHNJY5BPjs.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 : _chunk5HAVK64Qjs.DEFAULT_ENDPOINT;
118
+ const endpoint = (_d = (_c = options.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : _chunkB5K6DU6Gjs.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, _chunkD7UAKYVIjs.PromptsFacade)(_chunkOHM7JUMRjs.__spreadValues.call(void 0, {
125
- promptsApiService: new (0, _chunkD7UAKYVIjs.PromptsApiService)(this.config),
126
- localPromptsService: new (0, _chunkD7UAKYVIjs.LocalPromptsService)()
124
+ this.prompts = new (0, _chunkXHNJY5BPjs.PromptsFacade)(_chunkOHM7JUMRjs.__spreadValues.call(void 0, {
125
+ promptsApiService: new (0, _chunkXHNJY5BPjs.PromptsApiService)(this.config),
126
+ localPromptsService: new (0, _chunkXHNJY5BPjs.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: _chunkD7UAKYVIjs.createLangWatchApiClient.call(void 0, apiKey, endpoint)
143
+ langwatchApiClient: _chunkXHNJY5BPjs.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 = _chunkJ55AV2YWjs.LangWatchTraceExporter; exports.attributes = _chunkCKIZDPIJjs.attributes_exports; exports.getLangWatchLogger = _chunkJ55AV2YWjs.getLangWatchLogger; exports.getLangWatchTracer = _chunkVMZUN4EFjs.getLangWatchTracer; exports.logger = logger;
160
+ exports.FilterableBatchSpanProcessor = _chunkSNDTNU3Tjs.FilterableBatchSpanProcessor; exports.LangWatch = LangWatch; exports.LangWatchExporter = _chunkVWZCWYRHjs.LangWatchTraceExporter; exports.attributes = _chunkCKIZDPIJjs.attributes_exports; exports.getLangWatchLogger = _chunkVWZCWYRHjs.getLangWatchLogger; exports.getLangWatchTracer = _chunkBP2WGNIVjs.getLangWatchTracer; exports.logger = logger;
161
161
  //# sourceMappingURL=index.js.map