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
package/dist/index.d.mts CHANGED
@@ -1,55 +1,129 @@
1
- export { L as LangWatchSpan, g as getLangWatchTracer } from './trace-DtVc5GhF.mjs';
2
- export { F as FilterableBatchSpanProcessor, S as SpanProcessingExcludeRule } from './filterable-batch-span-processor-zO5kcjBY.mjs';
3
- import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
4
- export { runEvaluation } from './evaluation/index.mjs';
5
- export { r as recordEvaluation } from './record-evaluation-CmxMXa-3.mjs';
6
- export { getPrompt, getPromptVersion } from './prompt/index.mjs';
7
- import '@opentelemetry/api';
8
- import './prompt-D-jpMrLS.mjs';
1
+ import { L as Logger, C as ConsoleLogger, N as NoOpLogger } from './index-DTEZr0Jn.mjs';
2
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation-C4lvooSg.mjs';
3
+ export { l as attributes } from './types-DRiQaKFG.mjs';
4
+ import { p as paths, P as PromptResponse, g as Prompt } from './types-1q5wIYP5.mjs';
5
+ import openApiCreateClient from 'openapi-fetch';
9
6
  import '@opentelemetry/sdk-trace-base';
7
+ import '@opentelemetry/exporter-trace-otlp-http';
8
+ import '@opentelemetry/api-logs';
9
+ import '@opentelemetry/api';
10
+ import '@opentelemetry/semantic-conventions';
11
+ import '@opentelemetry/semantic-conventions/incubating';
10
12
 
11
- interface LangWatchExporterOptions {
12
- endpoint?: string;
13
- apiKey?: string;
14
- includeAllSpans?: boolean;
15
- debug?: boolean;
13
+ type LangwatchApiClient = ReturnType<typeof openApiCreateClient<paths>>;
14
+
15
+ interface InternalConfig {
16
+ langwatchApiClient: LangwatchApiClient;
17
+ logger: Logger;
18
+ }
19
+
20
+ type CreatePromptBody = NonNullable<paths["/api/prompts"]["post"]["requestBody"]>["content"]["application/json"];
21
+ type UpdatePromptBody = NonNullable<paths["/api/prompts/{id}"]["put"]["requestBody"]>["content"]["application/json"];
22
+
23
+ type SyncAction = "created" | "updated" | "conflict" | "up_to_date";
24
+ type ConfigData = NonNullable<paths["/api/prompts/{id}/sync"]["post"]["requestBody"]>["content"]["application/json"]["configData"];
25
+ interface SyncResult {
26
+ action: SyncAction;
27
+ prompt?: PromptResponse;
28
+ conflictInfo?: {
29
+ localVersion: number;
30
+ remoteVersion: number;
31
+ differences: string[];
32
+ remoteConfigData: ConfigData;
33
+ };
16
34
  }
35
+
17
36
  /**
18
- * LangWatchExporter extends the OpenTelemetry OTLP HTTP trace exporter
19
- * to send trace data to LangWatch with proper authentication and metadata headers.
20
- *
21
- * This exporter automatically configures:
22
- * - Authorization headers using the provided API key or environment variables/fallback
23
- * - SDK version and language identification headers
24
- * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback
25
- *
26
- * @example
27
- * ```typescript
28
- * import { LangWatchExporter } from '@langwatch/observability';
29
- *
30
- * // Using environment variables/fallback configuration
31
- * const exporter = new LangWatchExporter();
32
- *
33
- * // Using custom options
34
- * const exporter = new LangWatchExporter({
35
- * apiKey: 'your-api-key',
36
- * endpoint: 'https://custom.langwatch.com'
37
- * });
38
- * ```
37
+ * Facade for prompt operations in the LangWatch SDK.
38
+ * Provides a simplified interface for common prompt management tasks.
39
39
  */
40
- declare class LangWatchExporter extends OTLPTraceExporter {
40
+ declare class PromptsFacade {
41
+ private readonly service;
42
+ private readonly config;
43
+ constructor(config: InternalConfig);
44
+ /**
45
+ * Creates a new prompt.
46
+ * @param data The prompt creation payload.
47
+ * @returns The created Prompt instance.
48
+ * @throws {PromptsError} If the API call fails.
49
+ */
50
+ create(data: CreatePromptBody): Promise<Prompt>;
51
+ /**
52
+ * Retrieves a prompt by handle or ID.
53
+ * @param handleOrId The prompt's handle or unique identifier.
54
+ * @param options Optional parameters for the request.
55
+ * @returns The Prompt instance or null if not found.
56
+ * @throws {PromptsError} If the API call fails.
57
+ */
58
+ get(handleOrId: string, options?: {
59
+ version?: string;
60
+ }): Promise<Prompt | null>;
61
+ /**
62
+ * Retrieves all prompts.
63
+ * @returns Array of Prompt instances.
64
+ * @throws {PromptsError} If the API call fails.
65
+ */
66
+ getAll(): Promise<Prompt[]>;
41
67
  /**
42
- * Creates a new LangWatchExporter instance.
43
- *
44
- * @param opts - Optional configuration options for the exporter
45
- * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
46
- * will use environment variables or fallback configuration.
47
- * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
48
- * If not provided, will use environment variables or fallback configuration.
49
- * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version
50
- * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version
51
- */
52
- constructor(opts?: LangWatchExporterOptions);
68
+ * Updates an existing prompt.
69
+ * @param handleOrId The prompt's handle or unique identifier.
70
+ * @param newData The update payload.
71
+ * @returns The updated Prompt instance.
72
+ * @throws {PromptsError} If the API call fails.
73
+ */
74
+ update(handleOrId: string, newData: UpdatePromptBody): Promise<Prompt>;
75
+ /**
76
+ * Deletes a prompt by handle or ID.
77
+ * @param handleOrId The prompt's handle or unique identifier.
78
+ * @throws {PromptsError} If the API call fails.
79
+ */
80
+ delete(handleOrId: string): Promise<{
81
+ success: boolean;
82
+ }>;
83
+ /**
84
+ * Syncs a prompt with the server.
85
+ * @param params The sync parameters.
86
+ * @returns The sync result.
87
+ * @throws {PromptsError} If the API call fails.
88
+ */
89
+ sync(params: {
90
+ name: string;
91
+ configData: any;
92
+ localVersion?: number;
93
+ commitMessage?: string;
94
+ }): Promise<SyncResult>;
95
+ }
96
+
97
+ interface GetTraceParams {
98
+ includeSpans?: boolean;
99
+ }
100
+ type GetTraceResponse = NonNullable<paths["/api/trace/{id}"]["get"]["responses"]["200"]["content"]["application/json"]>;
101
+
102
+ declare class TracesFacade {
103
+ #private;
104
+ constructor(config: InternalConfig);
105
+ get(traceId: string, params?: GetTraceParams): Promise<GetTraceResponse>;
53
106
  }
54
107
 
55
- export { LangWatchExporter };
108
+ interface LangWatchConstructorOptions {
109
+ apiKey?: string;
110
+ endpoint?: string;
111
+ options?: {
112
+ logger?: Logger;
113
+ };
114
+ }
115
+ declare class LangWatch {
116
+ #private;
117
+ private readonly config;
118
+ private readonly tracer;
119
+ readonly prompts: PromptsFacade;
120
+ readonly traces: TracesFacade;
121
+ constructor(options?: LangWatchConstructorOptions);
122
+ }
123
+
124
+ declare const logger: {
125
+ ConsoleLogger: typeof ConsoleLogger;
126
+ NoOpLogger: typeof NoOpLogger;
127
+ };
128
+
129
+ export { LangWatch, logger };
package/dist/index.d.ts CHANGED
@@ -1,55 +1,129 @@
1
- export { L as LangWatchSpan, g as getLangWatchTracer } from './trace-CqaKo0kZ.js';
2
- export { F as FilterableBatchSpanProcessor, S as SpanProcessingExcludeRule } from './filterable-batch-span-processor-zO5kcjBY.js';
3
- import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
4
- export { runEvaluation } from './evaluation/index.js';
5
- export { r as recordEvaluation } from './record-evaluation-CmxMXa-3.js';
6
- export { getPrompt, getPromptVersion } from './prompt/index.js';
7
- import '@opentelemetry/api';
8
- import './prompt-D-jpMrLS.js';
1
+ import { L as Logger, C as ConsoleLogger, N as NoOpLogger } from './index-DTEZr0Jn.js';
2
+ export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation-CzemP9jY.js';
3
+ export { l as attributes } from './types-DRiQaKFG.js';
4
+ import { p as paths, P as PromptResponse, g as Prompt } from './types-C9k5gGhU.js';
5
+ import openApiCreateClient from 'openapi-fetch';
9
6
  import '@opentelemetry/sdk-trace-base';
7
+ import '@opentelemetry/exporter-trace-otlp-http';
8
+ import '@opentelemetry/api-logs';
9
+ import '@opentelemetry/api';
10
+ import '@opentelemetry/semantic-conventions';
11
+ import '@opentelemetry/semantic-conventions/incubating';
10
12
 
11
- interface LangWatchExporterOptions {
12
- endpoint?: string;
13
- apiKey?: string;
14
- includeAllSpans?: boolean;
15
- debug?: boolean;
13
+ type LangwatchApiClient = ReturnType<typeof openApiCreateClient<paths>>;
14
+
15
+ interface InternalConfig {
16
+ langwatchApiClient: LangwatchApiClient;
17
+ logger: Logger;
18
+ }
19
+
20
+ type CreatePromptBody = NonNullable<paths["/api/prompts"]["post"]["requestBody"]>["content"]["application/json"];
21
+ type UpdatePromptBody = NonNullable<paths["/api/prompts/{id}"]["put"]["requestBody"]>["content"]["application/json"];
22
+
23
+ type SyncAction = "created" | "updated" | "conflict" | "up_to_date";
24
+ type ConfigData = NonNullable<paths["/api/prompts/{id}/sync"]["post"]["requestBody"]>["content"]["application/json"]["configData"];
25
+ interface SyncResult {
26
+ action: SyncAction;
27
+ prompt?: PromptResponse;
28
+ conflictInfo?: {
29
+ localVersion: number;
30
+ remoteVersion: number;
31
+ differences: string[];
32
+ remoteConfigData: ConfigData;
33
+ };
16
34
  }
35
+
17
36
  /**
18
- * LangWatchExporter extends the OpenTelemetry OTLP HTTP trace exporter
19
- * to send trace data to LangWatch with proper authentication and metadata headers.
20
- *
21
- * This exporter automatically configures:
22
- * - Authorization headers using the provided API key or environment variables/fallback
23
- * - SDK version and language identification headers
24
- * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback
25
- *
26
- * @example
27
- * ```typescript
28
- * import { LangWatchExporter } from '@langwatch/observability';
29
- *
30
- * // Using environment variables/fallback configuration
31
- * const exporter = new LangWatchExporter();
32
- *
33
- * // Using custom options
34
- * const exporter = new LangWatchExporter({
35
- * apiKey: 'your-api-key',
36
- * endpoint: 'https://custom.langwatch.com'
37
- * });
38
- * ```
37
+ * Facade for prompt operations in the LangWatch SDK.
38
+ * Provides a simplified interface for common prompt management tasks.
39
39
  */
40
- declare class LangWatchExporter extends OTLPTraceExporter {
40
+ declare class PromptsFacade {
41
+ private readonly service;
42
+ private readonly config;
43
+ constructor(config: InternalConfig);
44
+ /**
45
+ * Creates a new prompt.
46
+ * @param data The prompt creation payload.
47
+ * @returns The created Prompt instance.
48
+ * @throws {PromptsError} If the API call fails.
49
+ */
50
+ create(data: CreatePromptBody): Promise<Prompt>;
51
+ /**
52
+ * Retrieves a prompt by handle or ID.
53
+ * @param handleOrId The prompt's handle or unique identifier.
54
+ * @param options Optional parameters for the request.
55
+ * @returns The Prompt instance or null if not found.
56
+ * @throws {PromptsError} If the API call fails.
57
+ */
58
+ get(handleOrId: string, options?: {
59
+ version?: string;
60
+ }): Promise<Prompt | null>;
61
+ /**
62
+ * Retrieves all prompts.
63
+ * @returns Array of Prompt instances.
64
+ * @throws {PromptsError} If the API call fails.
65
+ */
66
+ getAll(): Promise<Prompt[]>;
41
67
  /**
42
- * Creates a new LangWatchExporter instance.
43
- *
44
- * @param opts - Optional configuration options for the exporter
45
- * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,
46
- * will use environment variables or fallback configuration.
47
- * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.
48
- * If not provided, will use environment variables or fallback configuration.
49
- * @param opts.includeAllSpans - Deprecated: This option is deprecated and will be removed in a future version
50
- * @param opts.debug - Deprecated: This option is deprecated and will be removed in a future version
51
- */
52
- constructor(opts?: LangWatchExporterOptions);
68
+ * Updates an existing prompt.
69
+ * @param handleOrId The prompt's handle or unique identifier.
70
+ * @param newData The update payload.
71
+ * @returns The updated Prompt instance.
72
+ * @throws {PromptsError} If the API call fails.
73
+ */
74
+ update(handleOrId: string, newData: UpdatePromptBody): Promise<Prompt>;
75
+ /**
76
+ * Deletes a prompt by handle or ID.
77
+ * @param handleOrId The prompt's handle or unique identifier.
78
+ * @throws {PromptsError} If the API call fails.
79
+ */
80
+ delete(handleOrId: string): Promise<{
81
+ success: boolean;
82
+ }>;
83
+ /**
84
+ * Syncs a prompt with the server.
85
+ * @param params The sync parameters.
86
+ * @returns The sync result.
87
+ * @throws {PromptsError} If the API call fails.
88
+ */
89
+ sync(params: {
90
+ name: string;
91
+ configData: any;
92
+ localVersion?: number;
93
+ commitMessage?: string;
94
+ }): Promise<SyncResult>;
95
+ }
96
+
97
+ interface GetTraceParams {
98
+ includeSpans?: boolean;
99
+ }
100
+ type GetTraceResponse = NonNullable<paths["/api/trace/{id}"]["get"]["responses"]["200"]["content"]["application/json"]>;
101
+
102
+ declare class TracesFacade {
103
+ #private;
104
+ constructor(config: InternalConfig);
105
+ get(traceId: string, params?: GetTraceParams): Promise<GetTraceResponse>;
53
106
  }
54
107
 
55
- export { LangWatchExporter };
108
+ interface LangWatchConstructorOptions {
109
+ apiKey?: string;
110
+ endpoint?: string;
111
+ options?: {
112
+ logger?: Logger;
113
+ };
114
+ }
115
+ declare class LangWatch {
116
+ #private;
117
+ private readonly config;
118
+ private readonly tracer;
119
+ readonly prompts: PromptsFacade;
120
+ readonly traces: TracesFacade;
121
+ constructor(options?: LangWatchConstructorOptions);
122
+ }
123
+
124
+ declare const logger: {
125
+ ConsoleLogger: typeof ConsoleLogger;
126
+ NoOpLogger: typeof NoOpLogger;
127
+ };
128
+
129
+ export { LangWatch, logger };
package/dist/index.js CHANGED
@@ -1,33 +1,38 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkIGHXIIIKjs = require('./chunk-IGHXIIIK.js');
3
+ var _chunkAZELEDOVjs = require('./chunk-AZELEDOV.js');
4
+ require('./chunk-5N5BUR2Z.js');
4
5
 
5
6
 
6
- var _chunkPWZBLTHRjs = require('./chunk-PWZBLTHR.js');
7
- require('./chunk-2ODBGSBI.js');
7
+ var _chunkYH5TIVK2js = require('./chunk-YH5TIVK2.js');
8
8
 
9
9
 
10
- var _chunkKGDAENGDjs = require('./chunk-KGDAENGD.js');
10
+ var _chunkM4VUHTT2js = require('./chunk-M4VUHTT2.js');
11
11
 
12
12
 
13
13
 
14
- var _chunk5NC5ILKAjs = require('./chunk-5NC5ILKA.js');
15
- require('./chunk-VGHLQXKB.js');
16
- require('./chunk-SMXXAVMB.js');
17
- require('./chunk-PCQVQ7SB.js');
14
+ var _chunk4TF2O2THjs = require('./chunk-4TF2O2TH.js');
15
+ require('./chunk-DEVJ7BPE.js');
18
16
 
19
17
 
20
18
 
21
- var _chunk52GXX3MAjs = require('./chunk-52GXX3MA.js');
22
- require('./chunk-DTEKFQ4U.js');
23
- require('./chunk-FJLK5CFL.js');
24
19
 
20
+ var _chunkDISMHYXCjs = require('./chunk-DISMHYXC.js');
21
+ require('./chunk-SGNJDRCT.js');
22
+ require('./chunk-OXBO24RB.js');
25
23
 
24
+ // src/index.ts
25
+ var logger = {
26
+ ConsoleLogger: _chunkDISMHYXCjs.ConsoleLogger,
27
+ NoOpLogger: _chunkDISMHYXCjs.NoOpLogger
28
+ };
26
29
 
27
30
 
28
31
 
29
32
 
30
33
 
31
34
 
32
- exports.FilterableBatchSpanProcessor = _chunkKGDAENGDjs.FilterableBatchSpanProcessor; exports.LangWatchExporter = _chunkIGHXIIIKjs.LangWatchExporter; exports.getLangWatchTracer = _chunk52GXX3MAjs.getLangWatchTracer; exports.getPrompt = _chunk5NC5ILKAjs.getPrompt; exports.getPromptVersion = _chunk5NC5ILKAjs.getPromptVersion; exports.recordEvaluation = _chunk52GXX3MAjs.recordEvaluation; exports.runEvaluation = _chunkPWZBLTHRjs.runEvaluation;
35
+
36
+
37
+ exports.FilterableBatchSpanProcessor = _chunkYH5TIVK2js.FilterableBatchSpanProcessor; exports.LangWatch = _chunkAZELEDOVjs.LangWatch; exports.LangWatchExporter = _chunk4TF2O2THjs.LangWatchTraceExporter; exports.attributes = _chunkDISMHYXCjs.attributes_exports; exports.getLangWatchLogger = _chunk4TF2O2THjs.getLangWatchLogger; exports.getLangWatchTracer = _chunkM4VUHTT2js.getLangWatchTracer; exports.logger = logger;
33
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/index.js"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,2bAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/index.js"}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/index.js","../src/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACRO,IAAM,OAAA,EAAS;AAAA,EACpB,6CAAA;AAAA,EACA;AACF,CAAA;ADUA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,iaAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/index.js","sourcesContent":[null,"import { ConsoleLogger, NoOpLogger } from \"./logger\";\n\nexport {\n getLangWatchTracer,\n getLangWatchLogger,\n attributes,\n} from \"./observability-sdk\";\n\nexport {\n FilterableBatchSpanProcessor,\n type SpanProcessingExcludeRule,\n} from \"./observability-sdk/processors\";\nexport { LangWatchExporter } from \"./observability-sdk/exporters\";\nexport { LangWatch } from \"./client-sdk\";\n\nexport const logger = {\n ConsoleLogger,\n NoOpLogger,\n};\n"]}
package/dist/index.mjs CHANGED
@@ -1,33 +1,38 @@
1
1
  import {
2
- LangWatchExporter
3
- } from "./chunk-AAROJADR.mjs";
4
- import {
5
- runEvaluation
6
- } from "./chunk-STV4ZVNA.mjs";
7
- import "./chunk-Y666BJA5.mjs";
2
+ LangWatch
3
+ } from "./chunk-4ILMGMAP.mjs";
4
+ import "./chunk-IZ2U3ABC.mjs";
8
5
  import {
9
6
  FilterableBatchSpanProcessor
10
- } from "./chunk-PR3JDWC3.mjs";
7
+ } from "./chunk-N2V6J3U2.mjs";
11
8
  import {
12
- getPrompt,
13
- getPromptVersion
14
- } from "./chunk-T5AZMMVS.mjs";
15
- import "./chunk-GJSEBQXF.mjs";
16
- import "./chunk-W5ZEP3CI.mjs";
17
- import "./chunk-QEWDG5QE.mjs";
9
+ getLangWatchTracer
10
+ } from "./chunk-EJWJXTPU.mjs";
18
11
  import {
19
- getLangWatchTracer,
20
- recordEvaluation
21
- } from "./chunk-J7ICRUU4.mjs";
22
- import "./chunk-UU33HCCZ.mjs";
23
- import "./chunk-YN4436PK.mjs";
12
+ LangWatchTraceExporter,
13
+ getLangWatchLogger
14
+ } from "./chunk-ZJZ3MIWE.mjs";
15
+ import "./chunk-FQSWUK5N.mjs";
16
+ import {
17
+ ConsoleLogger,
18
+ NoOpLogger,
19
+ attributes_exports
20
+ } from "./chunk-YNQ44U6D.mjs";
21
+ import "./chunk-SYMZPWZE.mjs";
22
+ import "./chunk-CU3443HD.mjs";
23
+
24
+ // src/index.ts
25
+ var logger = {
26
+ ConsoleLogger,
27
+ NoOpLogger
28
+ };
24
29
  export {
25
30
  FilterableBatchSpanProcessor,
26
- LangWatchExporter,
31
+ LangWatch,
32
+ LangWatchTraceExporter as LangWatchExporter,
33
+ attributes_exports as attributes,
34
+ getLangWatchLogger,
27
35
  getLangWatchTracer,
28
- getPrompt,
29
- getPromptVersion,
30
- recordEvaluation,
31
- runEvaluation
36
+ logger
32
37
  };
33
38
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { ConsoleLogger, NoOpLogger } from \"./logger\";\n\nexport {\n getLangWatchTracer,\n getLangWatchLogger,\n attributes,\n} from \"./observability-sdk\";\n\nexport {\n FilterableBatchSpanProcessor,\n type SpanProcessingExcludeRule,\n} from \"./observability-sdk/processors\";\nexport { LangWatchExporter } from \"./observability-sdk/exporters\";\nexport { LangWatch } from \"./client-sdk\";\n\nexport const logger = {\n ConsoleLogger,\n NoOpLogger,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAeO,IAAM,SAAS;AAAA,EACpB;AAAA,EACA;AACF;","names":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkK64Y6YUGjs = require('./chunk-K64Y6YUG.js');
4
+ require('./chunk-D2CSG4SJ.js');
5
+ require('./chunk-SGNJDRCT.js');
6
+ require('./chunk-HA3LI5IK.js');
7
+ require('./chunk-OXBO24RB.js');
8
+
9
+ // src/cli/commands/init.ts
10
+ var initCommand = async () => {
11
+ await _chunkK64Y6YUGjs.initializeProject.call(void 0, );
12
+ };
13
+
14
+
15
+ exports.initCommand = initCommand;
16
+ //# sourceMappingURL=init-GDKJICSS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/init-XU2JFY6N.js","../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACNO,IAAM,YAAA,EAAc,MAAA,CAAA,EAAA,GAA2B;AACpD,EAAA,MAAM,gDAAA,CAAkB;AAC1B,CAAA;ADQA;AACE;AACF,kCAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/init-XU2JFY6N.js","sourcesContent":[null,"import { initializeProject } from \"../utils/init\";\n\nexport const initCommand = async (): Promise<void> => {\n await initializeProject();\n};"]}
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/init-GDKJICSS.js","../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACNO,IAAM,YAAA,EAAc,MAAA,CAAA,EAAA,GAA2B;AACpD,EAAA,MAAM,gDAAA,CAAkB;AAC1B,CAAA;ADQA;AACE;AACF,kCAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/init-GDKJICSS.js","sourcesContent":[null,"import { initializeProject } from \"../utils/init\";\n\nexport const initCommand = async (): Promise<void> => {\n await initializeProject();\n};"]}
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  initializeProject
3
- } from "./chunk-E7UE2MPD.mjs";
4
- import "./chunk-3GKPQB4R.mjs";
3
+ } from "./chunk-ECUXLXFT.mjs";
4
+ import "./chunk-HUI45ULC.mjs";
5
+ import "./chunk-SYMZPWZE.mjs";
5
6
  import "./chunk-4NRLVT2U.mjs";
6
- import "./chunk-W5ZEP3CI.mjs";
7
- import "./chunk-YN4436PK.mjs";
7
+ import "./chunk-CU3443HD.mjs";
8
8
 
9
9
  // src/cli/commands/init.ts
10
10
  var initCommand = async () => {
@@ -13,4 +13,4 @@ var initCommand = async () => {
13
13
  export {
14
14
  initCommand
15
15
  };
16
- //# sourceMappingURL=init-H67RW22E.mjs.map
16
+ //# sourceMappingURL=init-RINSTP4L.mjs.map
@@ -3,11 +3,17 @@
3
3
  var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
4
4
 
5
5
 
6
+ var _chunkAZELEDOVjs = require('./chunk-AZELEDOV.js');
6
7
 
7
- var _chunkVGHLQXKBjs = require('./chunk-VGHLQXKB.js');
8
- require('./chunk-SMXXAVMB.js');
9
- require('./chunk-PCQVQ7SB.js');
10
- require('./chunk-FJLK5CFL.js');
8
+
9
+ var _chunk5N5BUR2Zjs = require('./chunk-5N5BUR2Z.js');
10
+ require('./chunk-YH5TIVK2.js');
11
+ require('./chunk-M4VUHTT2.js');
12
+ require('./chunk-4TF2O2TH.js');
13
+ require('./chunk-DEVJ7BPE.js');
14
+ require('./chunk-DISMHYXC.js');
15
+ require('./chunk-SGNJDRCT.js');
16
+ require('./chunk-OXBO24RB.js');
11
17
 
12
18
  // src/cli/commands/list.ts
13
19
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -24,7 +30,10 @@ var formatTable = (data, headers) => {
24
30
  headers.forEach((header) => {
25
31
  colWidths[header] = Math.max(
26
32
  header.length,
27
- ...data.map((row) => stripAnsi(row[header] || "").length)
33
+ ...data.map((row) => {
34
+ var _a;
35
+ return stripAnsi((_a = row[header]) != null ? _a : "").length;
36
+ })
28
37
  );
29
38
  });
30
39
  const headerRow = headers.map((header) => _chalk2.default.bold(header.padEnd(colWidths[header]))).join(" ");
@@ -33,7 +42,8 @@ var formatTable = (data, headers) => {
33
42
  console.log(_chalk2.default.gray(separator));
34
43
  data.forEach((row) => {
35
44
  const dataRow = headers.map((header) => {
36
- const value = row[header] || "";
45
+ var _a;
46
+ const value = (_a = row[header]) != null ? _a : "";
37
47
  const strippedLength = stripAnsi(value).length;
38
48
  const paddingNeeded = colWidths[header] - strippedLength;
39
49
  const paddedValue = value + " ".repeat(Math.max(0, paddingNeeded));
@@ -70,10 +80,10 @@ var formatRelativeTime = (dateString) => {
70
80
  var listCommand = async () => {
71
81
  try {
72
82
  _chunkF6E4XQQUjs.checkApiKey.call(void 0, );
73
- const promptService = _chunkVGHLQXKBjs.PromptService.getInstance();
83
+ const langwatch = new (0, _chunkAZELEDOVjs.LangWatch)();
74
84
  const spinner = _ora2.default.call(void 0, "Fetching prompts from server...").start();
75
85
  try {
76
- const allPrompts = await promptService.getAll();
86
+ const allPrompts = await langwatch.prompts.getAll();
77
87
  const prompts = allPrompts.filter((prompt) => prompt.version);
78
88
  const draftPrompts = allPrompts.filter((prompt) => !prompt.version);
79
89
  spinner.succeed(
@@ -89,12 +99,15 @@ var listCommand = async () => {
89
99
  return;
90
100
  }
91
101
  console.log();
92
- const tableData = prompts.map((prompt) => ({
93
- Name: prompt.handle || `${prompt.name} ` + _chalk2.default.gray(`(${prompt.id})`),
94
- Version: prompt.version ? `${prompt.version}` : "N/A",
95
- Model: prompt.model || "N/A",
96
- Updated: formatRelativeTime(prompt.updatedAt)
97
- }));
102
+ const tableData = prompts.map((prompt) => {
103
+ var _a, _b;
104
+ return {
105
+ Name: (_a = prompt.handle) != null ? _a : `${prompt.name} ` + _chalk2.default.gray(`(${prompt.id})`),
106
+ Version: prompt.version ? `${prompt.version}` : "N/A",
107
+ Model: (_b = prompt.model) != null ? _b : "N/A",
108
+ Updated: formatRelativeTime(prompt.updatedAt)
109
+ };
110
+ });
98
111
  formatTable(tableData, ["Name", "Version", "Model", "Updated"]);
99
112
  console.log();
100
113
  console.log(
@@ -106,7 +119,7 @@ var listCommand = async () => {
106
119
  );
107
120
  } catch (error) {
108
121
  spinner.fail();
109
- if (error instanceof _chunkVGHLQXKBjs.PromptsError) {
122
+ if (error instanceof _chunk5N5BUR2Zjs.PromptsError) {
110
123
  console.error(_chalk2.default.red(`Error: ${error.message}`));
111
124
  } else {
112
125
  console.error(
@@ -118,7 +131,7 @@ var listCommand = async () => {
118
131
  process.exit(1);
119
132
  }
120
133
  } catch (error) {
121
- if (error instanceof _chunkVGHLQXKBjs.PromptsError) {
134
+ if (error instanceof _chunk5N5BUR2Zjs.PromptsError) {
122
135
  console.error(_chalk2.default.red(`Error: ${error.message}`));
123
136
  } else {
124
137
  console.error(
@@ -133,4 +146,4 @@ var listCommand = async () => {
133
146
 
134
147
 
135
148
  exports.listCommand = listCommand;
136
- //# sourceMappingURL=list-ZXFLAF52.js.map
149
+ //# sourceMappingURL=list-DBUK47MA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-DBUK47MA.js","../src/cli/commands/list.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-DBUK47MA.js","sourcesContent":[null,"import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptsError } from \"@/client-sdk/services/prompts\";\nimport { LangWatch } from \"@/client-sdk\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n// Helper to strip ANSI codes for length calculation\nconst stripAnsi = (str: string): string => {\n return str.replace(/\\u001b\\[[0-9;]*m/g, \"\");\n};\n\n// Simple table formatting helper\nconst formatTable = (\n data: Array<Record<string, string>>,\n headers: string[],\n): void => {\n if (data.length === 0) {\n console.log(chalk.gray(\"No prompts found\"));\n return;\n }\n\n // Calculate column widths (strip ANSI codes for accurate length calculation)\n const colWidths: Record<string, number> = {};\n headers.forEach((header) => {\n colWidths[header] = Math.max(\n header.length,\n ...data.map((row) => stripAnsi(row[header] ?? \"\").length),\n );\n });\n\n // Print header\n const headerRow = headers\n .map((header) => chalk.bold(header.padEnd(colWidths[header]!)))\n .join(\" \");\n console.log(headerRow);\n\n // Print separator\n const separator = headers\n .map((header) => \"─\".repeat(colWidths[header]!))\n .join(\" \");\n console.log(chalk.gray(separator));\n\n // Print data rows\n data.forEach((row) => {\n const dataRow = headers\n .map((header) => {\n const value = row[header] ?? \"\";\n const strippedLength = stripAnsi(value).length;\n const paddingNeeded = colWidths[header]! - strippedLength;\n const paddedValue = value + \" \".repeat(Math.max(0, paddingNeeded));\n\n // Color coding\n if (header === \"Name\") {\n return chalk.cyan(paddedValue);\n } else if (header === \"Version\") {\n return chalk.green(paddedValue);\n } else if (header === \"Model\") {\n return chalk.yellow(paddedValue);\n } else {\n return chalk.gray(paddedValue);\n }\n })\n .join(\" \");\n console.log(dataRow);\n });\n};\n\nconst formatRelativeTime = (dateString: string): string => {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n\n const seconds = Math.floor(diffMs / 1000);\n const minutes = Math.floor(seconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const months = Math.floor(days / 30);\n const years = Math.floor(days / 365);\n\n if (years > 0) return `${years}y ago`;\n if (months > 0) return `${months}mo ago`;\n if (days > 0) return `${days}d ago`;\n if (hours > 0) return `${hours}h ago`;\n if (minutes > 0) return `${minutes}m ago`;\n return `${seconds}s ago`;\n};\n\nexport const listCommand = async (): Promise<void> => {\n try {\n // Check API key before doing anything else\n checkApiKey();\n\n // Get LangWatch client\n const langwatch = new LangWatch();\n\n const spinner = ora(\"Fetching prompts from server...\").start();\n\n try {\n // Fetch all prompts\n const allPrompts = await langwatch.prompts.getAll();\n const prompts = allPrompts.filter((prompt) => prompt.version);\n const draftPrompts = allPrompts.filter((prompt) => !prompt.version);\n\n spinner.succeed(\n `Found ${prompts.length} published prompt${prompts.length !== 1 ? \"s\" : \"\"} ` +\n chalk.gray(\n `(+${draftPrompts.length} draft${\n draftPrompts.length !== 1 ? \"s\" : \"\"\n })`,\n ),\n );\n\n if (prompts.length === 0) {\n console.log();\n console.log(chalk.gray(\"No prompts found on the server.\"));\n console.log(chalk.gray(\"Create your first prompt with:\"));\n console.log(chalk.cyan(\" langwatch prompt init\"));\n return;\n }\n\n console.log();\n\n // Format prompts for table display\n const tableData = prompts.map((prompt) => ({\n Name: prompt.handle ?? `${prompt.name} ` + chalk.gray(`(${prompt.id})`),\n Version: prompt.version ? `${prompt.version}` : \"N/A\",\n Model: prompt.model ?? \"N/A\",\n Updated: formatRelativeTime(prompt.updatedAt),\n }));\n\n // Display table\n formatTable(tableData, [\"Name\", \"Version\", \"Model\", \"Updated\"]);\n\n console.log();\n console.log(\n chalk.gray(\n `Use ${chalk.cyan(\n \"langwatch prompt add <name>\",\n )} to add a prompt to your project`,\n ),\n );\n } catch (error) {\n spinner.fail();\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Error fetching prompts: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n }\n process.exit(1);\n }\n } catch (error) {\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Unexpected error: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n }\n process.exit(1);\n }\n};\n"]}