langwatch 0.16.1 → 0.18.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 (103) hide show
  1. package/dist/{add-H5KAG6WK.mjs → add-5RVW7RGD.mjs} +7 -7
  2. package/dist/{add-VERZBAAU.js → add-MJE7G2BM.js} +10 -10
  3. package/dist/{add-VERZBAAU.js.map → add-MJE7G2BM.js.map} +1 -1
  4. package/dist/{chunk-LOVNOYYC.mjs → chunk-3NPLA2MU.mjs} +2 -2
  5. package/dist/{chunk-ZSALL3F3.js → chunk-5LYWRKDF.js} +5 -2
  6. package/dist/chunk-5LYWRKDF.js.map +1 -0
  7. package/dist/{chunk-RC5UD4BW.mjs → chunk-AXCVJYSK.mjs} +12 -19
  8. package/dist/chunk-AXCVJYSK.mjs.map +1 -0
  9. package/dist/{chunk-BJFZUNQP.js → chunk-DKEWJFMO.js} +17 -17
  10. package/dist/{chunk-BJFZUNQP.js.map → chunk-DKEWJFMO.js.map} +1 -1
  11. package/dist/{chunk-5FBGDIHX.js → chunk-EHWKVO46.js} +31 -34
  12. package/dist/chunk-EHWKVO46.js.map +1 -0
  13. package/dist/{chunk-KJFN6D3P.mjs → chunk-FMYG6IOZ.mjs} +2 -2
  14. package/dist/{chunk-MGHXC55F.mjs → chunk-JVIQJFUE.mjs} +4 -1
  15. package/dist/{chunk-C2X4KWDK.js → chunk-KIFN3ONO.js} +40 -25
  16. package/dist/chunk-KIFN3ONO.js.map +1 -0
  17. package/dist/{chunk-L5UUBING.mjs → chunk-MRQNP55T.mjs} +16 -19
  18. package/dist/chunk-MRQNP55T.mjs.map +1 -0
  19. package/dist/{chunk-BKQY5RVH.mjs → chunk-NKGYK3B7.mjs} +33 -18
  20. package/dist/chunk-NKGYK3B7.mjs.map +1 -0
  21. package/dist/{chunk-IRGFB3BV.js → chunk-ODBP2KFB.js} +11 -11
  22. package/dist/{chunk-IRGFB3BV.js.map → chunk-ODBP2KFB.js.map} +1 -1
  23. package/dist/{chunk-CQ6LE6V4.js → chunk-QNT5P6VV.js} +2 -2
  24. package/dist/{chunk-CQ6LE6V4.js.map → chunk-QNT5P6VV.js.map} +1 -1
  25. package/dist/{chunk-ZJDIXB42.js → chunk-RPCEDRSR.js} +2 -2
  26. package/dist/{chunk-ZJDIXB42.js.map → chunk-RPCEDRSR.js.map} +1 -1
  27. package/dist/{chunk-PK2IYKBI.js → chunk-SAEA37H5.js} +14 -21
  28. package/dist/chunk-SAEA37H5.js.map +1 -0
  29. package/dist/{chunk-RYZHOFQM.mjs → chunk-WAHZXF7I.mjs} +2 -2
  30. package/dist/{chunk-SVJQD7JQ.mjs → chunk-WQ7AKXY7.mjs} +2 -2
  31. package/dist/chunk-WQ7AKXY7.mjs.map +1 -0
  32. package/dist/{chunk-L4INM3N7.mjs → chunk-WSSWTQIB.mjs} +3 -3
  33. package/dist/{chunk-BNFRYHOP.js → chunk-XEYCRZ64.js} +4 -4
  34. package/dist/{chunk-BNFRYHOP.js.map → chunk-XEYCRZ64.js.map} +1 -1
  35. package/dist/cli/index.js +8 -8
  36. package/dist/cli/index.mjs +8 -8
  37. package/dist/{implementation-ubgXW-8T.d.ts → implementation--OaaaMLb.d.ts} +3 -3
  38. package/dist/{implementation-CjoYqq-W.d.mts → implementation-CoqzgwCU.d.mts} +3 -3
  39. package/dist/index.d.mts +3 -3
  40. package/dist/index.d.ts +3 -3
  41. package/dist/index.js +32 -25
  42. package/dist/index.js.map +1 -1
  43. package/dist/index.mjs +16 -9
  44. package/dist/index.mjs.map +1 -1
  45. package/dist/{list-QV73ABKP.mjs → list-IGP275AO.mjs} +7 -7
  46. package/dist/{list-6N352JKT.js → list-QMPURSWH.js} +10 -10
  47. package/dist/{list-6N352JKT.js.map → list-QMPURSWH.js.map} +1 -1
  48. package/dist/{login-PHAU2VBJ.mjs → login-EBPGM5GC.mjs} +2 -2
  49. package/dist/{login-7MN6QJCA.js → login-ZKVIVJC6.js} +3 -3
  50. package/dist/{login-7MN6QJCA.js.map → login-ZKVIVJC6.js.map} +1 -1
  51. package/dist/observability-sdk/index.d.mts +4 -4
  52. package/dist/observability-sdk/index.d.ts +4 -4
  53. package/dist/observability-sdk/index.js +6 -6
  54. package/dist/observability-sdk/index.mjs +5 -5
  55. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +2 -2
  56. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +2 -2
  57. package/dist/observability-sdk/instrumentation/langchain/index.js +16 -16
  58. package/dist/observability-sdk/instrumentation/langchain/index.mjs +2 -2
  59. package/dist/observability-sdk/setup/node/index.d.mts +17 -9
  60. package/dist/observability-sdk/setup/node/index.d.ts +17 -9
  61. package/dist/observability-sdk/setup/node/index.js +5 -5
  62. package/dist/observability-sdk/setup/node/index.mjs +4 -4
  63. package/dist/pull-22TPEMFM.js +20 -0
  64. package/dist/{pull-M4K3RJK4.js.map → pull-22TPEMFM.js.map} +1 -1
  65. package/dist/pull-3NWDN7CX.mjs +20 -0
  66. package/dist/push-3CMG3MTX.mjs +20 -0
  67. package/dist/push-7WZUQYC3.js +20 -0
  68. package/dist/{push-RBMMCBJV.js.map → push-7WZUQYC3.js.map} +1 -1
  69. package/dist/{remove-7FLHBPAH.js → remove-HPZGTSOK.js} +9 -9
  70. package/dist/{remove-7FLHBPAH.js.map → remove-HPZGTSOK.js.map} +1 -1
  71. package/dist/{remove-I3MLOKDK.mjs → remove-QJJWZ2ZA.mjs} +7 -7
  72. package/dist/{sync-2CIUEV2B.js → sync-67UMHLSY.js} +13 -13
  73. package/dist/{sync-2CIUEV2B.js.map → sync-67UMHLSY.js.map} +1 -1
  74. package/dist/{sync-HKGOBRN3.mjs → sync-BNPR6W4G.mjs} +9 -9
  75. package/dist/{types-DobBt1Tk.d.ts → types-AByjs5T0.d.ts} +3 -3
  76. package/dist/{types-EZcXXg5C.d.mts → types-DWVQcIaM.d.mts} +3 -3
  77. package/dist/{types-CCH1oIsx.d.mts → types-DYLY4SyT.d.mts} +1 -1
  78. package/dist/{types-CCH1oIsx.d.ts → types-DYLY4SyT.d.ts} +1 -1
  79. package/package.json +36 -6
  80. package/dist/chunk-5FBGDIHX.js.map +0 -1
  81. package/dist/chunk-BKQY5RVH.mjs.map +0 -1
  82. package/dist/chunk-C2X4KWDK.js.map +0 -1
  83. package/dist/chunk-L5UUBING.mjs.map +0 -1
  84. package/dist/chunk-PK2IYKBI.js.map +0 -1
  85. package/dist/chunk-RC5UD4BW.mjs.map +0 -1
  86. package/dist/chunk-SVJQD7JQ.mjs.map +0 -1
  87. package/dist/chunk-ZSALL3F3.js.map +0 -1
  88. package/dist/pull-ATOZJIXF.mjs +0 -20
  89. package/dist/pull-M4K3RJK4.js +0 -20
  90. package/dist/push-RBMMCBJV.js +0 -20
  91. package/dist/push-YJTRRJOZ.mjs +0 -20
  92. /package/dist/{add-H5KAG6WK.mjs.map → add-5RVW7RGD.mjs.map} +0 -0
  93. /package/dist/{chunk-LOVNOYYC.mjs.map → chunk-3NPLA2MU.mjs.map} +0 -0
  94. /package/dist/{chunk-KJFN6D3P.mjs.map → chunk-FMYG6IOZ.mjs.map} +0 -0
  95. /package/dist/{chunk-MGHXC55F.mjs.map → chunk-JVIQJFUE.mjs.map} +0 -0
  96. /package/dist/{chunk-RYZHOFQM.mjs.map → chunk-WAHZXF7I.mjs.map} +0 -0
  97. /package/dist/{chunk-L4INM3N7.mjs.map → chunk-WSSWTQIB.mjs.map} +0 -0
  98. /package/dist/{list-QV73ABKP.mjs.map → list-IGP275AO.mjs.map} +0 -0
  99. /package/dist/{login-PHAU2VBJ.mjs.map → login-EBPGM5GC.mjs.map} +0 -0
  100. /package/dist/{pull-ATOZJIXF.mjs.map → pull-3NWDN7CX.mjs.map} +0 -0
  101. /package/dist/{push-YJTRRJOZ.mjs.map → push-3CMG3MTX.mjs.map} +0 -0
  102. /package/dist/{remove-I3MLOKDK.mjs.map → remove-QJJWZ2ZA.mjs.map} +0 -0
  103. /package/dist/{sync-HKGOBRN3.mjs.map → sync-BNPR6W4G.mjs.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-SAEA37H5.js","../src/cli/commands/push.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-SAEA37H5.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport * as yaml from \"js-yaml\";\nimport { PromptConverter } from \"@/cli/utils/promptConverter\";\nimport {\n type ConfigData,\n PromptsApiService,\n PromptsError,\n type SyncAction,\n} from \"@/client-sdk/services/prompts\";\nimport type { PromptsConfig, PromptsLock, SyncResult } from \"../types\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport readline from \"node:readline\";\n\n// Handle conflict resolution - show diff and ask user to choose\nconst handleConflict = async (\n promptName: string,\n conflictInfo: {\n localVersion: number;\n remoteVersion: number;\n differences: string[];\n remoteConfigData: any;\n }\n): Promise<\"local\" | \"remote\" | \"abort\"> => {\n console.log(\n chalk.yellow(`\\n⚠ Conflict detected for prompt: ${chalk.cyan(promptName)}`)\n );\n console.log(\n chalk.gray(\n `Local version: ${conflictInfo.localVersion}, Remote version: ${conflictInfo.remoteVersion}`\n )\n );\n\n if (conflictInfo.differences.length > 0) {\n console.log(chalk.yellow(\"\\nDifferences:\"));\n conflictInfo.differences.forEach((diff) => {\n console.log(chalk.gray(` • ${diff}`));\n });\n }\n\n console.log(chalk.yellow(\"\\nOptions:\"));\n console.log(\" [l] Use local version (overwrite remote)\");\n console.log(\" [r] Use remote version (overwrite local)\");\n console.log(\" [a] Abort push for this prompt\");\n\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n return new Promise((resolve) => {\n rl.question(\"Choose resolution (l/r/a): \", (answer: string) => {\n rl.close();\n const choice = answer.toLowerCase();\n if (choice === \"l\" || choice === \"local\") {\n resolve(\"local\");\n } else if (choice === \"r\" || choice === \"remote\") {\n resolve(\"remote\");\n } else {\n resolve(\"abort\");\n }\n });\n });\n};\n\n/**\n * Core push logic: pushes local prompts to the server.\n * Returns the result and mutates the lock object in place.\n */\nexport const pushPrompts = async ({\n config,\n lock,\n promptsApiService,\n result,\n}: {\n config: PromptsConfig;\n lock: PromptsLock;\n promptsApiService: PromptsApiService;\n result: SyncResult;\n}): Promise<void> => {\n const localFileRefs = Object.entries(config.prompts).filter(\n ([, dependency]) => {\n return typeof dependency === \"string\" && dependency.startsWith(\"file:\");\n }\n );\n\n if (localFileRefs.length > 0) {\n const pushSpinner = ora(\n `Pushing ${localFileRefs.length} local prompts...`\n ).start();\n\n for (const [promptName, dependency] of localFileRefs) {\n try {\n const filePath = (dependency as string).slice(5); // Remove \"file:\" prefix\n\n const localConfig = FileManager.loadLocalPrompt(filePath);\n\n const currentVersion = lock.prompts[promptName]?.version;\n\n // Build outputs based on response_format if present\n const responseFormat = (localConfig as any).response_format;\n let outputs: ConfigData[\"outputs\"] = [{ identifier: \"output\", type: \"str\" }];\n if (responseFormat?.schema) {\n outputs = [\n {\n identifier: responseFormat.name ?? \"output\",\n type: \"json_schema\",\n json_schema: responseFormat.schema,\n },\n ];\n }\n\n const configData: ConfigData = {\n model: localConfig.model,\n prompt: PromptConverter.extractSystemPrompt(localConfig.messages),\n messages: PromptConverter.filterNonSystemMessages(\n localConfig.messages\n ) as Array<{\n role: \"system\" | \"user\" | \"assistant\";\n content: string;\n }>,\n temperature: localConfig.modelParameters?.temperature,\n max_tokens: localConfig.modelParameters?.max_tokens,\n inputs: [{ identifier: \"input\", type: \"str\" }],\n outputs,\n // response_format is derived from outputs on the server side\n };\n\n const syncResult = await promptsApiService.sync({\n name: promptName,\n configData,\n localVersion: currentVersion,\n commitMessage: `Synced from local file: ${path.basename(filePath)}`,\n });\n\n const relativePath = path.relative(process.cwd(), filePath);\n\n let conflictResolution: \"local\" | \"remote\" | \"abort\" | null = null;\n if (syncResult.action === \"conflict\") {\n pushSpinner.stop();\n conflictResolution = await handleConflict(\n promptName,\n syncResult.conflictInfo!\n );\n if (conflictResolution === \"abort\") {\n result.errors.push({\n name: promptName,\n error: \"Push aborted due to conflict\",\n });\n continue;\n }\n\n if (conflictResolution === \"remote\" && syncResult.conflictInfo) {\n const remoteConfig = {\n model: syncResult.conflictInfo.remoteConfigData.model,\n modelParameters: {\n temperature:\n syncResult.conflictInfo.remoteConfigData.temperature,\n max_tokens:\n syncResult.conflictInfo.remoteConfigData.max_tokens,\n },\n messages: [\n {\n role: \"system\" as const,\n content: syncResult.conflictInfo.remoteConfigData.prompt,\n },\n ...(syncResult.conflictInfo.remoteConfigData.messages ?? []),\n ],\n };\n\n const yamlContent = yaml.dump(remoteConfig, {\n lineWidth: -1,\n noRefs: true,\n sortKeys: false,\n });\n\n fs.writeFileSync(filePath, yamlContent);\n }\n\n pushSpinner.start();\n }\n\n if (syncResult.prompt) {\n lock.prompts[promptName] = {\n version: syncResult.prompt.version,\n versionId: syncResult.prompt.versionId,\n materialized: filePath,\n };\n } else if (syncResult.action === \"conflict\") {\n const remoteVersion = syncResult.conflictInfo?.remoteVersion ?? 0;\n if (conflictResolution === \"remote\") {\n lock.prompts[promptName] = {\n version: remoteVersion,\n versionId: \"remote_version\",\n materialized: filePath,\n };\n } else {\n const formattedConfig = PromptConverter.fromLocalToApiFormat(localConfig);\n const updatedPrompt = await promptsApiService.update(promptName, {\n ...formattedConfig,\n commitMessage: `Updated via CLI: synced from local file`\n });\n lock.prompts[promptName] = {\n version: updatedPrompt.version,\n versionId: updatedPrompt.versionId,\n materialized: filePath,\n };\n }\n }\n\n let actionText: string;\n if (syncResult.action === \"conflict\") {\n if (conflictResolution === \"remote\") {\n actionText = \"Pulled\";\n result.fetched.push({\n name: promptName,\n version: syncResult.conflictInfo?.remoteVersion ?? 0,\n versionSpec: \"latest\",\n });\n } else {\n actionText = \"Pushed\";\n result.pushed.push({\n name: promptName,\n version: (syncResult.conflictInfo?.remoteVersion ?? 0) + 1,\n });\n }\n } else if (syncResult.action === \"up_to_date\") {\n actionText = \"Up-to-date\";\n result.unchanged.push(promptName);\n } else {\n const actionMap: Record<SyncAction, string> = {\n created: \"Created\",\n updated: \"Updated\",\n conflict: \"Conflict resolved\",\n up_to_date: \"Up to date\",\n };\n actionText = actionMap[syncResult.action as SyncAction] || \"Pushed\";\n result.pushed.push({\n name: promptName,\n version: syncResult.prompt?.version ?? 0,\n });\n }\n\n pushSpinner.text = `${actionText} ${chalk.cyan(\n promptName\n )} ${chalk.gray(\n `(version ${\n syncResult.prompt?.version ??\n syncResult.conflictInfo?.remoteVersion ??\n \"unknown\"\n })`\n )} ${conflictResolution === \"remote\" ? \"to\" : \"from\"} ${chalk.gray(\n relativePath\n )}`;\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : \"Unknown error\";\n result.errors.push({ name: promptName, error: errorMessage });\n }\n }\n\n pushSpinner.stop();\n }\n\n // Check for orphan local prompt files and show helpful warnings\n const discoveredLocalFiles = FileManager.getLocalPromptFiles();\n const orphanFiles = discoveredLocalFiles.filter((filePath) => {\n const promptName = FileManager.promptNameFromPath(filePath);\n return !config.prompts[promptName];\n });\n\n if (orphanFiles.length > 0) {\n console.log(\n chalk.yellow(\n `\\n⚠ Found ${orphanFiles.length} orphan prompt file${\n orphanFiles.length > 1 ? \"s\" : \"\"\n }:`\n )\n );\n\n for (const filePath of orphanFiles) {\n const promptName = FileManager.promptNameFromPath(filePath);\n const relativePath = path.relative(process.cwd(), filePath);\n\n console.log(chalk.yellow(` ${relativePath}`));\n console.log(\n chalk.gray(\n ` Add to prompts.json: \"${promptName}\": \"file:${relativePath}\"`\n )\n );\n }\n\n console.log(\n chalk.gray(\n `\\nTip: Add these to prompts.json to include them in push operations.`\n )\n );\n }\n};\n\nconst printPushResults = ({\n result,\n duration,\n}: {\n result: SyncResult;\n duration: string;\n}): void => {\n if (result.pushed.length > 0) {\n for (const { name, version } of result.pushed) {\n const localPath = `./prompts/${name}.prompt.yaml`;\n console.log(\n chalk.green(\n `✓ Pushed ${chalk.cyan(name)} ${chalk.gray(\n `(version ${version})`\n )} from ${chalk.gray(localPath)}`\n )\n );\n }\n }\n\n if (result.fetched.length > 0) {\n for (const { name, version } of result.fetched) {\n console.log(\n chalk.green(\n `✓ Pulled ${chalk.cyan(name)} ${chalk.gray(\n `(version ${version})`\n )} (resolved conflict with remote)`\n )\n );\n }\n }\n\n if (result.errors.length > 0) {\n for (const { name, error } of result.errors) {\n console.log(chalk.red(`✗ Failed ${chalk.cyan(name)}: ${error}`));\n }\n }\n\n const totalActions = result.fetched.length + result.pushed.length;\n\n if (totalActions === 0 && result.errors.length === 0) {\n console.log(chalk.gray(`Pushed in ${duration}s, no changes`));\n } else {\n const summary = [];\n if (result.pushed.length > 0)\n summary.push(`${result.pushed.length} pushed`);\n if (result.fetched.length > 0)\n summary.push(`${result.fetched.length} pulled (conflict resolution)`);\n if (result.errors.length > 0)\n summary.push(`${result.errors.length} errors`);\n\n console.log(chalk.gray(`Pushed ${summary.join(\", \")} in ${duration}s`));\n }\n};\n\nexport const pushCommand = async (): Promise<void> => {\n console.log(\"⬆️ Pushing local prompts...\");\n\n const startTime = Date.now();\n\n try {\n checkApiKey();\n\n const promptsApiService = new PromptsApiService();\n\n await ensureProjectInitialized(false);\n\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n const result: SyncResult = {\n fetched: [],\n pushed: [],\n unchanged: [],\n cleaned: [],\n errors: [],\n };\n\n await pushPrompts({ config, lock, promptsApiService, result });\n\n FileManager.savePromptsLock(lock);\n\n const duration = ((Date.now() - startTime) / 1000).toFixed(1);\n printPushResults({ result, duration });\n\n if (result.errors.length > 0) {\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"]}
@@ -8,7 +8,7 @@ import {
8
8
  ATTR_LANGWATCH_PROMPT_VERSION_NUMBER,
9
9
  ATTR_LANGWATCH_RAG_CONTEXTS,
10
10
  ATTR_LANGWATCH_SPAN_TYPE
11
- } from "./chunk-MGHXC55F.mjs";
11
+ } from "./chunk-JVIQJFUE.mjs";
12
12
 
13
13
  // src/observability-sdk/span/types.ts
14
14
  var INPUT_OUTPUT_TYPES = [
@@ -642,4 +642,4 @@ export {
642
642
  getLangWatchTracer,
643
643
  getLangWatchTracerFromProvider
644
644
  };
645
- //# sourceMappingURL=chunk-RYZHOFQM.mjs.map
645
+ //# sourceMappingURL=chunk-WAHZXF7I.mjs.map
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "0.16.1";
2
+ var version = "0.18.0";
3
3
 
4
4
  // src/internal/runtime.ts
5
5
  var _runtime;
@@ -60,4 +60,4 @@ export {
60
60
  TRACES_PATH,
61
61
  LOGS_PATH
62
62
  };
63
- //# sourceMappingURL=chunk-SVJQD7JQ.mjs.map
63
+ //# sourceMappingURL=chunk-WQ7AKXY7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../package.json","../src/internal/runtime.ts","../src/internal/constants.ts"],"sourcesContent":["{\n \"name\": \"langwatch\",\n \"version\": \"0.18.0\",\n \"description\": \"LangWatch TypeScript/JavaScript SDK. Interact with the full LangWatch API and use the LangWatch OpenTelemetry SDK to instrument your application. For more information, see https://docs.langwatch.ai/integration/typescript/guide\",\n \"main\": \"dist/index.js\",\n \"module\": \"dist/index.mjs\",\n \"types\": \"dist/index.d.ts\",\n \"author\": \"LangWatch\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=20\",\n \"pnpm\": \">=8\"\n },\n \"files\": [\n \"dist\",\n \"README.md\",\n \"LICENSE\"\n ],\n \"bin\": {\n \"langwatch\": \"./dist/cli/index.js\"\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.js\"\n },\n \"./observability\": {\n \"types\": \"./dist/observability-sdk/index.d.ts\",\n \"require\": \"./dist/observability-sdk/index.js\",\n \"import\": \"./dist/observability-sdk/index.mjs\"\n },\n \"./observability/node\": {\n \"types\": \"./dist/observability-sdk/setup/node/index.d.ts\",\n \"require\": \"./dist/observability-sdk/setup/node/index.js\",\n \"import\": \"./dist/observability-sdk/setup/node/index.mjs\"\n },\n \"./observability/instrumentation/langchain\": {\n \"types\": \"./dist/observability-sdk/instrumentation/langchain/index.d.ts\",\n \"require\": \"./dist/observability-sdk/instrumentation/langchain/index.js\",\n \"import\": \"./dist/observability-sdk/instrumentation/langchain/index.mjs\"\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/langwatch/langwatch.git\",\n \"directory\": \"typescript-sdk\"\n },\n \"scripts\": {\n \"prepare\": \"pnpm run generate:server-types && pnpm run generate:openapi-types\",\n \"cli\": \"node dist/cli/index.js\",\n \"lint\": \"eslint .\",\n \"test\": \"vitest\",\n \"test:unit\": \"vitest run --exclude '**/*.integration.test.ts'\",\n \"test:e2e\": \"dotenv -- vitest run -c ./vitest.e2e.config.mts\",\n \"test:seed\": \"dotenv -e .env.test -- bash -c 'cd ../langwatch && pnpm prisma:seed'\",\n \"prebuild\": \"pnpm run prepare\",\n \"build\": \"tsc --noEmit && tsup\",\n \"tarball\": \"pnpm build && pnpm pack\",\n \"typecheck\": \"tsc --noEmit\",\n \"prepublish\": \"pnpm run build\",\n \"generate:openapi-types\": \"pnpx openapi-typescript ../langwatch/src/app/api/openapiLangWatch.json -o ./src/internal/generated/openapi/api-client.ts\",\n \"generate:server-types\": \"./copy-types.sh\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.32.0\",\n \"@langchain/core\": \">=0.3.68 <0.4.0\",\n \"@langchain/langgraph\": \">=0.4.0 <1.0.0\",\n \"@langchain/openai\": \">=0.6.0 <1.0.0\",\n \"@opentelemetry/sdk-node\": \"0.205.0\",\n \"@opentelemetry/sdk-trace-node\": \"^2.0.1\",\n \"@opentelemetry/sdk-trace-web\": \">=2.0.1\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/js-yaml\": \"^4.0.9\",\n \"@types/node\": \"^24.1.0\",\n \"@typescript/native-preview\": \"7.0.0-dev.20250804.1\",\n \"@vercel/otel\": \"^1.13.0\",\n \"@vitest/coverage-v8\": \"3.2.4\",\n \"dotenv-cli\": \"^11.0.0\",\n \"esbuild\": \"^0.27.3\",\n \"eslint\": \"^9.32.0\",\n \"fets\": \"^0.8.5\",\n \"fishery\": \"^2.3.1\",\n \"langchain\": \">=0.3.0 <2.0.0\",\n \"msw\": \"^2.10.4\",\n \"nock\": \"^14.0.8\",\n \"openapi-msw\": \"^1.2.0\",\n \"ts-to-zod\": \"4.0.1\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.9.2\",\n \"typescript-eslint\": \"^8.38.0\",\n \"vitest\": \"^3.2.4\",\n \"vitest-mock-extended\": \"^3.1.0\",\n \"yaml\": \"^2.8.1\",\n \"@opentelemetry/api\": \"^1.9.0\"\n },\n \"dependencies\": {\n \"@opentelemetry/api-logs\": \"0.205.0\",\n \"@opentelemetry/core\": \"^2.0.1\",\n \"@opentelemetry/exporter-logs-otlp-http\": \"0.205.0\",\n \"@opentelemetry/exporter-trace-otlp-http\": \"0.205.0\",\n \"@opentelemetry/instrumentation\": \"0.212.0\",\n \"@opentelemetry/resources\": \"^2.0.1\",\n \"@opentelemetry/sdk-logs\": \"0.205.0\",\n \"@opentelemetry/sdk-metrics\": \"^2.0.1\",\n \"@opentelemetry/sdk-trace-base\": \"^2.0.1\",\n \"@opentelemetry/semantic-conventions\": \"^1.36.0\",\n \"@types/prompts\": \"^2.4.9\",\n \"chalk\": \"^4.1.2\",\n \"commander\": \"^12.0.0\",\n \"dotenv\": \"^17.3.1\",\n \"js-yaml\": \"^4.1.0\",\n \"liquidjs\": \"^10.21.1\",\n \"open\": \"^11.0.0\",\n \"openapi-fetch\": \"^0.16.0\",\n \"ora\": \"^9.3.0\",\n \"prompts\": \"^2.4.2\",\n \"xksuid\": \"^0.0.4\",\n \"zod\": \"^4.0.14\"\n },\n \"peerDependencies\": {\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@ai-sdk/openai\": \">=2.0.0 <3.0.0\",\n \"@langchain/core\": \">=0.3.0 <1.0.0\",\n \"@langchain/langgraph\": \">=0.4.0 <1.0.0\",\n \"@langchain/openai\": \">=0.6.0 <1.0.0\",\n \"@opentelemetry/context-async-hooks\": \"^2.1.0\",\n \"@opentelemetry/context-zone\": \">=1.19.0 <3.0.0\",\n \"@opentelemetry/sdk-node\": \">=0.200.0 <1.0.0\",\n \"@opentelemetry/sdk-trace-web\": \">=1.19.0 <3.0.0\",\n \"langchain\": \">=0.3.0 <2.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@ai-sdk/openai\": { \"optional\": true },\n \"@langchain/core\": { \"optional\": true },\n \"@langchain/langgraph\": { \"optional\": true },\n \"@langchain/openai\": { \"optional\": true },\n \"@opentelemetry/context-async-hooks\": { \"optional\": true },\n \"@opentelemetry/context-zone\": { \"optional\": true },\n \"@opentelemetry/sdk-node\": { \"optional\": true },\n \"@opentelemetry/sdk-trace-web\": { \"optional\": true },\n \"langchain\": { \"optional\": true }\n },\n \"pnpm\": {\n \"overrides\": {\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/core\": \"^2.0.1\",\n \"@opentelemetry/resources\": \"^2.0.1\",\n \"@opentelemetry/sdk-trace-base\": \"^2.0.1\",\n \"@opentelemetry/instrumentation\": \"0.212.0\",\n \"@opentelemetry/sdk-node\": \"0.205.0\",\n \"@opentelemetry/context-async-hooks\": \"^2.1.0\",\n \"@opentelemetry/api-logs\": \"0.205.0\",\n \"@opentelemetry/sdk-logs\": \"0.205.0\",\n \"@opentelemetry/exporter-logs-otlp-http\": \"0.205.0\",\n \"@opentelemetry/exporter-trace-otlp-http\": \"0.205.0\",\n \"zod\": \"^4.0.14\",\n \"langchain@<0.3.37\": \"0.3.37\",\n \"@langchain/core@<0.3.80\": \"0.3.80\"\n }\n }\n}\n","export type JsRuntime = \"node\" | \"deno\" | \"bun\" | \"web\" | \"unknown\";\n\nlet _runtime: JsRuntime | undefined;\n\n/**\n * Gets the cached JavaScript runtime environment.\n * @returns The detected runtime environment\n */\nexport const getRuntime = (): JsRuntime => {\n _runtime ??= detectRuntime();\n return _runtime;\n};\n\n/**\n * Resets the cached runtime. Only used for testing.\n * @internal\n */\nexport const resetRuntimeCache = (): void => {\n _runtime = undefined;\n};\n\n/**\n * Detects the JavaScript runtime environment.\n * @param globals - (Test only) Optionally override the global object for environment simulation. Only used if NODE_ENV === 'test'.\n */\nexport function detectRuntime(globals?: any): JsRuntime {\n let g = globalThis;\n if (globals) {\n if (process.env.NODE_ENV === \"test\") {\n g = globals;\n } else {\n console.warn(\"[LangWatch Observability] overriding detectRuntime is only supported when running in NODE_ENV=test\");\n }\n }\n\n try {\n if (\n \"Deno\" in g &&\n typeof g.Deno === \"object\" &&\n g.Deno &&\n 'version' in g.Deno &&\n typeof g.Deno.version === \"object\"\n ) {\n return \"deno\";\n }\n if (\n \"Bun\" in g &&\n typeof g.Bun === \"object\" &&\n g.Bun &&\n 'version' in g.Bun &&\n typeof g.Bun.version === \"string\"\n ) {\n return \"bun\";\n }\n if (\n \"process\" in g &&\n typeof g.process === \"object\" &&\n g.process &&\n typeof g.process.versions === \"object\" &&\n typeof g.process.versions.node === \"string\"\n ) {\n return \"node\";\n }\n if (\n typeof g.window?.document !== \"undefined\" &&\n g === g.window\n ) {\n return \"web\";\n }\n return \"unknown\";\n } catch (error) {\n console.warn(\"[LangWatch Observability] Failed to detect runtime\", error);\n return \"unknown\";\n }\n}\n","import { version } from \"../../package.json\";\nimport { getRuntime } from \"./runtime\";\n\nexport const LANGWATCH_SDK_RUNTIME = getRuntime;\n\nexport const LANGWATCH_SDK_NAME_OBSERVABILITY = \"langwatch-observability-sdk\";\nexport const LANGWATCH_SDK_NAME_CLIENT = \"langwatch-client-sdk\";\nexport const LANGWATCH_SDK_LANGUAGE = \"typescript\";\nexport const LANGWATCH_SDK_VERSION = version;\n\nexport const DEFAULT_ENDPOINT = \"https://app.langwatch.ai/\";\nexport const DEFAULT_SERVICE_NAME = \"unknown-service.langwatch\";\n\nexport const TRACES_PATH = \"/api/otel/v1/traces\";\nexport const LOGS_PATH = \"/api/otel/v1/logs\";\nexport const METRICS_PATH = \"/api/otel/v1/metrics\";\n"],"mappings":";AAEI,cAAW;;;ACAf,IAAI;AAMG,IAAM,aAAa,MAAiB;AACzC,2CAAa,cAAc;AAC3B,SAAO;AACT;AAcO,SAAS,cAAc,SAA0B;AAzBxD;AA0BE,MAAI,IAAI;AACR,MAAI,SAAS;AACX,QAAI,QAAQ,IAAI,aAAa,QAAQ;AACnC,UAAI;AAAA,IACN,OAAO;AACL,cAAQ,KAAK,oGAAoG;AAAA,IACnH;AAAA,EACF;AAEA,MAAI;AACF,QACE,UAAU,KACV,OAAO,EAAE,SAAS,YAClB,EAAE,QACF,aAAa,EAAE,QACf,OAAO,EAAE,KAAK,YAAY,UAC1B;AACA,aAAO;AAAA,IACT;AACA,QACE,SAAS,KACT,OAAO,EAAE,QAAQ,YACjB,EAAE,OACF,aAAa,EAAE,OACf,OAAO,EAAE,IAAI,YAAY,UACzB;AACA,aAAO;AAAA,IACT;AACA,QACE,aAAa,KACb,OAAO,EAAE,YAAY,YACrB,EAAE,WACF,OAAO,EAAE,QAAQ,aAAa,YAC9B,OAAO,EAAE,QAAQ,SAAS,SAAS,UACnC;AACA,aAAO;AAAA,IACT;AACA,QACE,SAAO,OAAE,WAAF,mBAAU,cAAa,eAC9B,MAAM,EAAE,QACR;AACA,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,SAAS,OAAO;AACd,YAAQ,KAAK,sDAAsD,KAAK;AACxE,WAAO;AAAA,EACT;AACF;;;ACvEO,IAAM,wBAAwB;AAE9B,IAAM,mCAAmC;AACzC,IAAM,4BAA4B;AAClC,IAAM,yBAAyB;AAC/B,IAAM,wBAAwB;AAE9B,IAAM,mBAAmB;AACzB,IAAM,uBAAuB;AAE7B,IAAM,cAAc;AACpB,IAAM,YAAY;","names":[]}
@@ -6,10 +6,10 @@ import {
6
6
  LANGWATCH_SDK_VERSION,
7
7
  LOGS_PATH,
8
8
  TRACES_PATH
9
- } from "./chunk-SVJQD7JQ.mjs";
9
+ } from "./chunk-WQ7AKXY7.mjs";
10
10
  import {
11
11
  shouldCaptureOutput
12
- } from "./chunk-MGHXC55F.mjs";
12
+ } from "./chunk-JVIQJFUE.mjs";
13
13
  import {
14
14
  __spreadProps,
15
15
  __spreadValues
@@ -293,4 +293,4 @@ export {
293
293
  getLangWatchLogger,
294
294
  getLangWatchLoggerFromProvider
295
295
  };
296
- //# sourceMappingURL=chunk-L4INM3N7.mjs.map
296
+ //# sourceMappingURL=chunk-WSSWTQIB.mjs.map
@@ -4,7 +4,7 @@ var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
4
4
 
5
5
 
6
6
 
7
- var _chunk5FBGDIHXjs = require('./chunk-5FBGDIHX.js');
7
+ var _chunkEHWKVO46js = require('./chunk-EHWKVO46.js');
8
8
 
9
9
 
10
10
  var _chunkBYG3QS2Xjs = require('./chunk-BYG3QS2X.js');
@@ -152,7 +152,7 @@ var pullCommand = async () => {
152
152
  const startTime = Date.now();
153
153
  try {
154
154
  _chunkF6E4XQQUjs.checkApiKey.call(void 0, );
155
- const promptsApiService = new (0, _chunk5FBGDIHXjs.PromptsApiService)();
155
+ const promptsApiService = new (0, _chunkEHWKVO46js.PromptsApiService)();
156
156
  await _chunkBYG3QS2Xjs.ensureProjectInitialized.call(void 0, false);
157
157
  const config = _chunkWAAQLJ67js.FileManager.loadPromptsConfig();
158
158
  const lock = _chunkWAAQLJ67js.FileManager.loadPromptsLock();
@@ -171,7 +171,7 @@ var pullCommand = async () => {
171
171
  process.exit(1);
172
172
  }
173
173
  } catch (error) {
174
- if (error instanceof _chunk5FBGDIHXjs.PromptsError) {
174
+ if (error instanceof _chunkEHWKVO46js.PromptsError) {
175
175
  console.error(_chalk2.default.red(`Error: ${error.message}`));
176
176
  } else {
177
177
  console.error(
@@ -188,4 +188,4 @@ var pullCommand = async () => {
188
188
 
189
189
 
190
190
  exports.pullPrompts = pullPrompts; exports.pullCommand = pullCommand;
191
- //# sourceMappingURL=chunk-BNFRYHOP.js.map
191
+ //# sourceMappingURL=chunk-XEYCRZ64.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-BNFRYHOP.js","../src/cli/commands/pull.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-BNFRYHOP.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptConverter } from \"@/cli/utils/promptConverter\";\nimport {\n PromptsApiService,\n PromptsError,\n} from \"@/client-sdk/services/prompts\";\nimport type { PromptsConfig, PromptsLock, SyncResult } from \"../types\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n/**\n * Core pull logic: fetches remote prompts and materializes them locally.\n * Returns the result and mutates the lock object in place.\n */\nexport const pullPrompts = async ({\n config,\n lock,\n promptsApiService,\n result,\n}: {\n config: PromptsConfig;\n lock: PromptsLock;\n promptsApiService: PromptsApiService;\n result: SyncResult;\n}): Promise<void> => {\n const remoteDeps = Object.entries(config.prompts).filter(\n ([, dependency]) => {\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n }\n );\n\n if (remoteDeps.length > 0) {\n const fetchSpinner = ora(\n `Checking ${remoteDeps.length} remote prompts...`\n ).start();\n\n for (const [name, dependency] of remoteDeps) {\n try {\n const versionSpec =\n typeof dependency === \"string\"\n ? dependency\n : dependency.version ?? \"latest\";\n\n const lockEntry = lock.prompts[name];\n\n const prompt = await promptsApiService.get(name, { version: versionSpec });\n\n if (prompt) {\n const needsUpdate =\n lockEntry?.version !== prompt.version ||\n !lockEntry.materialized ||\n !fs.existsSync(path.resolve(lockEntry.materialized));\n\n if (needsUpdate) {\n const materializedPrompt =\n PromptConverter.fromApiToMaterialized(prompt);\n\n const savedPath = FileManager.saveMaterializedPrompt(\n name,\n materializedPrompt\n );\n const relativePath = path.relative(process.cwd(), savedPath);\n result.fetched.push({\n name,\n version: prompt.version,\n versionSpec,\n });\n\n FileManager.updateLockEntry(\n lock,\n name,\n materializedPrompt,\n savedPath\n );\n\n fetchSpinner.text = `Fetched ${chalk.cyan(\n `${name}@${versionSpec}`\n )} ${chalk.gray(`(version ${prompt.version})`)} → ${chalk.gray(\n relativePath\n )}`;\n } else {\n result.unchanged.push(name);\n }\n } else {\n result.errors.push({ name, error: \"Prompt not found\" });\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : \"Unknown error\";\n result.errors.push({ name, error: errorMessage });\n }\n }\n\n fetchSpinner.stop();\n }\n\n // Cleanup orphaned materialized files\n const currentDependencies = new Set(\n Object.keys(config.prompts).filter((name) => {\n const dependency = config.prompts[name];\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n })\n );\n\n const cleanedFiles =\n FileManager.cleanupOrphanedMaterializedFiles(currentDependencies);\n if (cleanedFiles.length > 0) {\n result.cleaned = cleanedFiles;\n FileManager.removeFromLock(lock, cleanedFiles);\n }\n};\n\nconst printPullResults = ({\n result,\n lock,\n duration,\n}: {\n result: SyncResult;\n lock: PromptsLock;\n duration: string;\n}): void => {\n if (result.fetched.length > 0) {\n for (const { name, version, versionSpec } of result.fetched) {\n const lockEntry = lock.prompts[name];\n const displayPath = lockEntry?.materialized\n ? `./${lockEntry.materialized}`\n : `./prompts/.materialized/${name}.prompt.yaml`;\n\n console.log(\n chalk.green(\n `✓ Pulled ${chalk.cyan(`${name}@${versionSpec}`)} ${chalk.gray(\n `(version ${version})`\n )} → ${chalk.gray(displayPath)}`\n )\n );\n }\n }\n\n if (result.cleaned.length > 0) {\n for (const name of result.cleaned) {\n console.log(\n chalk.yellow(\n `✓ Cleaned ${chalk.cyan(name)} (no longer in dependencies)`\n )\n );\n }\n }\n\n if (result.errors.length > 0) {\n for (const { name, error } of result.errors) {\n console.log(chalk.red(`✗ Failed ${chalk.cyan(name)}: ${error}`));\n }\n }\n\n const totalActions = result.fetched.length + result.cleaned.length;\n\n if (totalActions === 0 && result.errors.length === 0) {\n console.log(chalk.gray(`Pulled in ${duration}s, no changes`));\n } else {\n const summary = [];\n if (result.fetched.length > 0)\n summary.push(`${result.fetched.length} fetched`);\n if (result.cleaned.length > 0)\n summary.push(`${result.cleaned.length} cleaned`);\n if (result.errors.length > 0)\n summary.push(`${result.errors.length} errors`);\n\n console.log(chalk.gray(`Pulled ${summary.join(\", \")} in ${duration}s`));\n }\n};\n\nexport const pullCommand = async (): Promise<void> => {\n console.log(\"⬇️ Pulling remote prompts...\");\n\n const startTime = Date.now();\n\n try {\n checkApiKey();\n\n const promptsApiService = new PromptsApiService();\n\n await ensureProjectInitialized(false);\n\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n const result: SyncResult = {\n fetched: [],\n pushed: [],\n unchanged: [],\n cleaned: [],\n errors: [],\n };\n\n await pullPrompts({ config, lock, promptsApiService, result });\n\n FileManager.savePromptsLock(lock);\n\n const duration = ((Date.now() - startTime) / 1000).toFixed(1);\n printPullResults({ result, lock, duration });\n\n if (result.errors.length > 0) {\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/chunk-XEYCRZ64.js","../src/cli/commands/pull.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-XEYCRZ64.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptConverter } from \"@/cli/utils/promptConverter\";\nimport {\n PromptsApiService,\n PromptsError,\n} from \"@/client-sdk/services/prompts\";\nimport type { PromptsConfig, PromptsLock, SyncResult } from \"../types\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n/**\n * Core pull logic: fetches remote prompts and materializes them locally.\n * Returns the result and mutates the lock object in place.\n */\nexport const pullPrompts = async ({\n config,\n lock,\n promptsApiService,\n result,\n}: {\n config: PromptsConfig;\n lock: PromptsLock;\n promptsApiService: PromptsApiService;\n result: SyncResult;\n}): Promise<void> => {\n const remoteDeps = Object.entries(config.prompts).filter(\n ([, dependency]) => {\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n }\n );\n\n if (remoteDeps.length > 0) {\n const fetchSpinner = ora(\n `Checking ${remoteDeps.length} remote prompts...`\n ).start();\n\n for (const [name, dependency] of remoteDeps) {\n try {\n const versionSpec =\n typeof dependency === \"string\"\n ? dependency\n : dependency.version ?? \"latest\";\n\n const lockEntry = lock.prompts[name];\n\n const prompt = await promptsApiService.get(name, { version: versionSpec });\n\n if (prompt) {\n const needsUpdate =\n lockEntry?.version !== prompt.version ||\n !lockEntry.materialized ||\n !fs.existsSync(path.resolve(lockEntry.materialized));\n\n if (needsUpdate) {\n const materializedPrompt =\n PromptConverter.fromApiToMaterialized(prompt);\n\n const savedPath = FileManager.saveMaterializedPrompt(\n name,\n materializedPrompt\n );\n const relativePath = path.relative(process.cwd(), savedPath);\n result.fetched.push({\n name,\n version: prompt.version,\n versionSpec,\n });\n\n FileManager.updateLockEntry(\n lock,\n name,\n materializedPrompt,\n savedPath\n );\n\n fetchSpinner.text = `Fetched ${chalk.cyan(\n `${name}@${versionSpec}`\n )} ${chalk.gray(`(version ${prompt.version})`)} → ${chalk.gray(\n relativePath\n )}`;\n } else {\n result.unchanged.push(name);\n }\n } else {\n result.errors.push({ name, error: \"Prompt not found\" });\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : \"Unknown error\";\n result.errors.push({ name, error: errorMessage });\n }\n }\n\n fetchSpinner.stop();\n }\n\n // Cleanup orphaned materialized files\n const currentDependencies = new Set(\n Object.keys(config.prompts).filter((name) => {\n const dependency = config.prompts[name];\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n })\n );\n\n const cleanedFiles =\n FileManager.cleanupOrphanedMaterializedFiles(currentDependencies);\n if (cleanedFiles.length > 0) {\n result.cleaned = cleanedFiles;\n FileManager.removeFromLock(lock, cleanedFiles);\n }\n};\n\nconst printPullResults = ({\n result,\n lock,\n duration,\n}: {\n result: SyncResult;\n lock: PromptsLock;\n duration: string;\n}): void => {\n if (result.fetched.length > 0) {\n for (const { name, version, versionSpec } of result.fetched) {\n const lockEntry = lock.prompts[name];\n const displayPath = lockEntry?.materialized\n ? `./${lockEntry.materialized}`\n : `./prompts/.materialized/${name}.prompt.yaml`;\n\n console.log(\n chalk.green(\n `✓ Pulled ${chalk.cyan(`${name}@${versionSpec}`)} ${chalk.gray(\n `(version ${version})`\n )} → ${chalk.gray(displayPath)}`\n )\n );\n }\n }\n\n if (result.cleaned.length > 0) {\n for (const name of result.cleaned) {\n console.log(\n chalk.yellow(\n `✓ Cleaned ${chalk.cyan(name)} (no longer in dependencies)`\n )\n );\n }\n }\n\n if (result.errors.length > 0) {\n for (const { name, error } of result.errors) {\n console.log(chalk.red(`✗ Failed ${chalk.cyan(name)}: ${error}`));\n }\n }\n\n const totalActions = result.fetched.length + result.cleaned.length;\n\n if (totalActions === 0 && result.errors.length === 0) {\n console.log(chalk.gray(`Pulled in ${duration}s, no changes`));\n } else {\n const summary = [];\n if (result.fetched.length > 0)\n summary.push(`${result.fetched.length} fetched`);\n if (result.cleaned.length > 0)\n summary.push(`${result.cleaned.length} cleaned`);\n if (result.errors.length > 0)\n summary.push(`${result.errors.length} errors`);\n\n console.log(chalk.gray(`Pulled ${summary.join(\", \")} in ${duration}s`));\n }\n};\n\nexport const pullCommand = async (): Promise<void> => {\n console.log(\"⬇️ Pulling remote prompts...\");\n\n const startTime = Date.now();\n\n try {\n checkApiKey();\n\n const promptsApiService = new PromptsApiService();\n\n await ensureProjectInitialized(false);\n\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n const result: SyncResult = {\n fetched: [],\n pushed: [],\n unchanged: [],\n cleaned: [],\n errors: [],\n };\n\n await pullPrompts({ config, lock, promptsApiService, result });\n\n FileManager.savePromptsLock(lock);\n\n const duration = ((Date.now() - startTime) / 1000).toFixed(1);\n printPullResults({ result, lock, duration });\n\n if (result.errors.length > 0) {\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"]}
package/dist/cli/index.js CHANGED
@@ -9,11 +9,11 @@ var _dotenv = require('dotenv');
9
9
  var _commander = require('commander');
10
10
  _dotenv.config.call(void 0, );
11
11
  var addCommand = async (name, options) => {
12
- const { addCommand: addCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../add-VERZBAAU.js")));
12
+ const { addCommand: addCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../add-MJE7G2BM.js")));
13
13
  return addCommandImpl(name, options);
14
14
  };
15
15
  var removeCommand = async (name) => {
16
- const { removeCommand: removeCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../remove-7FLHBPAH.js")));
16
+ const { removeCommand: removeCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../remove-HPZGTSOK.js")));
17
17
  return removeCommandImpl(name);
18
18
  };
19
19
  var initCommand = async () => {
@@ -21,23 +21,23 @@ var initCommand = async () => {
21
21
  return initCommandImpl();
22
22
  };
23
23
  var loginCommand = async () => {
24
- const { loginCommand: loginCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../login-7MN6QJCA.js")));
24
+ const { loginCommand: loginCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../login-ZKVIVJC6.js")));
25
25
  return loginCommandImpl();
26
26
  };
27
27
  var listCommand = async () => {
28
- const { listCommand: listCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../list-6N352JKT.js")));
28
+ const { listCommand: listCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../list-QMPURSWH.js")));
29
29
  return listCommandImpl();
30
30
  };
31
31
  var syncCommand = async () => {
32
- const { syncCommand: syncCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../sync-2CIUEV2B.js")));
32
+ const { syncCommand: syncCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../sync-67UMHLSY.js")));
33
33
  return syncCommandImpl();
34
34
  };
35
35
  var pullCommand = async () => {
36
- const { pullCommand: pullCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../pull-M4K3RJK4.js")));
36
+ const { pullCommand: pullCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../pull-22TPEMFM.js")));
37
37
  return pullCommandImpl();
38
38
  };
39
39
  var pushCommand = async () => {
40
- const { pushCommand: pushCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../push-RBMMCBJV.js")));
40
+ const { pushCommand: pushCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../push-7WZUQYC3.js")));
41
41
  return pushCommandImpl();
42
42
  };
43
43
  var createCommand = async (name, options) => {
@@ -45,7 +45,7 @@ var createCommand = async (name, options) => {
45
45
  return createCommandImpl(name, options);
46
46
  };
47
47
  var program = new (0, _commander.Command)();
48
- program.name("langwatch").description("LangWatch CLI - The npm of prompts").version("0.16.1", "-v, --version", "Display the current version").configureHelp({
48
+ program.name("langwatch").description("LangWatch CLI - The npm of prompts").version("0.18.0", "-v, --version", "Display the current version").configureHelp({
49
49
  showGlobalOptions: true
50
50
  }).showHelpAfterError().showSuggestionAfterError();
51
51
  program.command("login").description("Login to LangWatch and save API key").action(async () => {
@@ -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-H5KAG6WK.mjs");
12
+ const { addCommand: addCommandImpl } = await import("../add-5RVW7RGD.mjs");
13
13
  return addCommandImpl(name, options);
14
14
  };
15
15
  var removeCommand = async (name) => {
16
- const { removeCommand: removeCommandImpl } = await import("../remove-I3MLOKDK.mjs");
16
+ const { removeCommand: removeCommandImpl } = await import("../remove-QJJWZ2ZA.mjs");
17
17
  return removeCommandImpl(name);
18
18
  };
19
19
  var initCommand = async () => {
@@ -21,23 +21,23 @@ var initCommand = async () => {
21
21
  return initCommandImpl();
22
22
  };
23
23
  var loginCommand = async () => {
24
- const { loginCommand: loginCommandImpl } = await import("../login-PHAU2VBJ.mjs");
24
+ const { loginCommand: loginCommandImpl } = await import("../login-EBPGM5GC.mjs");
25
25
  return loginCommandImpl();
26
26
  };
27
27
  var listCommand = async () => {
28
- const { listCommand: listCommandImpl } = await import("../list-QV73ABKP.mjs");
28
+ const { listCommand: listCommandImpl } = await import("../list-IGP275AO.mjs");
29
29
  return listCommandImpl();
30
30
  };
31
31
  var syncCommand = async () => {
32
- const { syncCommand: syncCommandImpl } = await import("../sync-HKGOBRN3.mjs");
32
+ const { syncCommand: syncCommandImpl } = await import("../sync-BNPR6W4G.mjs");
33
33
  return syncCommandImpl();
34
34
  };
35
35
  var pullCommand = async () => {
36
- const { pullCommand: pullCommandImpl } = await import("../pull-ATOZJIXF.mjs");
36
+ const { pullCommand: pullCommandImpl } = await import("../pull-3NWDN7CX.mjs");
37
37
  return pullCommandImpl();
38
38
  };
39
39
  var pushCommand = async () => {
40
- const { pushCommand: pushCommandImpl } = await import("../push-YJTRRJOZ.mjs");
40
+ const { pushCommand: pushCommandImpl } = await import("../push-3CMG3MTX.mjs");
41
41
  return pushCommandImpl();
42
42
  };
43
43
  var createCommand = async (name, options) => {
@@ -45,7 +45,7 @@ var createCommand = async (name, options) => {
45
45
  return createCommandImpl(name, options);
46
46
  };
47
47
  var program = new Command();
48
- program.name("langwatch").description("LangWatch CLI - The npm of prompts").version("0.16.1", "-v, --version", "Display the current version").configureHelp({
48
+ program.name("langwatch").description("LangWatch CLI - The npm of prompts").version("0.18.0", "-v, --version", "Display the current version").configureHelp({
49
49
  showGlobalOptions: true
50
50
  }).showHelpAfterError().showSuggestionAfterError();
51
51
  program.command("login").description("Login to LangWatch and save API key").action(async () => {
@@ -2,9 +2,9 @@ import { BatchSpanProcessor, SpanExporter, ReadableSpan } from '@opentelemetry/s
2
2
  import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
3
3
  import { ExportResult } from '@opentelemetry/core';
4
4
  import { Logger, LogRecord, LoggerProvider } from '@opentelemetry/api-logs';
5
- import { a as SemConvLogRecordAttributes, S as SemConvAttributes } from './types-CCH1oIsx.js';
5
+ import { b as SemConvLogRecordAttributes, S as SemConvAttributes } from './types-DYLY4SyT.js';
6
6
  import { TracerProvider } from '@opentelemetry/api';
7
- import { a as LangWatchTracer } from './types-DobBt1Tk.js';
7
+ import { L as LangWatchTracer } from './types-AByjs5T0.js';
8
8
 
9
9
  /**
10
10
  * Filterable Batch Span Exporter for OpenTelemetry
@@ -707,4 +707,4 @@ declare function getLangWatchTracer(name: string, version?: string): LangWatchTr
707
707
  */
708
708
  declare function getLangWatchTracerFromProvider(tracerProvider: TracerProvider, name: string, version?: string): LangWatchTracer;
709
709
 
710
- export { FilterableBatchSpanProcessor as F, LangWatchTraceExporter as L, type SpanProcessingExcludeRule as S, type LangWatchTraceExporterOptions as a, getLangWatchLoggerFromProvider as b, type LangWatchLogger as c, getLangWatchTracer as d, getLangWatchTracerFromProvider as e, getLangWatchLogger as g };
710
+ export { FilterableBatchSpanProcessor as F, LangWatchTraceExporter as L, type SpanProcessingExcludeRule as S, type LangWatchTraceExporterOptions as a, type LangWatchLogger as b, getLangWatchLoggerFromProvider as c, getLangWatchTracer as d, getLangWatchTracerFromProvider as e, getLangWatchLogger as g };
@@ -2,9 +2,9 @@ import { BatchSpanProcessor, SpanExporter, ReadableSpan } from '@opentelemetry/s
2
2
  import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
3
3
  import { ExportResult } from '@opentelemetry/core';
4
4
  import { Logger, LogRecord, LoggerProvider } from '@opentelemetry/api-logs';
5
- import { a as SemConvLogRecordAttributes, S as SemConvAttributes } from './types-CCH1oIsx.mjs';
5
+ import { b as SemConvLogRecordAttributes, S as SemConvAttributes } from './types-DYLY4SyT.mjs';
6
6
  import { TracerProvider } from '@opentelemetry/api';
7
- import { a as LangWatchTracer } from './types-EZcXXg5C.mjs';
7
+ import { L as LangWatchTracer } from './types-DWVQcIaM.mjs';
8
8
 
9
9
  /**
10
10
  * Filterable Batch Span Exporter for OpenTelemetry
@@ -707,4 +707,4 @@ declare function getLangWatchTracer(name: string, version?: string): LangWatchTr
707
707
  */
708
708
  declare function getLangWatchTracerFromProvider(tracerProvider: TracerProvider, name: string, version?: string): LangWatchTracer;
709
709
 
710
- export { FilterableBatchSpanProcessor as F, LangWatchTraceExporter as L, type SpanProcessingExcludeRule as S, type LangWatchTraceExporterOptions as a, getLangWatchLoggerFromProvider as b, type LangWatchLogger as c, getLangWatchTracer as d, getLangWatchTracerFromProvider as e, getLangWatchLogger as g };
710
+ export { FilterableBatchSpanProcessor as F, LangWatchTraceExporter as L, type SpanProcessingExcludeRule as S, type LangWatchTraceExporterOptions as a, type LangWatchLogger as b, getLangWatchLoggerFromProvider as c, getLangWatchTracer as d, getLangWatchTracerFromProvider as e, getLangWatchLogger as g };
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
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-CjoYqq-W.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-EZcXXg5C.mjs';
2
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation-CoqzgwCU.mjs';
3
+ import { p as paths, P as PromptResponse, g as CreatePromptBody, U as UpdatePromptBody, h as PromptData, F as FetchPolicy, i as Prompt, a as LangWatchSpan } from './types-DWVQcIaM.mjs';
4
4
  import openApiCreateClient from 'openapi-fetch';
5
5
  import { z } from 'zod';
6
- export { l as attributes } from './types-CCH1oIsx.mjs';
6
+ export { l as attributes } from './types-DYLY4SyT.mjs';
7
7
  import '@opentelemetry/sdk-trace-base';
8
8
  import '@opentelemetry/exporter-trace-otlp-http';
9
9
  import '@opentelemetry/core';
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
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-ubgXW-8T.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-DobBt1Tk.js';
2
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation--OaaaMLb.js';
3
+ import { p as paths, P as PromptResponse, g as CreatePromptBody, U as UpdatePromptBody, h as PromptData, F as FetchPolicy, i as Prompt, a as LangWatchSpan } from './types-AByjs5T0.js';
4
4
  import openApiCreateClient from 'openapi-fetch';
5
5
  import { z } from 'zod';
6
- export { l as attributes } from './types-CCH1oIsx.js';
6
+ export { l as attributes } from './types-DYLY4SyT.js';
7
7
  import '@opentelemetry/sdk-trace-base';
8
8
  import '@opentelemetry/exporter-trace-otlp-http';
9
9
  import '@opentelemetry/core';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkC2X4KWDKjs = require('./chunk-C2X4KWDK.js');
3
+ var _chunkKIFN3ONOjs = require('./chunk-KIFN3ONO.js');
4
4
 
5
5
 
6
6
 
@@ -8,28 +8,28 @@ var _chunkC2X4KWDKjs = require('./chunk-C2X4KWDK.js');
8
8
 
9
9
 
10
10
 
11
- var _chunk5FBGDIHXjs = require('./chunk-5FBGDIHX.js');
11
+ var _chunkEHWKVO46js = require('./chunk-EHWKVO46.js');
12
12
 
13
13
 
14
- var _chunkCQ6LE6V4js = require('./chunk-CQ6LE6V4.js');
14
+ var _chunkQNT5P6VVjs = require('./chunk-QNT5P6VV.js');
15
15
 
16
16
 
17
17
 
18
- var _chunkIRGFB3BVjs = require('./chunk-IRGFB3BV.js');
18
+ var _chunkODBP2KFBjs = require('./chunk-ODBP2KFB.js');
19
19
 
20
20
 
21
21
 
22
- var _chunkBJFZUNQPjs = require('./chunk-BJFZUNQP.js');
22
+ var _chunkDKEWJFMOjs = require('./chunk-DKEWJFMO.js');
23
23
 
24
24
 
25
25
 
26
26
 
27
- var _chunkZJDIXB42js = require('./chunk-ZJDIXB42.js');
27
+ var _chunkRPCEDRSRjs = require('./chunk-RPCEDRSR.js');
28
28
 
29
29
 
30
30
 
31
31
 
32
- var _chunkZSALL3F3js = require('./chunk-ZSALL3F3.js');
32
+ var _chunk5LYWRKDFjs = require('./chunk-5LYWRKDF.js');
33
33
  require('./chunk-WAAQLJ67.js');
34
34
  require('./chunk-AZHZ4NB4.js');
35
35
 
@@ -355,7 +355,7 @@ var Experiment = class _Experiment {
355
355
  * Initialize an evaluation session
356
356
  */
357
357
  static async init(name, options) {
358
- _chunkC2X4KWDKjs.ensureSetup.call(void 0, );
358
+ _chunkKIFN3ONOjs.ensureSetup.call(void 0, );
359
359
  const experiment = new _Experiment(name, options);
360
360
  await experiment.initialize();
361
361
  return experiment;
@@ -427,7 +427,7 @@ var Experiment = class _Experiment {
427
427
  const concurrency = (_a = options == null ? void 0 : options.concurrency) != null ? _a : this.concurrency;
428
428
  this.total = dataset.length;
429
429
  this.progress = 0;
430
- const tracer2 = _api.trace.getTracer("langwatch-evaluation");
430
+ const tracer2 = _api.trace.getTracer("langwatch");
431
431
  const executing = /* @__PURE__ */ new Set();
432
432
  for (let index = 0; index < dataset.length; index++) {
433
433
  const item = dataset[index];
@@ -439,6 +439,11 @@ var Experiment = class _Experiment {
439
439
  }
440
440
  }
441
441
  await Promise.all(executing);
442
+ const provider = _api.trace.getTracerProvider();
443
+ const delegate = "getDelegate" in provider && typeof provider.getDelegate === "function" ? provider.getDelegate() : provider;
444
+ if (delegate && "forceFlush" in delegate && typeof delegate.forceFlush === "function") {
445
+ await delegate.forceFlush();
446
+ }
442
447
  await this.flush(true);
443
448
  }
444
449
  /**
@@ -481,12 +486,13 @@ var Experiment = class _Experiment {
481
486
  "evaluation.iteration",
482
487
  {
483
488
  attributes: {
489
+ "langwatch.origin": "evaluation",
484
490
  "evaluation.run_id": this.runId,
485
491
  "evaluation.index": index
486
492
  }
487
493
  },
488
494
  async (otelSpan) => {
489
- const span = _chunkIRGFB3BVjs.createLangWatchSpan.call(void 0, otelSpan);
495
+ const span = _chunkODBP2KFBjs.createLangWatchSpan.call(void 0, otelSpan);
490
496
  const spanContext = otelSpan.spanContext();
491
497
  const traceId = spanContext.traceId;
492
498
  this.currentTraceId = traceId;
@@ -717,7 +723,7 @@ var Experiment = class _Experiment {
717
723
  const currentItem = iterationContext == null ? void 0 : iterationContext.item;
718
724
  this.iterationUsedWithTarget.set(index, true);
719
725
  this.registerTarget(targetName, metadata != null ? metadata : void 0);
720
- const tracer2 = _api.trace.getTracer("langwatch-evaluation");
726
+ const tracer2 = _api.trace.getTracer("langwatch");
721
727
  const startTime = Date.now();
722
728
  let result;
723
729
  let traceId = "";
@@ -727,6 +733,7 @@ var Experiment = class _Experiment {
727
733
  `evaluation.target.${targetName}`,
728
734
  {
729
735
  attributes: {
736
+ "langwatch.origin": "evaluation",
730
737
  "evaluation.run_id": this.runId,
731
738
  "evaluation.target": targetName,
732
739
  "evaluation.index": index
@@ -734,7 +741,7 @@ var Experiment = class _Experiment {
734
741
  },
735
742
  _api.ROOT_CONTEXT,
736
743
  async (otelSpan) => {
737
- const span = _chunkIRGFB3BVjs.createLangWatchSpan.call(void 0, otelSpan);
744
+ const span = _chunkODBP2KFBjs.createLangWatchSpan.call(void 0, otelSpan);
738
745
  const spanContext = otelSpan.spanContext();
739
746
  const rawTraceId = spanContext.traceId;
740
747
  spanId = spanContext.spanId;
@@ -1347,7 +1354,7 @@ var EvaluationsFacade = class {
1347
1354
  },
1348
1355
  _api.context.active()
1349
1356
  );
1350
- const langwatchSpan = _chunkIRGFB3BVjs.createLangWatchSpan.call(void 0, otelSpan);
1357
+ const langwatchSpan = _chunkODBP2KFBjs.createLangWatchSpan.call(void 0, otelSpan);
1351
1358
  langwatchSpan.setType(spanType);
1352
1359
  langwatchSpan.setInput(_chunkOHM7JUMRjs.__spreadValues.call(void 0, {
1353
1360
  data
@@ -1448,13 +1455,13 @@ var TracesError = class extends Error {
1448
1455
  };
1449
1456
 
1450
1457
  // src/client-sdk/services/traces/tracing/tracer.ts
1451
- var tracer = _chunkIRGFB3BVjs.getLangWatchTracer.call(void 0, `${_chunkZJDIXB42js.LANGWATCH_SDK_NAME_CLIENT}.traces`, _chunkZJDIXB42js.LANGWATCH_SDK_VERSION);
1458
+ var tracer = _chunkODBP2KFBjs.getLangWatchTracer.call(void 0, `${_chunkRPCEDRSRjs.LANGWATCH_SDK_NAME_CLIENT}.traces`, _chunkRPCEDRSRjs.LANGWATCH_SDK_VERSION);
1452
1459
 
1453
1460
  // src/client-sdk/services/traces/service.ts
1454
1461
  var TracesService = class {
1455
1462
  constructor(config) {
1456
1463
  this.config = config;
1457
- return _chunk5FBGDIHXjs.createTracingProxy.call(void 0,
1464
+ return _chunkEHWKVO46js.createTracingProxy.call(void 0,
1458
1465
  this,
1459
1466
  tracer
1460
1467
  );
@@ -1517,15 +1524,15 @@ var LangWatch = class {
1517
1524
  _chunkOHM7JUMRjs.__privateAdd.call(void 0, this, _LangWatch_instances);
1518
1525
  var _a, _b, _c, _d;
1519
1526
  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 : _chunkZJDIXB42js.DEFAULT_ENDPOINT;
1527
+ const endpoint = (_d = (_c = options.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : _chunkRPCEDRSRjs.DEFAULT_ENDPOINT;
1521
1528
  this.config = _chunkOHM7JUMRjs.__privateMethod.call(void 0, this, _LangWatch_instances, createInternalConfig_fn).call(this, {
1522
1529
  apiKey,
1523
1530
  endpoint,
1524
1531
  options: options.options
1525
1532
  });
1526
- this.prompts = new (0, _chunk5FBGDIHXjs.PromptsFacade)(_chunkOHM7JUMRjs.__spreadValues.call(void 0, {
1527
- promptsApiService: new (0, _chunk5FBGDIHXjs.PromptsApiService)(this.config),
1528
- localPromptsService: new (0, _chunk5FBGDIHXjs.LocalPromptsService)()
1533
+ this.prompts = new (0, _chunkEHWKVO46js.PromptsFacade)(_chunkOHM7JUMRjs.__spreadValues.call(void 0, {
1534
+ promptsApiService: new (0, _chunkEHWKVO46js.PromptsApiService)(this.config),
1535
+ localPromptsService: new (0, _chunkEHWKVO46js.LocalPromptsService)()
1529
1536
  }, this.config));
1530
1537
  this.traces = new TracesFacade(this.config);
1531
1538
  this.experiments = new ExperimentsFacade({
@@ -1556,8 +1563,8 @@ createInternalConfig_fn = function({
1556
1563
  }) {
1557
1564
  var _a;
1558
1565
  return {
1559
- logger: (_a = options == null ? void 0 : options.logger) != null ? _a : new (0, _chunkZSALL3F3js.NoOpLogger)(),
1560
- langwatchApiClient: _chunk5FBGDIHXjs.createLangWatchApiClient.call(void 0, apiKey, endpoint),
1566
+ logger: (_a = options == null ? void 0 : options.logger) != null ? _a : new (0, _chunk5LYWRKDFjs.NoOpLogger)(),
1567
+ langwatchApiClient: _chunkEHWKVO46js.createLangWatchApiClient.call(void 0, apiKey, endpoint),
1561
1568
  endpoint,
1562
1569
  apiKey
1563
1570
  };
@@ -1577,7 +1584,7 @@ var EvaluatorsApiError = class extends Error {
1577
1584
  var EvaluatorsApiService = class {
1578
1585
  constructor(config) {
1579
1586
  var _a;
1580
- this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunk5FBGDIHXjs.createLangWatchApiClient.call(void 0, );
1587
+ this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunkEHWKVO46js.createLangWatchApiClient.call(void 0, );
1581
1588
  }
1582
1589
  handleApiError(operation, error) {
1583
1590
  var _a;
@@ -1627,8 +1634,8 @@ var EvaluatorsApiService = class {
1627
1634
 
1628
1635
  // src/index.ts
1629
1636
  var logger = {
1630
- ConsoleLogger: _chunkZSALL3F3js.ConsoleLogger,
1631
- NoOpLogger: _chunkZSALL3F3js.NoOpLogger
1637
+ ConsoleLogger: _chunk5LYWRKDFjs.ConsoleLogger,
1638
+ NoOpLogger: _chunk5LYWRKDFjs.NoOpLogger
1632
1639
  };
1633
1640
 
1634
1641
 
@@ -1653,5 +1660,5 @@ var logger = {
1653
1660
 
1654
1661
 
1655
1662
 
1656
- 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 = _chunk5FBGDIHXjs.FetchPolicy; exports.FilterableBatchSpanProcessor = _chunkCQ6LE6V4js.FilterableBatchSpanProcessor; exports.LangWatch = LangWatch; exports.LangWatchExporter = _chunkBJFZUNQPjs.LangWatchTraceExporter; exports.TargetMetadataConflictError = TargetMetadataConflictError; exports.attributes = _chunkZSALL3F3js.attributes_exports; exports.getLangWatchLogger = _chunkBJFZUNQPjs.getLangWatchLogger; exports.getLangWatchTracer = _chunkIRGFB3BVjs.getLangWatchTracer; exports.logger = logger;
1663
+ 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 = _chunkEHWKVO46js.FetchPolicy; exports.FilterableBatchSpanProcessor = _chunkQNT5P6VVjs.FilterableBatchSpanProcessor; exports.LangWatch = LangWatch; exports.LangWatchExporter = _chunkDKEWJFMOjs.LangWatchTraceExporter; exports.TargetMetadataConflictError = TargetMetadataConflictError; exports.attributes = _chunk5LYWRKDFjs.attributes_exports; exports.getLangWatchLogger = _chunkDKEWJFMOjs.getLangWatchLogger; exports.getLangWatchTracer = _chunkODBP2KFBjs.getLangWatchTracer; exports.logger = logger;
1657
1664
  //# sourceMappingURL=index.js.map