langwatch 0.13.0 → 0.15.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/dist/{add-ZAPD2GBO.mjs → add-2IXDXEK6.mjs} +5 -5
  2. package/dist/{add-Z5UVUPCK.js → add-JT6DMMHI.js} +8 -8
  3. package/dist/{add-Z5UVUPCK.js.map → add-JT6DMMHI.js.map} +1 -1
  4. package/dist/chunk-2L4OQ2V4.js +191 -0
  5. package/dist/chunk-2L4OQ2V4.js.map +1 -0
  6. package/dist/{chunk-SZRV7E6P.mjs → chunk-3FGEJOXJ.mjs} +2 -2
  7. package/dist/{chunk-RM2VUAFL.js → chunk-3SRD4FTK.js} +11 -11
  8. package/dist/{chunk-RM2VUAFL.js.map → chunk-3SRD4FTK.js.map} +1 -1
  9. package/dist/{chunk-J4HK6XZR.mjs → chunk-62FCDILL.mjs} +5 -5
  10. package/dist/{chunk-OAKQ7UBU.mjs → chunk-AEBXFLKZ.mjs} +3 -3
  11. package/dist/chunk-CMWRDIEK.js +331 -0
  12. package/dist/chunk-CMWRDIEK.js.map +1 -0
  13. package/dist/chunk-FONDDULA.mjs +331 -0
  14. package/dist/chunk-FONDDULA.mjs.map +1 -0
  15. package/dist/{chunk-NPFWFQK6.js → chunk-HKAAWGL2.js} +2 -2
  16. package/dist/{chunk-NPFWFQK6.js.map → chunk-HKAAWGL2.js.map} +1 -1
  17. package/dist/{chunk-IIUI2XYW.mjs → chunk-KD5U3MP3.mjs} +11 -2
  18. package/dist/chunk-KD5U3MP3.mjs.map +1 -0
  19. package/dist/{chunk-DXBTJGCK.js → chunk-KRVLZYQ2.js} +10 -10
  20. package/dist/{chunk-DXBTJGCK.js.map → chunk-KRVLZYQ2.js.map} +1 -1
  21. package/dist/{chunk-4BNGSDYW.js → chunk-OFM5YRU7.js} +14 -14
  22. package/dist/{chunk-4BNGSDYW.js.map → chunk-OFM5YRU7.js.map} +1 -1
  23. package/dist/{chunk-ONXIZKC6.js → chunk-SHJZRXU7.js} +11 -2
  24. package/dist/chunk-SHJZRXU7.js.map +1 -0
  25. package/dist/chunk-ZSFUEQNQ.mjs +191 -0
  26. package/dist/chunk-ZSFUEQNQ.mjs.map +1 -0
  27. package/dist/{chunk-77XIPD42.mjs → chunk-ZWP3XAML.mjs} +2 -2
  28. package/dist/{chunk-77XIPD42.mjs.map → chunk-ZWP3XAML.mjs.map} +1 -1
  29. package/dist/cli/index.js +30 -6
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/cli/index.mjs +30 -6
  32. package/dist/cli/index.mjs.map +1 -1
  33. package/dist/{implementation-Ck58nRkT.d.mts → implementation-Dl15eRjo.d.mts} +1 -1
  34. package/dist/{implementation-Bnc8Aymq.d.ts → implementation-gLzM6qpI.d.ts} +1 -1
  35. package/dist/index.d.mts +31 -3
  36. package/dist/index.d.ts +31 -3
  37. package/dist/index.js +72 -18
  38. package/dist/index.js.map +1 -1
  39. package/dist/index.mjs +63 -9
  40. package/dist/index.mjs.map +1 -1
  41. package/dist/{list-LASBYRI4.js → list-DVHIOSYS.js} +8 -8
  42. package/dist/{list-LASBYRI4.js.map → list-DVHIOSYS.js.map} +1 -1
  43. package/dist/{list-XX4VPNJA.mjs → list-YTBLDLDR.mjs} +5 -5
  44. package/dist/{login-2VCZDSLE.js → login-5AK4ERR6.js} +3 -3
  45. package/dist/{login-2VCZDSLE.js.map → login-5AK4ERR6.js.map} +1 -1
  46. package/dist/{login-CZ2257SV.mjs → login-PEGONPR5.mjs} +2 -2
  47. package/dist/observability-sdk/index.d.mts +3 -3
  48. package/dist/observability-sdk/index.d.ts +3 -3
  49. package/dist/observability-sdk/index.js +4 -4
  50. package/dist/observability-sdk/index.js.map +1 -1
  51. package/dist/observability-sdk/index.mjs +8 -8
  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 +4 -4
  57. package/dist/observability-sdk/setup/node/index.mjs +3 -3
  58. package/dist/pull-5PYS2W6F.js +20 -0
  59. package/dist/pull-5PYS2W6F.js.map +1 -0
  60. package/dist/pull-LRX5WFAL.mjs +20 -0
  61. package/dist/pull-LRX5WFAL.mjs.map +1 -0
  62. package/dist/push-23BCXSEH.mjs +20 -0
  63. package/dist/push-23BCXSEH.mjs.map +1 -0
  64. package/dist/push-IK2OQDXQ.js +20 -0
  65. package/dist/push-IK2OQDXQ.js.map +1 -0
  66. package/dist/{remove-XWN3XTF5.js → remove-BFUQEPHI.js} +7 -7
  67. package/dist/{remove-XWN3XTF5.js.map → remove-BFUQEPHI.js.map} +1 -1
  68. package/dist/{remove-KESD7YHL.mjs → remove-M2PKTPUW.mjs} +5 -5
  69. package/dist/sync-EQFZ2JB3.js +123 -0
  70. package/dist/sync-EQFZ2JB3.js.map +1 -0
  71. package/dist/sync-K4SYFVKU.mjs +123 -0
  72. package/dist/sync-K4SYFVKU.mjs.map +1 -0
  73. package/dist/{types-5h2Im4pl.d.mts → types-ExKeJEM0.d.mts} +1179 -17
  74. package/dist/{types-fo-Ij9pl.d.ts → types-WRcnQUom.d.ts} +1179 -17
  75. package/package.json +1 -1
  76. package/dist/chunk-IIUI2XYW.mjs.map +0 -1
  77. package/dist/chunk-ONXIZKC6.js.map +0 -1
  78. package/dist/sync-IJ26JHEP.js +0 -413
  79. package/dist/sync-IJ26JHEP.js.map +0 -1
  80. package/dist/sync-SCVP7CHX.mjs +0 -413
  81. package/dist/sync-SCVP7CHX.mjs.map +0 -1
  82. /package/dist/{add-ZAPD2GBO.mjs.map → add-2IXDXEK6.mjs.map} +0 -0
  83. /package/dist/{chunk-SZRV7E6P.mjs.map → chunk-3FGEJOXJ.mjs.map} +0 -0
  84. /package/dist/{chunk-J4HK6XZR.mjs.map → chunk-62FCDILL.mjs.map} +0 -0
  85. /package/dist/{chunk-OAKQ7UBU.mjs.map → chunk-AEBXFLKZ.mjs.map} +0 -0
  86. /package/dist/{list-XX4VPNJA.mjs.map → list-YTBLDLDR.mjs.map} +0 -0
  87. /package/dist/{login-CZ2257SV.mjs.map → login-PEGONPR5.mjs.map} +0 -0
  88. /package/dist/{remove-KESD7YHL.mjs.map → remove-M2PKTPUW.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-ZAPD2GBO.mjs");
12
+ const { addCommand: addCommandImpl } = await import("../add-2IXDXEK6.mjs");
13
13
  return addCommandImpl(name, options);
14
14
  };
15
15
  var removeCommand = async (name) => {
16
- const { removeCommand: removeCommandImpl } = await import("../remove-KESD7YHL.mjs");
16
+ const { removeCommand: removeCommandImpl } = await import("../remove-M2PKTPUW.mjs");
17
17
  return removeCommandImpl(name);
18
18
  };
19
19
  var initCommand = async () => {
@@ -21,23 +21,31 @@ var initCommand = async () => {
21
21
  return initCommandImpl();
22
22
  };
23
23
  var loginCommand = async () => {
24
- const { loginCommand: loginCommandImpl } = await import("../login-CZ2257SV.mjs");
24
+ const { loginCommand: loginCommandImpl } = await import("../login-PEGONPR5.mjs");
25
25
  return loginCommandImpl();
26
26
  };
27
27
  var listCommand = async () => {
28
- const { listCommand: listCommandImpl } = await import("../list-XX4VPNJA.mjs");
28
+ const { listCommand: listCommandImpl } = await import("../list-YTBLDLDR.mjs");
29
29
  return listCommandImpl();
30
30
  };
31
31
  var syncCommand = async () => {
32
- const { syncCommand: syncCommandImpl } = await import("../sync-SCVP7CHX.mjs");
32
+ const { syncCommand: syncCommandImpl } = await import("../sync-K4SYFVKU.mjs");
33
33
  return syncCommandImpl();
34
34
  };
35
+ var pullCommand = async () => {
36
+ const { pullCommand: pullCommandImpl } = await import("../pull-LRX5WFAL.mjs");
37
+ return pullCommandImpl();
38
+ };
39
+ var pushCommand = async () => {
40
+ const { pushCommand: pushCommandImpl } = await import("../push-23BCXSEH.mjs");
41
+ return pushCommandImpl();
42
+ };
35
43
  var createCommand = async (name, options) => {
36
44
  const { createCommand: createCommandImpl } = await import("../create-KEEZMNMH.mjs");
37
45
  return createCommandImpl(name, options);
38
46
  };
39
47
  var program = new Command();
40
- program.name("langwatch").description("LangWatch CLI - The npm of prompts").version("0.13.0", "-v, --version", "Display the current version").configureHelp({
48
+ program.name("langwatch").description("LangWatch CLI - The npm of prompts").version("0.15.0", "-v, --version", "Display the current version").configureHelp({
41
49
  showGlobalOptions: true
42
50
  }).showHelpAfterError().showSuggestionAfterError();
43
51
  program.command("login").description("Login to LangWatch and save API key").action(async () => {
@@ -102,5 +110,21 @@ promptCmd.command("sync").description("Sync prompts - fetch remote and push loca
102
110
  process.exit(1);
103
111
  }
104
112
  });
113
+ promptCmd.command("pull").description("Pull remote prompts and materialize locally").action(async () => {
114
+ try {
115
+ await pullCommand();
116
+ } catch (error) {
117
+ console.error(`Error: ${error instanceof Error ? error.message : "Unknown error"}`);
118
+ process.exit(1);
119
+ }
120
+ });
121
+ promptCmd.command("push").description("Push local prompts to the server").action(async () => {
122
+ try {
123
+ await pushCommand();
124
+ } catch (error) {
125
+ console.error(`Error: ${error instanceof Error ? error.message : "Unknown error"}`);
126
+ process.exit(1);
127
+ }
128
+ });
105
129
  program.parse(process.argv);
106
130
  //# sourceMappingURL=index.mjs.map
@@ -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\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":";;;;;;;AAGA,SAAS,cAAc;AAGvB,SAAS,eAAe;AAFxB,OAAO;AAQP,IAAM,aAAa,OAAO,MAAc,YAAqE;AAC3G,QAAM,EAAE,YAAY,eAAe,IAAI,MAAM,OAAO,qBAAmB;AACvE,SAAO,eAAe,MAAM,OAAO;AACrC;AAEA,IAAM,gBAAgB,OAAO,SAAgC;AAC3D,QAAM,EAAE,eAAe,kBAAkB,IAAI,MAAM,OAAO,wBAAsB;AAChF,SAAO,kBAAkB,IAAI;AAC/B;AAEA,IAAM,cAAc,YAA2B;AAC7C,QAAM,EAAE,aAAa,gBAAgB,IAAI,MAAM,OAAO,sBAAoB;AAC1E,SAAO,gBAAgB;AACzB;AAEA,IAAM,eAAe,YAA2B;AAC9C,QAAM,EAAE,cAAc,iBAAiB,IAAI,MAAM,OAAO,uBAAqB;AAC7E,SAAO,iBAAiB;AAC1B;AAEA,IAAM,cAAc,YAA2B;AAC7C,QAAM,EAAE,aAAa,gBAAgB,IAAI,MAAM,OAAO,sBAAoB;AAC1E,SAAO,gBAAgB;AACzB;AAEA,IAAM,cAAc,YAA2B;AAC7C,QAAM,EAAE,aAAa,gBAAgB,IAAI,MAAM,OAAO,sBAAoB;AAC1E,SAAO,gBAAgB;AACzB;AAEA,IAAM,gBAAgB,OAAO,MAAc,YAAoD;AAC7F,QAAM,EAAE,eAAe,kBAAkB,IAAI,MAAM,OAAO,wBAAsB;AAChF,SAAO,kBAAkB,MAAM,OAAO;AACxC;AAEA,IAAM,UAAU,IAAI,QAAQ;AAE5B,QACG,KAAK,WAAW,EAChB,YAAY,oCAAoC,EAChD,QAAQ,UAAiB,iBAAiB,6BAA6B,EACvE,cAAc;AAAA,EACb,mBAAmB;AACrB,CAAC,EACA,mBAAmB,EACnB,yBAAyB;AAG5B,QACG,QAAQ,OAAO,EACf,YAAY,qCAAqC,EACjD,OAAO,YAAY;AAClB,MAAI;AACF,UAAM,aAAa;AAAA,EACrB,SAAS,OAAO;AACd,YAAQ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,eAAe,EAAE;AAClF,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;AAGH,IAAM,YAAY,QACf,QAAQ,QAAQ,EAChB,YAAY,4BAA4B;AAE3C,UACG,QAAQ,MAAM,EACd,YAAY,kCAAkC,EAC9C,OAAO,YAAY;AAClB,MAAI;AACF,UAAM,YAAY;AAAA,EACpB,SAAS,OAAO;AACd,YAAQ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,eAAe,EAAE;AAClF,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;AAEH,UACG,QAAQ,eAAe,EACvB,YAAY,oDAAoD,EAChE,OAAO,OAAO,SAAiB;AAC9B,MAAI;AACF,UAAM,cAAc,MAAM,CAAC,CAAC;AAAA,EAC9B,SAAS,OAAO;AACd,YAAQ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,eAAe,EAAE;AAClF,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;AAEH,UACG,QAAQ,wBAAwB,EAChC,YAAY,0EAA0E,EACtF,OAAO,OAAO,MAAc,cAAuB;AAClD,MAAI;AACF,QAAI,WAAW;AACb,YAAM,WAAW,MAAM,EAAE,UAAU,CAAC;AAAA,IACtC,OAAO;AACL,YAAM,EAAE,MAAM,QAAQ,IAAI,gBAAgB,IAAI;AAC9C,YAAM,WAAW,MAAM,EAAE,QAAQ,CAAC;AAAA,IACpC;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,eAAe,EAAE;AAClF,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;AAEH,UACG,QAAQ,eAAe,EACvB,YAAY,4BAA4B,EACxC,OAAO,OAAO,SAAiB;AAC9B,MAAI;AACF,UAAM,cAAc,IAAI;AAAA,EAC1B,SAAS,OAAO;AACd,YAAQ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,eAAe,EAAE;AAClF,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;AAEH,UACG,QAAQ,MAAM,EACd,YAAY,0CAA0C,EACtD,OAAO,YAAY;AAClB,MAAI;AACF,UAAM,YAAY;AAAA,EACpB,SAAS,OAAO;AACd,YAAQ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,eAAe,EAAE;AAClF,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;AAEH,UACG,QAAQ,MAAM,EACd,YAAY,4CAA4C,EACxD,OAAO,YAAY;AAClB,MAAI;AACF,UAAM,YAAY;AAAA,EACpB,SAAS,OAAO;AACd,YAAQ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,eAAe,EAAE;AAClF,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;AAEH,QAAQ,MAAM,QAAQ,IAAI;","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 pullCommand = async (): Promise<void> => {\n const { pullCommand: pullCommandImpl } = await import(\"./commands/pull.js\");\n return pullCommandImpl();\n};\n\nconst pushCommand = async (): Promise<void> => {\n const { pushCommand: pushCommandImpl } = await import(\"./commands/push.js\");\n return pushCommandImpl();\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\npromptCmd\n .command(\"pull\")\n .description(\"Pull remote prompts and materialize locally\")\n .action(async () => {\n try {\n await pullCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"push\")\n .description(\"Push local prompts to the server\")\n .action(async () => {\n try {\n await pushCommand();\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":[]}
@@ -4,7 +4,7 @@ import { ExportResult } from '@opentelemetry/core';
4
4
  import { Logger, LogRecord, LoggerProvider } from '@opentelemetry/api-logs';
5
5
  import { a as SemConvLogRecordAttributes, S as SemConvAttributes } from './types-DRiQaKFG.mjs';
6
6
  import { TracerProvider } from '@opentelemetry/api';
7
- import { a as LangWatchTracer } from './types-5h2Im4pl.mjs';
7
+ import { a as LangWatchTracer } from './types-ExKeJEM0.mjs';
8
8
 
9
9
  /**
10
10
  * Filterable Batch Span Exporter for OpenTelemetry
@@ -4,7 +4,7 @@ import { ExportResult } from '@opentelemetry/core';
4
4
  import { Logger, LogRecord, LoggerProvider } from '@opentelemetry/api-logs';
5
5
  import { a as SemConvLogRecordAttributes, S as SemConvAttributes } from './types-DRiQaKFG.js';
6
6
  import { TracerProvider } from '@opentelemetry/api';
7
- import { a as LangWatchTracer } from './types-fo-Ij9pl.js';
7
+ import { a as LangWatchTracer } from './types-WRcnQUom.js';
8
8
 
9
9
  /**
10
10
  * Filterable Batch Span Exporter for OpenTelemetry
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
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-Ck58nRkT.mjs';
3
- import { p as paths, P as PromptResponse, g as CreatePromptBody, U as UpdatePromptBody, h as PromptData, i as Prompt, F as FetchPolicy, L as LangWatchSpan } from './types-5h2Im4pl.mjs';
2
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation-Dl15eRjo.mjs';
3
+ import { p as paths, P as PromptResponse, g as CreatePromptBody, U as UpdatePromptBody, h as PromptData, i as Prompt, F as FetchPolicy, L as LangWatchSpan } from './types-ExKeJEM0.mjs';
4
4
  import openApiCreateClient from 'openapi-fetch';
5
5
  import { z } from 'zod';
6
6
  export { l as attributes } from './types-DRiQaKFG.mjs';
@@ -1228,9 +1228,37 @@ declare class LangWatch {
1228
1228
  get apiClient(): LangwatchApiClient;
1229
1229
  }
1230
1230
 
1231
+ type EvaluatorResponse = NonNullable<paths["/api/evaluators"]["get"]["responses"]["200"]["content"]["application/json"]>[number];
1232
+ type EvaluatorField = EvaluatorResponse["fields"][number];
1233
+
1234
+ /**
1235
+ * Service for retrieving evaluator resources via the LangWatch API.
1236
+ *
1237
+ * Provides read-only access to project evaluators with computed fields.
1238
+ */
1239
+ declare class EvaluatorsApiService {
1240
+ private readonly apiClient;
1241
+ constructor(config?: Pick<InternalConfig, "langwatchApiClient">);
1242
+ private handleApiError;
1243
+ /**
1244
+ * Fetches all evaluators for the project.
1245
+ */
1246
+ getAll(): Promise<EvaluatorResponse[]>;
1247
+ /**
1248
+ * Fetches a single evaluator by its ID or slug.
1249
+ */
1250
+ get(idOrSlug: string): Promise<EvaluatorResponse>;
1251
+ }
1252
+
1253
+ declare class EvaluatorsApiError extends Error {
1254
+ readonly operation: string;
1255
+ readonly originalError?: unknown | undefined;
1256
+ constructor(message: string, operation: string, originalError?: unknown | undefined);
1257
+ }
1258
+
1231
1259
  declare const logger: {
1232
1260
  ConsoleLogger: typeof ConsoleLogger;
1233
1261
  NoOpLogger: typeof NoOpLogger;
1234
1262
  };
1235
1263
 
1236
- export { type EvaluateOptions, type EvaluationCost, EvaluationError, type EvaluationResult, type EvaluationStatus, EvaluationsApiError, EvaluationsFacade, EvaluatorCallError, EvaluatorError, EvaluatorNotFoundError, Experiment, ExperimentApiError, ExperimentError, type EvaluateOptions$1 as ExperimentEvaluateOptions, type EvaluationResult$1 as ExperimentEvaluationResult, type EvaluationStatus$1 as ExperimentEvaluationStatus, ExperimentInitError, type ExperimentInitOptions, ExperimentsFacade, FetchPolicy, type GetPromptOptions, LangWatch, type LogOptions, type RunCallback, type RunContext, type RunOptions, type TargetInfo, type TargetMetadata, TargetMetadataConflictError, type TargetType, logger };
1264
+ export { type EvaluateOptions, type EvaluationCost, EvaluationError, type EvaluationResult, type EvaluationStatus, EvaluationsApiError, EvaluationsFacade, EvaluatorCallError, EvaluatorError, type EvaluatorField, EvaluatorNotFoundError, type EvaluatorResponse, EvaluatorsApiError, EvaluatorsApiService, Experiment, ExperimentApiError, ExperimentError, type EvaluateOptions$1 as ExperimentEvaluateOptions, type EvaluationResult$1 as ExperimentEvaluationResult, type EvaluationStatus$1 as ExperimentEvaluationStatus, ExperimentInitError, type ExperimentInitOptions, ExperimentsFacade, FetchPolicy, type GetPromptOptions, LangWatch, type LogOptions, type RunCallback, type RunContext, type RunOptions, type TargetInfo, type TargetMetadata, TargetMetadataConflictError, type TargetType, logger };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
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-Bnc8Aymq.js';
3
- import { p as paths, P as PromptResponse, g as CreatePromptBody, U as UpdatePromptBody, h as PromptData, i as Prompt, F as FetchPolicy, L as LangWatchSpan } from './types-fo-Ij9pl.js';
2
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation-gLzM6qpI.js';
3
+ import { p as paths, P as PromptResponse, g as CreatePromptBody, U as UpdatePromptBody, h as PromptData, i as Prompt, F as FetchPolicy, L as LangWatchSpan } from './types-WRcnQUom.js';
4
4
  import openApiCreateClient from 'openapi-fetch';
5
5
  import { z } from 'zod';
6
6
  export { l as attributes } from './types-DRiQaKFG.js';
@@ -1228,9 +1228,37 @@ declare class LangWatch {
1228
1228
  get apiClient(): LangwatchApiClient;
1229
1229
  }
1230
1230
 
1231
+ type EvaluatorResponse = NonNullable<paths["/api/evaluators"]["get"]["responses"]["200"]["content"]["application/json"]>[number];
1232
+ type EvaluatorField = EvaluatorResponse["fields"][number];
1233
+
1234
+ /**
1235
+ * Service for retrieving evaluator resources via the LangWatch API.
1236
+ *
1237
+ * Provides read-only access to project evaluators with computed fields.
1238
+ */
1239
+ declare class EvaluatorsApiService {
1240
+ private readonly apiClient;
1241
+ constructor(config?: Pick<InternalConfig, "langwatchApiClient">);
1242
+ private handleApiError;
1243
+ /**
1244
+ * Fetches all evaluators for the project.
1245
+ */
1246
+ getAll(): Promise<EvaluatorResponse[]>;
1247
+ /**
1248
+ * Fetches a single evaluator by its ID or slug.
1249
+ */
1250
+ get(idOrSlug: string): Promise<EvaluatorResponse>;
1251
+ }
1252
+
1253
+ declare class EvaluatorsApiError extends Error {
1254
+ readonly operation: string;
1255
+ readonly originalError?: unknown | undefined;
1256
+ constructor(message: string, operation: string, originalError?: unknown | undefined);
1257
+ }
1258
+
1231
1259
  declare const logger: {
1232
1260
  ConsoleLogger: typeof ConsoleLogger;
1233
1261
  NoOpLogger: typeof NoOpLogger;
1234
1262
  };
1235
1263
 
1236
- export { type EvaluateOptions, type EvaluationCost, EvaluationError, type EvaluationResult, type EvaluationStatus, EvaluationsApiError, EvaluationsFacade, EvaluatorCallError, EvaluatorError, EvaluatorNotFoundError, Experiment, ExperimentApiError, ExperimentError, type EvaluateOptions$1 as ExperimentEvaluateOptions, type EvaluationResult$1 as ExperimentEvaluationResult, type EvaluationStatus$1 as ExperimentEvaluationStatus, ExperimentInitError, type ExperimentInitOptions, ExperimentsFacade, FetchPolicy, type GetPromptOptions, LangWatch, type LogOptions, type RunCallback, type RunContext, type RunOptions, type TargetInfo, type TargetMetadata, TargetMetadataConflictError, type TargetType, logger };
1264
+ export { type EvaluateOptions, type EvaluationCost, EvaluationError, type EvaluationResult, type EvaluationStatus, EvaluationsApiError, EvaluationsFacade, EvaluatorCallError, EvaluatorError, type EvaluatorField, EvaluatorNotFoundError, type EvaluatorResponse, EvaluatorsApiError, EvaluatorsApiService, Experiment, ExperimentApiError, ExperimentError, type EvaluateOptions$1 as ExperimentEvaluateOptions, type EvaluationResult$1 as ExperimentEvaluationResult, type EvaluationStatus$1 as ExperimentEvaluationStatus, ExperimentInitError, type ExperimentInitOptions, ExperimentsFacade, FetchPolicy, type GetPromptOptions, LangWatch, type LogOptions, type RunCallback, type RunContext, type RunOptions, type TargetInfo, type TargetMetadata, TargetMetadataConflictError, type TargetType, logger };
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkRM2VUAFLjs = require('./chunk-RM2VUAFL.js');
3
+ var _chunk3SRD4FTKjs = require('./chunk-3SRD4FTK.js');
4
4
 
5
5
 
6
6
 
@@ -8,23 +8,23 @@ var _chunkRM2VUAFLjs = require('./chunk-RM2VUAFL.js');
8
8
 
9
9
 
10
10
 
11
- var _chunkDXBTJGCKjs = require('./chunk-DXBTJGCK.js');
11
+ var _chunkKRVLZYQ2js = require('./chunk-KRVLZYQ2.js');
12
12
 
13
13
 
14
14
  var _chunkASTAIRXGjs = require('./chunk-ASTAIRXG.js');
15
15
 
16
16
 
17
17
 
18
- var _chunk4BNGSDYWjs = require('./chunk-4BNGSDYW.js');
18
+ var _chunkSHJZRXU7js = require('./chunk-SHJZRXU7.js');
19
19
 
20
20
 
21
21
 
22
+ var _chunkOFM5YRU7js = require('./chunk-OFM5YRU7.js');
22
23
 
23
- var _chunkNPFWFQK6js = require('./chunk-NPFWFQK6.js');
24
24
 
25
25
 
26
26
 
27
- var _chunkONXIZKC6js = require('./chunk-ONXIZKC6.js');
27
+ var _chunkHKAAWGL2js = require('./chunk-HKAAWGL2.js');
28
28
 
29
29
 
30
30
 
@@ -355,7 +355,7 @@ var Experiment = class _Experiment {
355
355
  * Initialize an evaluation session
356
356
  */
357
357
  static async init(name, options) {
358
- _chunkRM2VUAFLjs.ensureSetup.call(void 0, );
358
+ _chunk3SRD4FTKjs.ensureSetup.call(void 0, );
359
359
  const experiment = new _Experiment(name, options);
360
360
  await experiment.initialize();
361
361
  return experiment;
@@ -392,7 +392,7 @@ var Experiment = class _Experiment {
392
392
  const data = await response.json();
393
393
  this.experimentSlug = data.slug;
394
394
  const encodedRunId = encodeURIComponent(this.runId);
395
- console.log(`Follow results at: ${this.endpoint}${data.path}?runId=${encodedRunId}`);
395
+ console.log(`Follow results at: ${this.endpoint.replace(/\/$/, "")}${data.path}?runId=${encodedRunId}`);
396
396
  this.initialized = true;
397
397
  } catch (error) {
398
398
  if (error instanceof ExperimentInitError) {
@@ -486,7 +486,7 @@ var Experiment = class _Experiment {
486
486
  }
487
487
  },
488
488
  async (otelSpan) => {
489
- const span = _chunkONXIZKC6js.createLangWatchSpan.call(void 0, otelSpan);
489
+ const span = _chunkSHJZRXU7js.createLangWatchSpan.call(void 0, otelSpan);
490
490
  const spanContext = otelSpan.spanContext();
491
491
  const traceId = spanContext.traceId;
492
492
  this.currentTraceId = traceId;
@@ -734,7 +734,7 @@ var Experiment = class _Experiment {
734
734
  },
735
735
  _api.ROOT_CONTEXT,
736
736
  async (otelSpan) => {
737
- const span = _chunkONXIZKC6js.createLangWatchSpan.call(void 0, otelSpan);
737
+ const span = _chunkSHJZRXU7js.createLangWatchSpan.call(void 0, otelSpan);
738
738
  const spanContext = otelSpan.spanContext();
739
739
  const rawTraceId = spanContext.traceId;
740
740
  spanId = spanContext.spanId;
@@ -1347,7 +1347,7 @@ var EvaluationsFacade = class {
1347
1347
  },
1348
1348
  _api.context.active()
1349
1349
  );
1350
- const langwatchSpan = _chunkONXIZKC6js.createLangWatchSpan.call(void 0, otelSpan);
1350
+ const langwatchSpan = _chunkSHJZRXU7js.createLangWatchSpan.call(void 0, otelSpan);
1351
1351
  langwatchSpan.setType(spanType);
1352
1352
  langwatchSpan.setInput(_chunkOHM7JUMRjs.__spreadValues.call(void 0, {
1353
1353
  data
@@ -1448,13 +1448,13 @@ var TracesError = class extends Error {
1448
1448
  };
1449
1449
 
1450
1450
  // src/client-sdk/services/traces/tracing/tracer.ts
1451
- var tracer = _chunkONXIZKC6js.getLangWatchTracer.call(void 0, `${_chunkNPFWFQK6js.LANGWATCH_SDK_NAME_CLIENT}.traces`, _chunkNPFWFQK6js.LANGWATCH_SDK_VERSION);
1451
+ var tracer = _chunkSHJZRXU7js.getLangWatchTracer.call(void 0, `${_chunkHKAAWGL2js.LANGWATCH_SDK_NAME_CLIENT}.traces`, _chunkHKAAWGL2js.LANGWATCH_SDK_VERSION);
1452
1452
 
1453
1453
  // src/client-sdk/services/traces/service.ts
1454
1454
  var TracesService = class {
1455
1455
  constructor(config) {
1456
1456
  this.config = config;
1457
- return _chunkDXBTJGCKjs.createTracingProxy.call(void 0,
1457
+ return _chunkKRVLZYQ2js.createTracingProxy.call(void 0,
1458
1458
  this,
1459
1459
  tracer
1460
1460
  );
@@ -1517,15 +1517,15 @@ var LangWatch = class {
1517
1517
  _chunkOHM7JUMRjs.__privateAdd.call(void 0, this, _LangWatch_instances);
1518
1518
  var _a, _b, _c, _d;
1519
1519
  const apiKey = (_b = (_a = options.apiKey) != null ? _a : process.env.LANGWATCH_API_KEY) != null ? _b : "";
1520
- const endpoint = (_d = (_c = options.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : _chunkNPFWFQK6js.DEFAULT_ENDPOINT;
1520
+ const endpoint = (_d = (_c = options.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : _chunkHKAAWGL2js.DEFAULT_ENDPOINT;
1521
1521
  this.config = _chunkOHM7JUMRjs.__privateMethod.call(void 0, this, _LangWatch_instances, createInternalConfig_fn).call(this, {
1522
1522
  apiKey,
1523
1523
  endpoint,
1524
1524
  options: options.options
1525
1525
  });
1526
- this.prompts = new (0, _chunkDXBTJGCKjs.PromptsFacade)(_chunkOHM7JUMRjs.__spreadValues.call(void 0, {
1527
- promptsApiService: new (0, _chunkDXBTJGCKjs.PromptsApiService)(this.config),
1528
- localPromptsService: new (0, _chunkDXBTJGCKjs.LocalPromptsService)()
1526
+ this.prompts = new (0, _chunkKRVLZYQ2js.PromptsFacade)(_chunkOHM7JUMRjs.__spreadValues.call(void 0, {
1527
+ promptsApiService: new (0, _chunkKRVLZYQ2js.PromptsApiService)(this.config),
1528
+ localPromptsService: new (0, _chunkKRVLZYQ2js.LocalPromptsService)()
1529
1529
  }, this.config));
1530
1530
  this.traces = new TracesFacade(this.config);
1531
1531
  this.experiments = new ExperimentsFacade({
@@ -1557,12 +1557,64 @@ createInternalConfig_fn = function({
1557
1557
  var _a;
1558
1558
  return {
1559
1559
  logger: (_a = options == null ? void 0 : options.logger) != null ? _a : new (0, _chunk5MQQRSVMjs.NoOpLogger)(),
1560
- langwatchApiClient: _chunkDXBTJGCKjs.createLangWatchApiClient.call(void 0, apiKey, endpoint),
1560
+ langwatchApiClient: _chunkKRVLZYQ2js.createLangWatchApiClient.call(void 0, apiKey, endpoint),
1561
1561
  endpoint,
1562
1562
  apiKey
1563
1563
  };
1564
1564
  };
1565
1565
 
1566
+ // src/client-sdk/services/evaluators/errors.ts
1567
+ var EvaluatorsApiError = class extends Error {
1568
+ constructor(message, operation, originalError) {
1569
+ super(message);
1570
+ this.operation = operation;
1571
+ this.originalError = originalError;
1572
+ this.name = "EvaluatorsApiError";
1573
+ }
1574
+ };
1575
+
1576
+ // src/client-sdk/services/evaluators/evaluators-api.service.ts
1577
+ var EvaluatorsApiService = class {
1578
+ constructor(config) {
1579
+ var _a;
1580
+ this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunkKRVLZYQ2js.createLangWatchApiClient.call(void 0, );
1581
+ }
1582
+ handleApiError(operation, error) {
1583
+ var _a;
1584
+ const errorMessage = typeof error === "string" ? error : error != null && typeof error === "object" && "error" in error && error.error != null ? typeof error.error === "string" ? error.error : (_a = error.error.message) != null ? _a : JSON.stringify(error.error) : error instanceof Error ? error.message : "Unknown error occurred";
1585
+ throw new EvaluatorsApiError(
1586
+ `Failed to ${operation}: ${errorMessage}`,
1587
+ operation,
1588
+ error
1589
+ );
1590
+ }
1591
+ /**
1592
+ * Fetches all evaluators for the project.
1593
+ */
1594
+ async getAll() {
1595
+ const { data, error } = await this.apiClient.GET("/api/evaluators");
1596
+ if (error) this.handleApiError("fetch all evaluators", error);
1597
+ return data;
1598
+ }
1599
+ /**
1600
+ * Fetches a single evaluator by its ID or slug.
1601
+ */
1602
+ async get(idOrSlug) {
1603
+ const { data, error } = await this.apiClient.GET(
1604
+ "/api/evaluators/{idOrSlug}",
1605
+ {
1606
+ params: { path: { idOrSlug } }
1607
+ }
1608
+ );
1609
+ if (error)
1610
+ this.handleApiError(
1611
+ `fetch evaluator with ID or slug "${idOrSlug}"`,
1612
+ error
1613
+ );
1614
+ return data;
1615
+ }
1616
+ };
1617
+
1566
1618
  // src/index.ts
1567
1619
  var logger = {
1568
1620
  ConsoleLogger: _chunk5MQQRSVMjs.ConsoleLogger,
@@ -1589,5 +1641,7 @@ var logger = {
1589
1641
 
1590
1642
 
1591
1643
 
1592
- exports.EvaluationError = EvaluationError; exports.EvaluationsApiError = EvaluationsApiError; exports.EvaluationsFacade = EvaluationsFacade; exports.EvaluatorCallError = EvaluatorCallError; exports.EvaluatorError = EvaluatorError; exports.EvaluatorNotFoundError = EvaluatorNotFoundError; exports.Experiment = Experiment; exports.ExperimentApiError = ExperimentApiError; exports.ExperimentError = ExperimentError; exports.ExperimentInitError = ExperimentInitError; exports.ExperimentsFacade = ExperimentsFacade; exports.FetchPolicy = _chunkDXBTJGCKjs.FetchPolicy; exports.FilterableBatchSpanProcessor = _chunkASTAIRXGjs.FilterableBatchSpanProcessor; exports.LangWatch = LangWatch; exports.LangWatchExporter = _chunk4BNGSDYWjs.LangWatchTraceExporter; exports.TargetMetadataConflictError = TargetMetadataConflictError; exports.attributes = _chunk5MQQRSVMjs.attributes_exports; exports.getLangWatchLogger = _chunk4BNGSDYWjs.getLangWatchLogger; exports.getLangWatchTracer = _chunkONXIZKC6js.getLangWatchTracer; exports.logger = logger;
1644
+
1645
+
1646
+ exports.EvaluationError = EvaluationError; exports.EvaluationsApiError = EvaluationsApiError; exports.EvaluationsFacade = EvaluationsFacade; exports.EvaluatorCallError = EvaluatorCallError; exports.EvaluatorError = EvaluatorError; exports.EvaluatorNotFoundError = EvaluatorNotFoundError; exports.EvaluatorsApiError = EvaluatorsApiError; exports.EvaluatorsApiService = EvaluatorsApiService; exports.Experiment = Experiment; exports.ExperimentApiError = ExperimentApiError; exports.ExperimentError = ExperimentError; exports.ExperimentInitError = ExperimentInitError; exports.ExperimentsFacade = ExperimentsFacade; exports.FetchPolicy = _chunkKRVLZYQ2js.FetchPolicy; exports.FilterableBatchSpanProcessor = _chunkASTAIRXGjs.FilterableBatchSpanProcessor; exports.LangWatch = LangWatch; exports.LangWatchExporter = _chunkOFM5YRU7js.LangWatchTraceExporter; exports.TargetMetadataConflictError = TargetMetadataConflictError; exports.attributes = _chunk5MQQRSVMjs.attributes_exports; exports.getLangWatchLogger = _chunkOFM5YRU7js.getLangWatchLogger; exports.getLangWatchTracer = _chunkSHJZRXU7js.getLangWatchTracer; exports.logger = logger;
1593
1647
  //# sourceMappingURL=index.js.map