langwatch 0.3.2 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/dist/{add-LBBS4I3H.js → add-RGWB3264.js} +35 -28
  2. package/dist/add-RGWB3264.js.map +1 -0
  3. package/dist/{add-RD3ZKFAT.mjs → add-WLUMK5VQ.mjs} +23 -16
  4. package/dist/add-WLUMK5VQ.mjs.map +1 -0
  5. package/dist/chunk-4ILMGMAP.mjs +155 -0
  6. package/dist/chunk-4ILMGMAP.mjs.map +1 -0
  7. package/dist/chunk-4TF2O2TH.js +207 -0
  8. package/dist/chunk-4TF2O2TH.js.map +1 -0
  9. package/dist/chunk-5N5BUR2Z.js +636 -0
  10. package/dist/chunk-5N5BUR2Z.js.map +1 -0
  11. package/dist/chunk-AZELEDOV.js +155 -0
  12. package/dist/chunk-AZELEDOV.js.map +1 -0
  13. package/dist/{chunk-YN4436PK.mjs → chunk-CU3443HD.mjs} +14 -9
  14. package/dist/{chunk-2JU376G7.js → chunk-D2CSG4SJ.js} +4 -4
  15. package/dist/chunk-D2CSG4SJ.js.map +1 -0
  16. package/dist/chunk-DEVJ7BPE.js +63 -0
  17. package/dist/chunk-DEVJ7BPE.js.map +1 -0
  18. package/dist/chunk-DISMHYXC.js +184 -0
  19. package/dist/chunk-DISMHYXC.js.map +1 -0
  20. package/dist/{chunk-E7UE2MPD.mjs → chunk-ECUXLXFT.mjs} +2 -2
  21. package/dist/chunk-EJWJXTPU.mjs +626 -0
  22. package/dist/chunk-EJWJXTPU.mjs.map +1 -0
  23. package/dist/chunk-FQSWUK5N.mjs +63 -0
  24. package/dist/chunk-FQSWUK5N.mjs.map +1 -0
  25. package/dist/{chunk-3GKPQB4R.mjs → chunk-HUI45ULC.mjs} +4 -4
  26. package/dist/chunk-HUI45ULC.mjs.map +1 -0
  27. package/dist/chunk-IZ2U3ABC.mjs +636 -0
  28. package/dist/chunk-IZ2U3ABC.mjs.map +1 -0
  29. package/dist/{chunk-HJU67C7H.js → chunk-K64Y6YUG.js} +10 -10
  30. package/dist/{chunk-HJU67C7H.js.map → chunk-K64Y6YUG.js.map} +1 -1
  31. package/dist/chunk-M4VUHTT2.js +626 -0
  32. package/dist/chunk-M4VUHTT2.js.map +1 -0
  33. package/dist/{chunk-PR3JDWC3.mjs → chunk-N2V6J3U2.mjs} +28 -3
  34. package/dist/chunk-N2V6J3U2.mjs.map +1 -0
  35. package/dist/{chunk-FJLK5CFL.js → chunk-OXBO24RB.js} +13 -8
  36. package/dist/chunk-OXBO24RB.js.map +1 -0
  37. package/dist/{chunk-SMXXAVMB.js → chunk-SGNJDRCT.js} +2 -2
  38. package/dist/chunk-SGNJDRCT.js.map +1 -0
  39. package/dist/{chunk-W5ZEP3CI.mjs → chunk-SYMZPWZE.mjs} +2 -2
  40. package/dist/chunk-SYMZPWZE.mjs.map +1 -0
  41. package/dist/{chunk-KGDAENGD.js → chunk-YH5TIVK2.js} +28 -3
  42. package/dist/chunk-YH5TIVK2.js.map +1 -0
  43. package/dist/chunk-YNQ44U6D.mjs +184 -0
  44. package/dist/chunk-YNQ44U6D.mjs.map +1 -0
  45. package/dist/chunk-ZJZ3MIWE.mjs +207 -0
  46. package/dist/chunk-ZJZ3MIWE.mjs.map +1 -0
  47. package/dist/cli/index.js +8 -8
  48. package/dist/cli/index.mjs +8 -8
  49. package/dist/{create-G5MTGOOH.js → create-7K2CC4KQ.js} +11 -11
  50. package/dist/{create-G5MTGOOH.js.map → create-7K2CC4KQ.js.map} +1 -1
  51. package/dist/{create-QUZYBMQB.mjs → create-MK7NEGCM.mjs} +8 -8
  52. package/dist/implementation-C4lvooSg.d.mts +576 -0
  53. package/dist/implementation-CzemP9jY.d.ts +576 -0
  54. package/dist/index-DTEZr0Jn.d.mts +34 -0
  55. package/dist/index-DTEZr0Jn.d.ts +34 -0
  56. package/dist/index.d.mts +121 -47
  57. package/dist/index.d.ts +121 -47
  58. package/dist/index.js +17 -12
  59. package/dist/index.js.map +1 -1
  60. package/dist/index.mjs +28 -23
  61. package/dist/index.mjs.map +1 -1
  62. package/dist/init-GDKJICSS.js +16 -0
  63. package/dist/{init-XU2JFY6N.js.map → init-GDKJICSS.js.map} +1 -1
  64. package/dist/{init-H67RW22E.mjs → init-RINSTP4L.mjs} +5 -5
  65. package/dist/{list-ZXFLAF52.js → list-DBUK47MA.js} +30 -17
  66. package/dist/list-DBUK47MA.js.map +1 -0
  67. package/dist/{list-7NPSX2E4.mjs → list-ZOMRKOBV.mjs} +29 -16
  68. package/dist/list-ZOMRKOBV.mjs.map +1 -0
  69. package/dist/{login-76NQIHKR.js → login-A7LEPNBR.js} +8 -4
  70. package/dist/login-A7LEPNBR.js.map +1 -0
  71. package/dist/{login-EK4WVOI2.mjs → login-ULPHWIAX.mjs} +8 -4
  72. package/dist/login-ULPHWIAX.mjs.map +1 -0
  73. package/dist/observability-sdk/index.d.mts +134 -0
  74. package/dist/observability-sdk/index.d.ts +134 -0
  75. package/dist/observability-sdk/index.js +42 -0
  76. package/dist/observability-sdk/index.js.map +1 -0
  77. package/dist/observability-sdk/index.mjs +42 -0
  78. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +69 -0
  79. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +69 -0
  80. package/dist/observability-sdk/instrumentation/langchain/index.js +518 -0
  81. package/dist/observability-sdk/instrumentation/langchain/index.js.map +1 -0
  82. package/dist/observability-sdk/instrumentation/langchain/index.mjs +518 -0
  83. package/dist/observability-sdk/instrumentation/langchain/index.mjs.map +1 -0
  84. package/dist/observability-sdk/setup/node/index.d.mts +368 -0
  85. package/dist/observability-sdk/setup/node/index.d.ts +368 -0
  86. package/dist/observability-sdk/setup/node/index.js +279 -0
  87. package/dist/observability-sdk/setup/node/index.js.map +1 -0
  88. package/dist/observability-sdk/setup/node/index.mjs +279 -0
  89. package/dist/observability-sdk/setup/node/index.mjs.map +1 -0
  90. package/dist/{remove-XBNGIVMR.js → remove-ODTJLFWR.js} +19 -15
  91. package/dist/remove-ODTJLFWR.js.map +1 -0
  92. package/dist/{remove-SDJYEPAY.mjs → remove-RAJBGHQQ.mjs} +12 -8
  93. package/dist/remove-RAJBGHQQ.mjs.map +1 -0
  94. package/dist/{sync-ST2IWXSB.mjs → sync-2IXPWN64.mjs} +40 -33
  95. package/dist/sync-2IXPWN64.mjs.map +1 -0
  96. package/dist/{sync-EISKGPTL.js → sync-PBOL5ODF.js} +53 -46
  97. package/dist/sync-PBOL5ODF.js.map +1 -0
  98. package/dist/{prompt-D-jpMrLS.d.mts → types-1q5wIYP5.d.mts} +628 -14
  99. package/dist/{prompt-D-jpMrLS.d.ts → types-C9k5gGhU.d.ts} +628 -14
  100. package/dist/types-DRiQaKFG.d.mts +254 -0
  101. package/dist/types-DRiQaKFG.d.ts +254 -0
  102. package/dist/types-Dmazk5Bk.d.mts +44 -0
  103. package/dist/types-Dmazk5Bk.d.ts +44 -0
  104. package/package.json +39 -39
  105. package/dist/add-LBBS4I3H.js.map +0 -1
  106. package/dist/add-RD3ZKFAT.mjs.map +0 -1
  107. package/dist/chunk-2JU376G7.js.map +0 -1
  108. package/dist/chunk-2ODBGSBI.js +0 -4
  109. package/dist/chunk-2ODBGSBI.js.map +0 -1
  110. package/dist/chunk-3GKPQB4R.mjs.map +0 -1
  111. package/dist/chunk-52GXX3MA.js +0 -426
  112. package/dist/chunk-52GXX3MA.js.map +0 -1
  113. package/dist/chunk-5NC5ILKA.js +0 -94
  114. package/dist/chunk-5NC5ILKA.js.map +0 -1
  115. package/dist/chunk-AAROJADR.mjs +0 -49
  116. package/dist/chunk-AAROJADR.mjs.map +0 -1
  117. package/dist/chunk-DTEKFQ4U.js +0 -159
  118. package/dist/chunk-DTEKFQ4U.js.map +0 -1
  119. package/dist/chunk-F63YKTXA.mjs +0 -47
  120. package/dist/chunk-F63YKTXA.mjs.map +0 -1
  121. package/dist/chunk-FJLK5CFL.js.map +0 -1
  122. package/dist/chunk-GJSEBQXF.mjs +0 -392
  123. package/dist/chunk-GJSEBQXF.mjs.map +0 -1
  124. package/dist/chunk-IGHXIIIK.js +0 -49
  125. package/dist/chunk-IGHXIIIK.js.map +0 -1
  126. package/dist/chunk-J7ICRUU4.mjs +0 -426
  127. package/dist/chunk-J7ICRUU4.mjs.map +0 -1
  128. package/dist/chunk-KGDAENGD.js.map +0 -1
  129. package/dist/chunk-LD74LVRU.js +0 -47
  130. package/dist/chunk-LD74LVRU.js.map +0 -1
  131. package/dist/chunk-PCQVQ7SB.js +0 -45
  132. package/dist/chunk-PCQVQ7SB.js.map +0 -1
  133. package/dist/chunk-PR3JDWC3.mjs.map +0 -1
  134. package/dist/chunk-PWZBLTHR.js +0 -118
  135. package/dist/chunk-PWZBLTHR.js.map +0 -1
  136. package/dist/chunk-QEWDG5QE.mjs +0 -45
  137. package/dist/chunk-QEWDG5QE.mjs.map +0 -1
  138. package/dist/chunk-SMXXAVMB.js.map +0 -1
  139. package/dist/chunk-STV4ZVNA.mjs +0 -118
  140. package/dist/chunk-STV4ZVNA.mjs.map +0 -1
  141. package/dist/chunk-T5AZMMVS.mjs +0 -94
  142. package/dist/chunk-T5AZMMVS.mjs.map +0 -1
  143. package/dist/chunk-UU33HCCZ.mjs +0 -159
  144. package/dist/chunk-UU33HCCZ.mjs.map +0 -1
  145. package/dist/chunk-VGHLQXKB.js +0 -392
  146. package/dist/chunk-VGHLQXKB.js.map +0 -1
  147. package/dist/chunk-W5ZEP3CI.mjs.map +0 -1
  148. package/dist/chunk-Y666BJA5.mjs +0 -4
  149. package/dist/chunk-YN4436PK.mjs.map +0 -1
  150. package/dist/client-B2HqIKg6.d.ts +0 -51
  151. package/dist/client-XyCqclCi.d.mts +0 -51
  152. package/dist/client-browser.d.mts +0 -8
  153. package/dist/client-browser.d.ts +0 -8
  154. package/dist/client-browser.js +0 -88
  155. package/dist/client-browser.js.map +0 -1
  156. package/dist/client-browser.mjs +0 -88
  157. package/dist/client-browser.mjs.map +0 -1
  158. package/dist/client-node.d.mts +0 -8
  159. package/dist/client-node.d.ts +0 -8
  160. package/dist/client-node.js +0 -95
  161. package/dist/client-node.js.map +0 -1
  162. package/dist/client-node.mjs +0 -95
  163. package/dist/client-node.mjs.map +0 -1
  164. package/dist/evaluation/index.d.mts +0 -897
  165. package/dist/evaluation/index.d.ts +0 -897
  166. package/dist/evaluation/index.js +0 -14
  167. package/dist/evaluation/index.js.map +0 -1
  168. package/dist/evaluation/index.mjs +0 -14
  169. package/dist/filterable-batch-span-processor-zO5kcjBY.d.mts +0 -64
  170. package/dist/filterable-batch-span-processor-zO5kcjBY.d.ts +0 -64
  171. package/dist/init-XU2JFY6N.js +0 -16
  172. package/dist/list-7NPSX2E4.mjs.map +0 -1
  173. package/dist/list-ZXFLAF52.js.map +0 -1
  174. package/dist/login-76NQIHKR.js.map +0 -1
  175. package/dist/login-EK4WVOI2.mjs.map +0 -1
  176. package/dist/observability/index.d.mts +0 -260
  177. package/dist/observability/index.d.ts +0 -260
  178. package/dist/observability/index.js +0 -21
  179. package/dist/observability/index.js.map +0 -1
  180. package/dist/observability/index.mjs +0 -21
  181. package/dist/observability/index.mjs.map +0 -1
  182. package/dist/observability/instrumentation/langchain/index.d.mts +0 -40
  183. package/dist/observability/instrumentation/langchain/index.d.ts +0 -40
  184. package/dist/observability/instrumentation/langchain/index.js +0 -668
  185. package/dist/observability/instrumentation/langchain/index.js.map +0 -1
  186. package/dist/observability/instrumentation/langchain/index.mjs +0 -668
  187. package/dist/observability/instrumentation/langchain/index.mjs.map +0 -1
  188. package/dist/prompt/index.d.mts +0 -10
  189. package/dist/prompt/index.d.ts +0 -10
  190. package/dist/prompt/index.js +0 -22
  191. package/dist/prompt/index.js.map +0 -1
  192. package/dist/prompt/index.mjs +0 -22
  193. package/dist/prompt/index.mjs.map +0 -1
  194. package/dist/record-evaluation-CmxMXa-3.d.mts +0 -25
  195. package/dist/record-evaluation-CmxMXa-3.d.ts +0 -25
  196. package/dist/remove-SDJYEPAY.mjs.map +0 -1
  197. package/dist/remove-XBNGIVMR.js.map +0 -1
  198. package/dist/sync-EISKGPTL.js.map +0 -1
  199. package/dist/sync-ST2IWXSB.mjs.map +0 -1
  200. package/dist/trace-CqaKo0kZ.d.ts +0 -622
  201. package/dist/trace-DtVc5GhF.d.mts +0 -622
  202. /package/dist/{chunk-Y666BJA5.mjs.map → chunk-CU3443HD.mjs.map} +0 -0
  203. /package/dist/{chunk-E7UE2MPD.mjs.map → chunk-ECUXLXFT.mjs.map} +0 -0
  204. /package/dist/{create-QUZYBMQB.mjs.map → create-MK7NEGCM.mjs.map} +0 -0
  205. /package/dist/{init-H67RW22E.mjs.map → init-RINSTP4L.mjs.map} +0 -0
  206. /package/dist/{evaluation → observability-sdk}/index.mjs.map +0 -0
@@ -0,0 +1,207 @@
1
+ import {
2
+ DEFAULT_ENDPOINT,
3
+ LANGWATCH_SDK_LANGUAGE,
4
+ LANGWATCH_SDK_NAME_OBSERVABILITY,
5
+ LANGWATCH_SDK_RUNTIME,
6
+ LANGWATCH_SDK_VERSION,
7
+ LOGS_PATH,
8
+ TRACES_PATH
9
+ } from "./chunk-FQSWUK5N.mjs";
10
+ import {
11
+ shouldCaptureOutput
12
+ } from "./chunk-YNQ44U6D.mjs";
13
+ import {
14
+ __spreadProps,
15
+ __spreadValues
16
+ } from "./chunk-CU3443HD.mjs";
17
+
18
+ // src/observability-sdk/exporters/langwatch-trace-exporter.ts
19
+ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
20
+ var LangWatchTraceExporter = class extends OTLPTraceExporter {
21
+ /**
22
+ * Creates a new LangWatchExporter instance.
23
+ *
24
+ * @param opts - Optional configuration options for the exporter
25
+ * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
26
+ * will use environment variables or fallback configuration.
27
+ * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
28
+ * If not provided, will use environment variables or fallback configuration.
29
+ * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version
30
+ * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version
31
+ */
32
+ constructor(opts) {
33
+ var _a, _b, _c, _d;
34
+ const apiKey = (_b = (_a = opts == null ? void 0 : opts.apiKey) != null ? _a : process.env.LANGWATCH_API_KEY) != null ? _b : "";
35
+ const endpoint = (_d = (_c = opts == null ? void 0 : opts.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : DEFAULT_ENDPOINT;
36
+ if (opts && opts.includeAllSpans !== void 0) {
37
+ console.warn(
38
+ "[LangWatchExporter] The behavior of `includeAllSpans` is deprecated and will be removed in a future version"
39
+ );
40
+ }
41
+ if (opts && opts.debug !== void 0) {
42
+ console.warn(
43
+ "[LangWatchExporter] The behavior of `debug` is deprecated and will be removed in a future version"
44
+ );
45
+ }
46
+ const url = new URL(TRACES_PATH, endpoint);
47
+ const otelEndpoint = url.toString();
48
+ super({
49
+ headers: __spreadValues({
50
+ "x-langwatch-sdk-name": LANGWATCH_SDK_NAME_OBSERVABILITY,
51
+ "x-langwatch-sdk-language": LANGWATCH_SDK_LANGUAGE,
52
+ "x-langwatch-sdk-version": LANGWATCH_SDK_VERSION,
53
+ "x-langwatch-sdk-runtime": LANGWATCH_SDK_RUNTIME()
54
+ }, apiKey ? { authorization: `Bearer ${apiKey}` } : {}),
55
+ url: otelEndpoint.toString()
56
+ });
57
+ }
58
+ };
59
+
60
+ // src/observability-sdk/exporters/langwatch-logs-exporter.ts
61
+ import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
62
+ var LangWatchLogsExporter = class extends OTLPLogExporter {
63
+ /**
64
+ * Creates a new LangWatchLogsExporter instance.
65
+ *
66
+ * @param opts - Optional configuration options for the exporter.
67
+ * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
68
+ * will use environment variables or fallback configuration.
69
+ * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
70
+ * If not provided, will use environment variables or fallback configuration.
71
+ */
72
+ constructor(opts) {
73
+ var _a, _b, _c, _d;
74
+ const apiKey = (_b = (_a = opts == null ? void 0 : opts.apiKey) != null ? _a : process.env.LANGWATCH_API_KEY) != null ? _b : "";
75
+ const endpoint = (_d = (_c = opts == null ? void 0 : opts.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : DEFAULT_ENDPOINT;
76
+ const url = new URL(LOGS_PATH, endpoint);
77
+ const otelEndpoint = url.toString();
78
+ super({
79
+ headers: __spreadValues({
80
+ "x-langwatch-sdk-name": LANGWATCH_SDK_NAME_OBSERVABILITY,
81
+ "x-langwatch-sdk-language": LANGWATCH_SDK_LANGUAGE,
82
+ "x-langwatch-sdk-version": LANGWATCH_SDK_VERSION,
83
+ "x-langwatch-sdk-runtime": LANGWATCH_SDK_RUNTIME()
84
+ }, apiKey ? { authorization: `Bearer ${apiKey}` } : {}),
85
+ url: otelEndpoint.toString()
86
+ });
87
+ }
88
+ };
89
+
90
+ // src/observability-sdk/semconv/events.ts
91
+ var LOG_EVNT_GEN_AI_SYSTEM_MESSAGE = "gen.ai.system_message";
92
+ var LOG_EVNT_GEN_AI_USER_MESSAGE = "gen.ai.user_message";
93
+ var LOG_EVNT_GEN_AI_ASSISTANT_MESSAGE = "gen.ai.assistant_message";
94
+ var LOG_EVNT_GEN_AI_TOOL_MESSAGE = "gen.ai.tool_message";
95
+ var LOG_EVNT_GEN_AI_CHOICE = "gen.ai.choice";
96
+
97
+ // src/observability-sdk/logger/index.ts
98
+ import {
99
+ NoopLoggerProvider
100
+ } from "@opentelemetry/api-logs";
101
+
102
+ // src/observability-sdk/logger/implementation.ts
103
+ import { context } from "@opentelemetry/api";
104
+ var LangWatchLoggerInternal = class {
105
+ constructor(logger) {
106
+ this.logger = logger;
107
+ }
108
+ emit(logRecord, options) {
109
+ if (!shouldCaptureOutput()) {
110
+ logRecord.body = void 0;
111
+ }
112
+ if (!logRecord.context && !(options == null ? void 0 : options.excludeContext)) {
113
+ logRecord.context = context.active();
114
+ }
115
+ this.logger.emit(logRecord);
116
+ }
117
+ emitGenAISystemMessageEvent(body, system, attributes) {
118
+ var _a;
119
+ this.emitGenAIEvent(
120
+ LOG_EVNT_GEN_AI_SYSTEM_MESSAGE,
121
+ __spreadProps(__spreadValues({}, body), { role: (_a = body.role) != null ? _a : "system" }),
122
+ __spreadProps(__spreadValues({}, attributes), {
123
+ "gen_ai.system": system
124
+ })
125
+ );
126
+ }
127
+ emitGenAIUserMessageEvent(body, system, attributes) {
128
+ var _a;
129
+ this.emitGenAIEvent(
130
+ LOG_EVNT_GEN_AI_USER_MESSAGE,
131
+ __spreadProps(__spreadValues({}, body), { role: (_a = body.role) != null ? _a : "user" }),
132
+ __spreadProps(__spreadValues({}, attributes), {
133
+ "gen_ai.system": system
134
+ })
135
+ );
136
+ }
137
+ emitGenAIAssistantMessageEvent(body, system, attributes) {
138
+ var _a;
139
+ this.emitGenAIEvent(
140
+ LOG_EVNT_GEN_AI_ASSISTANT_MESSAGE,
141
+ __spreadProps(__spreadValues({}, body), { role: (_a = body.role) != null ? _a : "assistant" }),
142
+ __spreadProps(__spreadValues({}, attributes), {
143
+ "gen_ai.system": system
144
+ })
145
+ );
146
+ }
147
+ emitGenAIToolMessageEvent(body, system, attributes) {
148
+ if (body.role === void 0) {
149
+ body.role = "tool";
150
+ }
151
+ this.emitGenAIEvent(
152
+ LOG_EVNT_GEN_AI_TOOL_MESSAGE,
153
+ __spreadValues({}, body),
154
+ __spreadProps(__spreadValues({}, attributes), {
155
+ "gen_ai.system": system
156
+ })
157
+ );
158
+ }
159
+ emitGenAIChoiceEvent(body, system, attributes) {
160
+ var _a, _b;
161
+ if (body.message && body.message.role === void 0) {
162
+ body.message.role = "assistant";
163
+ }
164
+ this.emitGenAIEvent(
165
+ LOG_EVNT_GEN_AI_CHOICE,
166
+ __spreadProps(__spreadValues({}, body), {
167
+ message: __spreadProps(__spreadValues({}, body.message), { role: (_b = (_a = body.message) == null ? void 0 : _a.role) != null ? _b : "assistant" })
168
+ }),
169
+ __spreadProps(__spreadValues({}, attributes), {
170
+ "gen_ai.system": system
171
+ })
172
+ );
173
+ }
174
+ emitGenAIEvent(eventName, body, attributes) {
175
+ this.emit({
176
+ eventName,
177
+ context: context.active(),
178
+ attributes: __spreadValues({}, attributes),
179
+ body: shouldCaptureOutput() ? body : void 0,
180
+ observedTimestamp: (/* @__PURE__ */ new Date()).getTime()
181
+ });
182
+ }
183
+ };
184
+
185
+ // src/observability-sdk/logger/index.ts
186
+ var currentLoggerProvider = new NoopLoggerProvider();
187
+ function setLangWatchLoggerProvider(loggerProvider) {
188
+ currentLoggerProvider = loggerProvider;
189
+ }
190
+ function getLangWatchLogger(name, version) {
191
+ return getLangWatchLoggerFromProvider(currentLoggerProvider, name, version);
192
+ }
193
+ function getLangWatchLoggerFromProvider(loggerProvider, name, version) {
194
+ return createLangWatchLogger(loggerProvider.getLogger(name, version));
195
+ }
196
+ function createLangWatchLogger(logger) {
197
+ return new LangWatchLoggerInternal(logger);
198
+ }
199
+
200
+ export {
201
+ LangWatchTraceExporter,
202
+ LangWatchLogsExporter,
203
+ setLangWatchLoggerProvider,
204
+ getLangWatchLogger,
205
+ getLangWatchLoggerFromProvider
206
+ };
207
+ //# sourceMappingURL=chunk-ZJZ3MIWE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/observability-sdk/exporters/langwatch-trace-exporter.ts","../src/observability-sdk/exporters/langwatch-logs-exporter.ts","../src/observability-sdk/semconv/events.ts","../src/observability-sdk/logger/index.ts","../src/observability-sdk/logger/implementation.ts"],"sourcesContent":["import { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\";\nimport {\n DEFAULT_ENDPOINT,\n LANGWATCH_SDK_LANGUAGE,\n LANGWATCH_SDK_NAME_OBSERVABILITY,\n LANGWATCH_SDK_RUNTIME,\n LANGWATCH_SDK_VERSION,\n TRACES_PATH,\n} from \"../../internal/constants\";\n\nexport interface LangWatchTraceExporterOptions {\n endpoint?: string;\n apiKey?: string;\n includeAllSpans?: boolean;\n debug?: boolean;\n}\n\n/**\n * LangWatchTraceExporter extends the OpenTelemetry OTLP HTTP trace exporter\n * to send trace data to LangWatch with proper authentication and metadata headers.\n *\n * This exporter automatically configures:\n * - Authorization headers using the provided API key or environment variables/fallback\n * - SDK version and language identification headers\n * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback\n *\n * @example\n * ```typescript\n * import { LangWatchTraceExporter } from '@langwatch/observability';\n *\n * // Using environment variables/fallback configuration\n * const exporter = new LangWatchTraceExporter();\n *\n * // Using custom options\n * const exporter = new LangWatchTraceExporter({\n * apiKey: 'your-api-key',\n * endpoint: 'https://custom.langwatch.com'\n * });\n * ```\n */\nexport class LangWatchTraceExporter extends OTLPTraceExporter {\n /**\n * Creates a new LangWatchExporter instance.\n *\n * @param opts - Optional configuration options for the exporter\n * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,\n * will use environment variables or fallback configuration.\n * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.\n * If not provided, will use environment variables or fallback configuration.\n * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version\n * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version\n */\n constructor(opts?: LangWatchTraceExporterOptions) {\n const apiKey = opts?.apiKey ?? process.env.LANGWATCH_API_KEY ?? \"\";\n const endpoint =\n opts?.endpoint ??\n process.env.LANGWATCH_ENDPOINT ??\n DEFAULT_ENDPOINT;\n\n if (opts && opts.includeAllSpans !== void 0) {\n console.warn(\n \"[LangWatchExporter] The behavior of `includeAllSpans` is deprecated and will be removed in a future version\",\n );\n }\n if (opts && opts.debug !== void 0) {\n console.warn(\n \"[LangWatchExporter] The behavior of `debug` is deprecated and will be removed in a future version\",\n );\n }\n\n const url = new URL(TRACES_PATH, endpoint);\n const otelEndpoint = url.toString();\n\n super({\n headers: {\n \"x-langwatch-sdk-name\": LANGWATCH_SDK_NAME_OBSERVABILITY,\n \"x-langwatch-sdk-language\": LANGWATCH_SDK_LANGUAGE,\n \"x-langwatch-sdk-version\": LANGWATCH_SDK_VERSION,\n \"x-langwatch-sdk-runtime\": LANGWATCH_SDK_RUNTIME(),\n ...(apiKey ? { authorization: `Bearer ${apiKey}` } : {}),\n },\n url: otelEndpoint.toString(),\n });\n }\n}\n","import { OTLPLogExporter } from \"@opentelemetry/exporter-logs-otlp-http\";\nimport {\n DEFAULT_ENDPOINT,\n LANGWATCH_SDK_LANGUAGE,\n LANGWATCH_SDK_NAME_OBSERVABILITY,\n LANGWATCH_SDK_RUNTIME,\n LANGWATCH_SDK_VERSION,\n LOGS_PATH,\n} from \"../../internal/constants\";\n\nexport interface LangWatchLogsExporterOptions {\n endpoint?: string;\n apiKey?: string;\n}\n\n/**\n * LangWatchLogsExporter extends the OpenTelemetry OTLP HTTP logs exporter\n * to send logs to LangWatch with proper authentication and metadata headers.\n *\n * This exporter automatically configures:\n * - Authorization headers using the provided API key or environment variables/fallback\n * - SDK version and language identification headers\n * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback\n *\n * @example\n * ```typescript\n * import { LangWatchLogsExporter } from '@langwatch/observability';\n *\n * // Using environment variables/fallback configuration\n * const exporter = new LangWatchLogsExporter();\n *\n * // Using custom options\n * const exporter = new LangWatchLogsExporter({\n * apiKey: 'your-api-key',\n * endpoint: 'https://custom.langwatch.com'\n * });\n * ```\n */\nexport class LangWatchLogsExporter extends OTLPLogExporter {\n /**\n * Creates a new LangWatchLogsExporter instance.\n *\n * @param opts - Optional configuration options for the exporter.\n * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,\n * will use environment variables or fallback configuration.\n * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.\n * If not provided, will use environment variables or fallback configuration.\n */\n constructor(opts?: LangWatchLogsExporterOptions) {\n const apiKey = opts?.apiKey ?? process.env.LANGWATCH_API_KEY ?? \"\";\n const endpoint =\n opts?.endpoint ??\n process.env.LANGWATCH_ENDPOINT ??\n DEFAULT_ENDPOINT;\n\n const url = new URL(LOGS_PATH, endpoint);\n const otelEndpoint = url.toString();\n\n super({\n headers: {\n \"x-langwatch-sdk-name\": LANGWATCH_SDK_NAME_OBSERVABILITY,\n \"x-langwatch-sdk-language\": LANGWATCH_SDK_LANGUAGE,\n \"x-langwatch-sdk-version\": LANGWATCH_SDK_VERSION,\n \"x-langwatch-sdk-runtime\": LANGWATCH_SDK_RUNTIME(),\n ...(apiKey ? { authorization: `Bearer ${apiKey}` } : {}),\n },\n url: otelEndpoint.toString(),\n });\n }\n}\n","/*\n This file contains the values for the OpenTelemetry semantic conventions for GenAI log\n record event names.\n\n 👉 https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-events/\n*/\n\n/**\n * GenAI system message event name\n * Used for log records representing system messages in AI conversations\n */\nexport const LOG_EVNT_GEN_AI_SYSTEM_MESSAGE = \"gen.ai.system_message\";\n\n/**\n * GenAI user message event name\n * Used for log records representing user messages in AI conversations\n */\nexport const LOG_EVNT_GEN_AI_USER_MESSAGE = \"gen.ai.user_message\";\n\n/**\n * GenAI assistant message event name\n * Used for log records representing assistant responses in AI conversations\n */\nexport const LOG_EVNT_GEN_AI_ASSISTANT_MESSAGE = \"gen.ai.assistant_message\";\n\n/**\n * GenAI tool message event name\n * Used for log records representing tool calls or responses in AI conversations\n */\nexport const LOG_EVNT_GEN_AI_TOOL_MESSAGE = \"gen.ai.tool_message\";\n\n/**\n * GenAI choice event name\n * Used for log records representing choices made by AI models\n */\nexport const LOG_EVNT_GEN_AI_CHOICE = \"gen.ai.choice\";\n\n/**\n * LangWatch LangChain callback event name\n * Used for log records representing LangChain callback events\n */\nexport const EVNT_LANGWATCH_LANGCHAIN_CALLBACK = \"langwatch.langchain.callback\";\n","import {\n type Logger,\n type LoggerProvider,\n NoopLoggerProvider,\n} from \"@opentelemetry/api-logs\";\nimport {\n type LangWatchLogger,\n} from \"./types\";\nimport { LangWatchLoggerInternal } from \"./implementation\";\n\n/**\n * The LangWatch-specific global logger provider. It may not be the same as the current\n * OpenTelemetry global logger provider, but it's the last one the `setupObservability`\n * knows about.\n * @internal\n */\nlet currentLoggerProvider: LoggerProvider = new NoopLoggerProvider();\n\n/**\n * @module observability/logger\n * @description\n * Provides LangWatch logger integration with OpenTelemetry, including logger provider\n * management and logger creation utilities.\n *\n * @remarks\n * This module allows you to set a global logger provider, retrieve LangWatch loggers,\n * and wrap OpenTelemetry loggers with LangWatch-specific functionality.\n *\n * @see {@link setLangWatchLoggerProvider}\n * @see {@link getLangWatchLogger}\n * @see {@link getLangWatchLoggerFromProvider}\n * @see {@link createLangWatchLogger}\n */\nexport function setLangWatchLoggerProvider(\n loggerProvider: LoggerProvider,\n): void {\n currentLoggerProvider = loggerProvider;\n}\n\n/**\n * Retrieves a LangWatch logger with the specified name and optional version.\n *\n * @param name - The name of the logger (typically your service or module name).\n * @param version - (Optional) The version of the logger.\n * @returns A {@link LangWatchLogger} instance.\n *\n * @remarks\n * Uses the logger provider set during observability setup. If no provider is set, returns\n * a NoOp logger.\n *\n * @example\n * ```ts\n * const logger = getLangWatchLogger(\"my-service\");\n * logger.info(\"Service started\");\n * ```\n *\n * @see {@link setLangWatchLoggerProvider}\n */\nexport function getLangWatchLogger(\n name: string,\n version?: string,\n): LangWatchLogger {\n return getLangWatchLoggerFromProvider(currentLoggerProvider, name, version);\n}\n\n/**\n * Retrieves a LangWatch logger from a specific OpenTelemetry logger provider.\n *\n * @param loggerProvider - The OpenTelemetry logger provider to use.\n * @param name - The name of the logger.\n * @param version - (Optional) The version of the logger.\n * @returns A {@link LangWatchLogger} instance.\n *\n * @remarks\n * Use this function if you want to use a custom logger provider instead of the global one.\n *\n * @example\n * ```ts\n * const customProvider = new LoggerProvider();\n * const logger = getLangWatchLoggerFromProvider(customProvider, \"custom-service\");\n * ```\n */\nexport function getLangWatchLoggerFromProvider(\n loggerProvider: LoggerProvider,\n name: string,\n version?: string,\n): LangWatchLogger {\n return createLangWatchLogger(loggerProvider.getLogger(name, version));\n}\n\n/**\n * Wraps an OpenTelemetry logger as a LangWatch logger.\n *\n * @param logger - The OpenTelemetry logger to wrap.\n * @returns A {@link LangWatchLogger} instance.\n *\n * @example\n * ```ts\n * import { Logger } from \"@opentelemetry/api-logs\";\n * const otelLogger = new Logger();\n * const lwLogger = createLangWatchLogger(otelLogger);\n * lwLogger.info(\"Wrapped logger\");\n * ```\n */\nexport function createLangWatchLogger(logger: Logger): LangWatchLogger {\n return new LangWatchLoggerInternal(logger);\n}\n\n// Export types and implementation\nexport * from \"./types\";\nexport * from \"./implementation\";\n","import {\n type AnyValue,\n type Logger,\n} from \"@opentelemetry/api-logs\";\nimport {\n type EmitOptions,\n type LangWatchLogger,\n type LangWatchLogRecord,\n type LangWatchSpanGenAIAssistantMessageEventBody,\n type LangWatchSpanGenAIChoiceEventBody,\n type LangWatchSpanGenAISystemMessageEventBody,\n type LangWatchSpanGenAIToolMessageEventBody,\n type LangWatchSpanGenAIUserMessageEventBody,\n} from \"./types\";\nimport { shouldCaptureOutput } from \"../config\";\nimport * as intSemconv from \"../semconv\";\nimport { type SemConvLogRecordAttributes } from \"../semconv\";\nimport { context } from \"@opentelemetry/api\";\n\n/**\n * Internal implementation of {@link LangWatchLogger}.\n *\n * @remarks\n * This class wraps an OpenTelemetry logger and adds LangWatch-specific functionality for\n * structured logging and event emission.\n * Not intended for direct use; use {@link getLangWatchLogger} or\n * {@link createLangWatchLogger} instead.\n */\nexport class LangWatchLoggerInternal implements LangWatchLogger {\n constructor(private logger: Logger) {}\n\n emit(logRecord: LangWatchLogRecord, options?: EmitOptions): void {\n // Handle output capture configuration\n if (!shouldCaptureOutput()) {\n logRecord.body = void 0;\n }\n\n // Set context if not provided and not explicitly excluded\n if (!logRecord.context && !options?.excludeContext) {\n logRecord.context = context.active();\n }\n\n // Emit the log record through the underlying OpenTelemetry logger\n this.logger.emit(logRecord);\n }\n\n emitGenAISystemMessageEvent(\n body: LangWatchSpanGenAISystemMessageEventBody,\n system?: intSemconv.VAL_GEN_AI_SYSTEMS | (string & {}),\n attributes?: SemConvLogRecordAttributes,\n ): void {\n this.emitGenAIEvent(\n intSemconv.LOG_EVNT_GEN_AI_SYSTEM_MESSAGE,\n { ...body, role: body.role ?? \"system\" } satisfies LangWatchSpanGenAISystemMessageEventBody,\n {\n ...attributes,\n \"gen_ai.system\": system,\n },\n );\n }\n\n emitGenAIUserMessageEvent(\n body: LangWatchSpanGenAIUserMessageEventBody,\n system?: intSemconv.VAL_GEN_AI_SYSTEMS | (string & {}),\n attributes?: SemConvLogRecordAttributes,\n ) {\n this.emitGenAIEvent(\n intSemconv.LOG_EVNT_GEN_AI_USER_MESSAGE,\n { ...body, role: body.role ?? \"user\" } satisfies LangWatchSpanGenAIUserMessageEventBody,\n {\n ...attributes,\n \"gen_ai.system\": system,\n },\n );\n }\n\n emitGenAIAssistantMessageEvent(\n body: LangWatchSpanGenAIAssistantMessageEventBody,\n system?: intSemconv.VAL_GEN_AI_SYSTEMS | (string & {}),\n attributes?: SemConvLogRecordAttributes,\n ) {\n this.emitGenAIEvent(\n intSemconv.LOG_EVNT_GEN_AI_ASSISTANT_MESSAGE,\n { ...body, role: body.role ?? \"assistant\" } satisfies LangWatchSpanGenAIAssistantMessageEventBody,\n {\n ...attributes,\n \"gen_ai.system\": system,\n },\n );\n }\n\n emitGenAIToolMessageEvent(\n body: LangWatchSpanGenAIToolMessageEventBody,\n system?: intSemconv.VAL_GEN_AI_SYSTEMS | (string & {}),\n attributes?: SemConvLogRecordAttributes,\n ) {\n if (body.role === void 0) {\n body.role = \"tool\";\n }\n\n this.emitGenAIEvent(\n intSemconv.LOG_EVNT_GEN_AI_TOOL_MESSAGE,\n { ...body },\n {\n ...attributes,\n \"gen_ai.system\": system,\n },\n );\n }\n\n emitGenAIChoiceEvent(\n body: LangWatchSpanGenAIChoiceEventBody,\n system?: intSemconv.VAL_GEN_AI_SYSTEMS | (string & {}),\n attributes?: SemConvLogRecordAttributes,\n ) {\n if (body.message && body.message.role === void 0) {\n body.message.role = \"assistant\";\n }\n\n this.emitGenAIEvent(\n intSemconv.LOG_EVNT_GEN_AI_CHOICE,\n {\n ...body,\n message: { ...body.message, role: body.message?.role ?? \"assistant\" },\n } satisfies LangWatchSpanGenAIChoiceEventBody,\n {\n ...attributes,\n \"gen_ai.system\": system,\n },\n );\n }\n\n private emitGenAIEvent(\n eventName: string,\n body: AnyValue,\n attributes?: SemConvLogRecordAttributes,\n ): void {\n this.emit({\n eventName,\n context: context.active(),\n attributes: { ...attributes },\n body: shouldCaptureOutput() ? body : void 0,\n observedTimestamp: new Date().getTime(),\n });\n }\n}\n"],"mappings":"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","names":[]}
package/dist/cli/index.js CHANGED
@@ -2,38 +2,38 @@
2
2
  "use strict"; function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
3
3
 
4
4
  var _chunkHA3LI5IKjs = require('../chunk-HA3LI5IK.js');
5
- require('../chunk-FJLK5CFL.js');
5
+ require('../chunk-OXBO24RB.js');
6
6
 
7
7
  // src/cli/index.ts
8
8
  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-LBBS4I3H.js")));
12
+ const { addCommand: addCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../add-RGWB3264.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-XBNGIVMR.js")));
16
+ const { removeCommand: removeCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../remove-ODTJLFWR.js")));
17
17
  return removeCommandImpl(name);
18
18
  };
19
19
  var initCommand = async () => {
20
- const { initCommand: initCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../init-XU2JFY6N.js")));
20
+ const { initCommand: initCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../init-GDKJICSS.js")));
21
21
  return initCommandImpl();
22
22
  };
23
23
  var loginCommand = async () => {
24
- const { loginCommand: loginCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../login-76NQIHKR.js")));
24
+ const { loginCommand: loginCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../login-A7LEPNBR.js")));
25
25
  return loginCommandImpl();
26
26
  };
27
27
  var listCommand = async () => {
28
- const { listCommand: listCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../list-ZXFLAF52.js")));
28
+ const { listCommand: listCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../list-DBUK47MA.js")));
29
29
  return listCommandImpl();
30
30
  };
31
31
  var syncCommand = async () => {
32
- const { syncCommand: syncCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../sync-EISKGPTL.js")));
32
+ const { syncCommand: syncCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../sync-PBOL5ODF.js")));
33
33
  return syncCommandImpl();
34
34
  };
35
35
  var createCommand = async (name, options) => {
36
- const { createCommand: createCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../create-G5MTGOOH.js")));
36
+ const { createCommand: createCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../create-7K2CC4KQ.js")));
37
37
  return createCommandImpl(name, options);
38
38
  };
39
39
  var program = new (0, _commander.Command)();
@@ -2,38 +2,38 @@
2
2
  import {
3
3
  parsePromptSpec
4
4
  } from "../chunk-4NRLVT2U.mjs";
5
- import "../chunk-YN4436PK.mjs";
5
+ import "../chunk-CU3443HD.mjs";
6
6
 
7
7
  // src/cli/index.ts
8
8
  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-RD3ZKFAT.mjs");
12
+ const { addCommand: addCommandImpl } = await import("../add-WLUMK5VQ.mjs");
13
13
  return addCommandImpl(name, options);
14
14
  };
15
15
  var removeCommand = async (name) => {
16
- const { removeCommand: removeCommandImpl } = await import("../remove-SDJYEPAY.mjs");
16
+ const { removeCommand: removeCommandImpl } = await import("../remove-RAJBGHQQ.mjs");
17
17
  return removeCommandImpl(name);
18
18
  };
19
19
  var initCommand = async () => {
20
- const { initCommand: initCommandImpl } = await import("../init-H67RW22E.mjs");
20
+ const { initCommand: initCommandImpl } = await import("../init-RINSTP4L.mjs");
21
21
  return initCommandImpl();
22
22
  };
23
23
  var loginCommand = async () => {
24
- const { loginCommand: loginCommandImpl } = await import("../login-EK4WVOI2.mjs");
24
+ const { loginCommand: loginCommandImpl } = await import("../login-ULPHWIAX.mjs");
25
25
  return loginCommandImpl();
26
26
  };
27
27
  var listCommand = async () => {
28
- const { listCommand: listCommandImpl } = await import("../list-7NPSX2E4.mjs");
28
+ const { listCommand: listCommandImpl } = await import("../list-ZOMRKOBV.mjs");
29
29
  return listCommandImpl();
30
30
  };
31
31
  var syncCommand = async () => {
32
- const { syncCommand: syncCommandImpl } = await import("../sync-ST2IWXSB.mjs");
32
+ const { syncCommand: syncCommandImpl } = await import("../sync-2IXPWN64.mjs");
33
33
  return syncCommandImpl();
34
34
  };
35
35
  var createCommand = async (name, options) => {
36
- const { createCommand: createCommandImpl } = await import("../create-QUZYBMQB.mjs");
36
+ const { createCommand: createCommandImpl } = await import("../create-MK7NEGCM.mjs");
37
37
  return createCommandImpl(name, options);
38
38
  };
39
39
  var program = new Command();
@@ -1,15 +1,15 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkHJU67C7Hjs = require('./chunk-HJU67C7H.js');
3
+ var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
4
4
 
5
5
 
6
- var _chunk2JU376G7js = require('./chunk-2JU376G7.js');
6
+ var _chunkK64Y6YUGjs = require('./chunk-K64Y6YUG.js');
7
7
 
8
8
 
9
- var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
9
+ var _chunkD2CSG4SJjs = require('./chunk-D2CSG4SJ.js');
10
+ require('./chunk-SGNJDRCT.js');
10
11
  require('./chunk-HA3LI5IK.js');
11
- require('./chunk-SMXXAVMB.js');
12
- require('./chunk-FJLK5CFL.js');
12
+ require('./chunk-OXBO24RB.js');
13
13
 
14
14
  // src/cli/commands/create.ts
15
15
  var _fs = require('fs'); var fs = _interopRequireWildcard(_fs);
@@ -22,7 +22,7 @@ var createCommand = async (name, options) => {
22
22
  process.exit(1);
23
23
  }
24
24
  _chunkF6E4XQQUjs.checkApiKey.call(void 0, );
25
- await _chunkHJU67C7Hjs.ensureProjectInitialized.call(void 0, );
25
+ await _chunkK64Y6YUGjs.ensureProjectInitialized.call(void 0, );
26
26
  const promptPath = path.join(process.cwd(), "prompts", `${name}.prompt.yaml`);
27
27
  if (fs.existsSync(promptPath)) {
28
28
  console.error(_chalk2.default.red(`Error: Prompt file already exists at ${promptPath}`));
@@ -42,11 +42,11 @@ messages:
42
42
  content: "{{input}}"
43
43
  `;
44
44
  fs.writeFileSync(promptPath, defaultContent, "utf8");
45
- const promptsConfig = _chunk2JU376G7js.FileManager.loadPromptsConfig();
45
+ const promptsConfig = _chunkD2CSG4SJjs.FileManager.loadPromptsConfig();
46
46
  const relativePath = path.relative(process.cwd(), promptPath);
47
47
  promptsConfig.prompts[name] = `file:${relativePath}`;
48
- _chunk2JU376G7js.FileManager.savePromptsConfig(promptsConfig);
49
- const lock = _chunk2JU376G7js.FileManager.loadPromptsLock();
48
+ _chunkD2CSG4SJjs.FileManager.savePromptsConfig(promptsConfig);
49
+ const lock = _chunkD2CSG4SJjs.FileManager.loadPromptsLock();
50
50
  lock.prompts[name] = {
51
51
  version: 0,
52
52
  // Local files start at version 0
@@ -54,7 +54,7 @@ messages:
54
54
  materialized: relativePath
55
55
  // Store the original file path
56
56
  };
57
- _chunk2JU376G7js.FileManager.savePromptsLock(lock);
57
+ _chunkD2CSG4SJjs.FileManager.savePromptsLock(lock);
58
58
  const displayPath = `./${relativePath}`;
59
59
  console.log(_chalk2.default.green(`\u2713 Created prompt file: ${_chalk2.default.cyan(displayPath)}`));
60
60
  console.log(_chalk2.default.gray(` Edit this file and then run:`));
@@ -67,4 +67,4 @@ messages:
67
67
 
68
68
 
69
69
  exports.createCommand = createCommand;
70
- //# sourceMappingURL=create-G5MTGOOH.js.map
70
+ //# sourceMappingURL=create-7K2CC4KQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/create-G5MTGOOH.js","../src/cli/commands/create.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACbA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AASX,IAAM,cAAA,EAAgB,MAAA,CAAO,IAAA,EAAc,OAAA,EAAA,GAA0C;AAC1F,EAAA,IAAI;AAEF,IAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,EAAA,IAAM,EAAA,EAAI;AAC/B,MAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,CAAM,GAAA,CAAI,oCAAoC,CAAC,CAAA;AAC7D,MAAA,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA;AAAA,IAChB;AAGA,IAAA,0CAAA,CAAY;AAGZ,IAAA,MAAM,uDAAA,CAAyB;AAG/B,IAAA,MAAM,WAAA,EAAkB,IAAA,CAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,SAAA,EAAW,CAAA,EAAA;AAExB,IAAA;AACL,MAAA;AACV,MAAA;AAChB,IAAA;AAG0C,IAAA;AACV,IAAA;AACc,MAAA;AAC9C,IAAA;AAGuB,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW4B,IAAA;AAGC,IAAA;AACF,IAAA;AACA,IAAA;AACP,IAAA;AAGF,IAAA;AACpB,IAAA;AACV,MAAA;AAAA;AACE,MAAA;AACG,MAAA;AAAA;AAChB,IAAA;AACgC,IAAA;AAEK,IAAA;AACa,IAAA;AACM,IAAA;AACP,IAAA;AAEnC,EAAA;AACgC,IAAA;AAChC,IAAA;AAChB,EAAA;AACF;ADX4D;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/create-G5MTGOOH.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { ensureProjectInitialized } from \"../utils/init\";\n\ninterface CreateOptions {\n // Future options can be added here\n}\n\nexport const createCommand = async (name: string, options: CreateOptions): Promise<void> => {\n try {\n // Validate prompt name\n if (!name || name.trim() === \"\") {\n console.error(chalk.red(\"Error: Prompt name cannot be empty\"));\n process.exit(1);\n }\n\n // Check API key before doing anything else\n checkApiKey();\n\n // Ensure project is initialized\n await ensureProjectInitialized();\n\n // Check if file already exists\n const promptPath = path.join(process.cwd(), \"prompts\", `${name}.prompt.yaml`);\n\n if (fs.existsSync(promptPath)) {\n console.error(chalk.red(`Error: Prompt file already exists at ${promptPath}`));\n process.exit(1);\n }\n\n // Create prompts directory if it doesn't exist\n const promptsDir = path.dirname(promptPath);\n if (!fs.existsSync(promptsDir)) {\n fs.mkdirSync(promptsDir, { recursive: true });\n }\n\n // Default prompt content\n const defaultContent = `model: openai/gpt-4o-mini\nmodelParameters:\n temperature: 0.7\nmessages:\n - role: system\n content: You are a helpful assistant.\n - role: user\n content: \"{{input}}\"\n`;\n\n // Write the file\n fs.writeFileSync(promptPath, defaultContent, \"utf8\");\n\n // Add to prompts.json as a file: dependency\n const promptsConfig = FileManager.loadPromptsConfig();\n const relativePath = path.relative(process.cwd(), promptPath);\n promptsConfig.prompts[name] = `file:${relativePath}`;\n FileManager.savePromptsConfig(promptsConfig);\n\n // Update lock file\n const lock = FileManager.loadPromptsLock();\n lock.prompts[name] = {\n version: 0, // Local files start at version 0\n versionId: \"local\",\n materialized: relativePath, // Store the original file path\n };\n FileManager.savePromptsLock(lock);\n\n const displayPath = `./${relativePath}`;\n console.log(chalk.green(`✓ Created prompt file: ${chalk.cyan(displayPath)}`));\n console.log(chalk.gray(` Edit this file and then run:`));\n console.log(chalk.cyan(` langwatch prompt sync`));\n\n } catch (error) {\n console.error(chalk.red(\"Unexpected error:\"), error instanceof Error ? error.message : error);\n process.exit(1);\n }\n};"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/create-7K2CC4KQ.js","../src/cli/commands/create.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACbA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AASX,IAAM,cAAA,EAAgB,MAAA,CAAO,IAAA,EAAc,OAAA,EAAA,GAA0C;AAC1F,EAAA,IAAI;AAEF,IAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,EAAA,IAAM,EAAA,EAAI;AAC/B,MAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,CAAM,GAAA,CAAI,oCAAoC,CAAC,CAAA;AAC7D,MAAA,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA;AAAA,IAChB;AAGA,IAAA,0CAAA,CAAY;AAGZ,IAAA,MAAM,uDAAA,CAAyB;AAG/B,IAAA,MAAM,WAAA,EAAkB,IAAA,CAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,SAAA,EAAW,CAAA,EAAA;AAExB,IAAA;AACL,MAAA;AACV,MAAA;AAChB,IAAA;AAG0C,IAAA;AACV,IAAA;AACc,MAAA;AAC9C,IAAA;AAGuB,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW4B,IAAA;AAGC,IAAA;AACF,IAAA;AACA,IAAA;AACP,IAAA;AAGF,IAAA;AACpB,IAAA;AACV,MAAA;AAAA;AACE,MAAA;AACG,MAAA;AAAA;AAChB,IAAA;AACgC,IAAA;AAEK,IAAA;AACa,IAAA;AACM,IAAA;AACP,IAAA;AAEnC,EAAA;AACgC,IAAA;AAChC,IAAA;AAChB,EAAA;AACF;ADX4D;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/create-7K2CC4KQ.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { ensureProjectInitialized } from \"../utils/init\";\n\ninterface CreateOptions {\n // Future options can be added here\n}\n\nexport const createCommand = async (name: string, options: CreateOptions): Promise<void> => {\n try {\n // Validate prompt name\n if (!name || name.trim() === \"\") {\n console.error(chalk.red(\"Error: Prompt name cannot be empty\"));\n process.exit(1);\n }\n\n // Check API key before doing anything else\n checkApiKey();\n\n // Ensure project is initialized\n await ensureProjectInitialized();\n\n // Check if file already exists\n const promptPath = path.join(process.cwd(), \"prompts\", `${name}.prompt.yaml`);\n\n if (fs.existsSync(promptPath)) {\n console.error(chalk.red(`Error: Prompt file already exists at ${promptPath}`));\n process.exit(1);\n }\n\n // Create prompts directory if it doesn't exist\n const promptsDir = path.dirname(promptPath);\n if (!fs.existsSync(promptsDir)) {\n fs.mkdirSync(promptsDir, { recursive: true });\n }\n\n // Default prompt content\n const defaultContent = `model: openai/gpt-4o-mini\nmodelParameters:\n temperature: 0.7\nmessages:\n - role: system\n content: You are a helpful assistant.\n - role: user\n content: \"{{input}}\"\n`;\n\n // Write the file\n fs.writeFileSync(promptPath, defaultContent, \"utf8\");\n\n // Add to prompts.json as a file: dependency\n const promptsConfig = FileManager.loadPromptsConfig();\n const relativePath = path.relative(process.cwd(), promptPath);\n promptsConfig.prompts[name] = `file:${relativePath}`;\n FileManager.savePromptsConfig(promptsConfig);\n\n // Update lock file\n const lock = FileManager.loadPromptsLock();\n lock.prompts[name] = {\n version: 0, // Local files start at version 0\n versionId: \"local\",\n materialized: relativePath, // Store the original file path\n };\n FileManager.savePromptsLock(lock);\n\n const displayPath = `./${relativePath}`;\n console.log(chalk.green(`✓ Created prompt file: ${chalk.cyan(displayPath)}`));\n console.log(chalk.gray(` Edit this file and then run:`));\n console.log(chalk.cyan(` langwatch prompt sync`));\n\n } catch (error) {\n console.error(chalk.red(\"Unexpected error:\"), error instanceof Error ? error.message : error);\n process.exit(1);\n }\n};"]}
@@ -1,15 +1,15 @@
1
+ import {
2
+ checkApiKey
3
+ } from "./chunk-DHJKJVY7.mjs";
1
4
  import {
2
5
  ensureProjectInitialized
3
- } from "./chunk-E7UE2MPD.mjs";
6
+ } from "./chunk-ECUXLXFT.mjs";
4
7
  import {
5
8
  FileManager
6
- } from "./chunk-3GKPQB4R.mjs";
7
- import {
8
- checkApiKey
9
- } from "./chunk-DHJKJVY7.mjs";
9
+ } from "./chunk-HUI45ULC.mjs";
10
+ import "./chunk-SYMZPWZE.mjs";
10
11
  import "./chunk-4NRLVT2U.mjs";
11
- import "./chunk-W5ZEP3CI.mjs";
12
- import "./chunk-YN4436PK.mjs";
12
+ import "./chunk-CU3443HD.mjs";
13
13
 
14
14
  // src/cli/commands/create.ts
15
15
  import * as fs from "fs";
@@ -67,4 +67,4 @@ messages:
67
67
  export {
68
68
  createCommand
69
69
  };
70
- //# sourceMappingURL=create-QUZYBMQB.mjs.map
70
+ //# sourceMappingURL=create-MK7NEGCM.mjs.map