@compresr/sdk 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/cjs/clients/compression.d.ts +67 -30
  2. package/dist/cjs/clients/compression.d.ts.map +1 -1
  3. package/dist/cjs/clients/compression.js +98 -76
  4. package/dist/cjs/clients/compression.js.map +1 -1
  5. package/dist/cjs/config/constants.d.ts +0 -6
  6. package/dist/cjs/config/constants.d.ts.map +1 -1
  7. package/dist/cjs/config/constants.js +0 -6
  8. package/dist/cjs/config/constants.js.map +1 -1
  9. package/dist/cjs/config/endpoints.d.ts +1 -0
  10. package/dist/cjs/config/endpoints.d.ts.map +1 -1
  11. package/dist/cjs/config/endpoints.js +1 -0
  12. package/dist/cjs/config/endpoints.js.map +1 -1
  13. package/dist/cjs/http/client.d.ts.map +1 -1
  14. package/dist/cjs/http/client.js +5 -4
  15. package/dist/cjs/http/client.js.map +1 -1
  16. package/dist/cjs/index.d.ts +1 -1
  17. package/dist/cjs/index.d.ts.map +1 -1
  18. package/dist/cjs/index.js +3 -2
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/schemas/compression.d.ts +75 -21
  21. package/dist/cjs/schemas/compression.d.ts.map +1 -1
  22. package/dist/cjs/schemas/compression.js +26 -9
  23. package/dist/cjs/schemas/compression.js.map +1 -1
  24. package/dist/cjs/schemas/index.d.ts +1 -2
  25. package/dist/cjs/schemas/index.d.ts.map +1 -1
  26. package/dist/cjs/schemas/index.js +3 -9
  27. package/dist/cjs/schemas/index.js.map +1 -1
  28. package/dist/cjs/version.d.ts +6 -0
  29. package/dist/cjs/version.d.ts.map +1 -0
  30. package/dist/cjs/version.js +9 -0
  31. package/dist/cjs/version.js.map +1 -0
  32. package/dist/esm/clients/compression.d.ts +67 -30
  33. package/dist/esm/clients/compression.d.ts.map +1 -1
  34. package/dist/esm/clients/compression.js +100 -78
  35. package/dist/esm/clients/compression.js.map +1 -1
  36. package/dist/esm/config/constants.d.ts +0 -6
  37. package/dist/esm/config/constants.d.ts.map +1 -1
  38. package/dist/esm/config/constants.js +0 -6
  39. package/dist/esm/config/constants.js.map +1 -1
  40. package/dist/esm/config/endpoints.d.ts +1 -0
  41. package/dist/esm/config/endpoints.d.ts.map +1 -1
  42. package/dist/esm/config/endpoints.js +1 -0
  43. package/dist/esm/config/endpoints.js.map +1 -1
  44. package/dist/esm/http/client.d.ts.map +1 -1
  45. package/dist/esm/http/client.js +3 -2
  46. package/dist/esm/http/client.js.map +1 -1
  47. package/dist/esm/index.d.ts +1 -1
  48. package/dist/esm/index.d.ts.map +1 -1
  49. package/dist/esm/index.js +2 -2
  50. package/dist/esm/index.js.map +1 -1
  51. package/dist/esm/schemas/compression.d.ts +75 -21
  52. package/dist/esm/schemas/compression.d.ts.map +1 -1
  53. package/dist/esm/schemas/compression.js +25 -8
  54. package/dist/esm/schemas/compression.js.map +1 -1
  55. package/dist/esm/schemas/index.d.ts +1 -2
  56. package/dist/esm/schemas/index.d.ts.map +1 -1
  57. package/dist/esm/schemas/index.js +1 -3
  58. package/dist/esm/schemas/index.js.map +1 -1
  59. package/dist/esm/version.d.ts +6 -0
  60. package/dist/esm/version.d.ts.map +1 -0
  61. package/dist/esm/version.js +6 -0
  62. package/dist/esm/version.js.map +1 -0
  63. package/package.json +3 -3
  64. package/dist/cjs/schemas/search.d.ts +0 -184
  65. package/dist/cjs/schemas/search.d.ts.map +0 -1
  66. package/dist/cjs/schemas/search.js +0 -75
  67. package/dist/cjs/schemas/search.js.map +0 -1
  68. package/dist/esm/schemas/search.d.ts +0 -184
  69. package/dist/esm/schemas/search.d.ts.map +0 -1
  70. package/dist/esm/schemas/search.js +0 -72
  71. package/dist/esm/schemas/search.js.map +0 -1
@@ -4,8 +4,8 @@ import { type CompressResponse, type CompressBatchResponse, type StreamChunk } f
4
4
  * Options for single compression
5
5
  */
6
6
  export interface CompressOptions {
7
- /** Context to compress - single string or array of strings */
8
- context: string | string[];
7
+ /** Context to compress (single string) */
8
+ context: string;
9
9
  /** Compression model (default: espresso_v1) */
10
10
  compressionModelName?: string;
11
11
  /** Query for query-specific models (required for latte_v1) */
@@ -16,23 +16,53 @@ export interface CompressOptions {
16
16
  * - >1: Nx factor (e.g., 4 = 4x compression = keep 25%)
17
17
  */
18
18
  targetCompressionRatio?: number;
19
- /** Use paragraph-level compression (faster, latte_v1 only) */
19
+ /**
20
+ * Paragraph-level compression (only for query-specific with latte_v1).
21
+ * - true: faster, coarser compression (default for latte_v1)
22
+ * - false: slower, token-level compression
23
+ * Ignored for agnostic compression (no query).
24
+ */
20
25
  coarse?: boolean;
26
+ /**
27
+ * Use heuristic chunking for better structure preservation.
28
+ * Only for query-specific models. Ignored for agnostic.
29
+ */
30
+ heuristicChunking?: boolean;
31
+ /**
32
+ * Disable placeholder tokens in compressed output.
33
+ * Only for query-specific models. Ignored for agnostic.
34
+ */
35
+ disablePlaceholders?: boolean;
21
36
  }
22
37
  /**
23
38
  * Options for batch compression
39
+ * - If queries is undefined: uses agnostic endpoint (no queries required)
40
+ * - If queries is provided: uses query-specific endpoint
24
41
  */
25
42
  export interface CompressBatchOptions {
26
43
  /** List of contexts to compress (1-100 items) */
27
44
  contexts: string[];
28
- /** Single query for all contexts, or one query per context */
29
- queries: string | string[];
30
- /** Compression model (default: latte_v1 for batch) */
45
+ /** Single query for all contexts, or one query per context. Omit for agnostic batch. */
46
+ queries?: string | string[];
47
+ /** Compression model (default: espresso_v1) */
31
48
  compressionModelName?: string;
32
49
  /** Target compression ratio */
33
50
  targetCompressionRatio?: number;
34
- /** Use paragraph-level compression (faster) */
51
+ /**
52
+ * Paragraph-level compression (only for query-specific batch).
53
+ * Ignored for agnostic batch (queries undefined).
54
+ */
35
55
  coarse?: boolean;
56
+ /**
57
+ * Use heuristic chunking for better structure preservation.
58
+ * Only for query-specific batch. Ignored for agnostic.
59
+ */
60
+ heuristicChunking?: boolean;
61
+ /**
62
+ * Disable placeholder tokens in compressed output.
63
+ * Only for query-specific batch. Ignored for agnostic.
64
+ */
65
+ disablePlaceholders?: boolean;
36
66
  }
37
67
  /**
38
68
  * Token-level compression client
@@ -43,49 +73,49 @@ export interface CompressBatchOptions {
43
73
  *
44
74
  * const client = new CompressionClient({ apiKey: 'cmp_...' });
45
75
  *
46
- * // Agnostic compression
76
+ * // Single agnostic compression
47
77
  * const result = await client.compress({
48
78
  * context: 'Your long context...',
49
79
  * });
50
80
  *
51
- * // Query-specific compression
81
+ * // Single query-specific compression
52
82
  * const result = await client.compress({
53
83
  * context: 'Your long context...',
54
84
  * query: 'What is the main conclusion?',
55
85
  * compressionModelName: 'latte_v1',
56
86
  * });
87
+ *
88
+ * // Batch agnostic compression
89
+ * const result = await client.compressBatch({
90
+ * contexts: ['Doc 1...', 'Doc 2...', 'Doc 3...'],
91
+ * });
92
+ *
93
+ * // Batch query-specific compression
94
+ * const result = await client.compressBatch({
95
+ * contexts: ['Doc 1...', 'Doc 2...', 'Doc 3...'],
96
+ * queries: 'What are the key points?',
97
+ * compressionModelName: 'latte_v1',
98
+ * });
57
99
  * ```
58
100
  */
59
101
  export declare class CompressionClient {
60
102
  private readonly http;
61
103
  constructor(options: HttpClientOptions);
62
- /**
63
- * Validate that the model is allowed
64
- */
65
- private validateModel;
66
- /**
67
- * Validate query parameter against model requirements
68
- */
69
- private validateQueryForModel;
70
- /**
71
- * Resolve endpoints based on model name
72
- */
73
104
  private resolveEndpoints;
74
- /**
75
- * Build request payload
76
- */
77
105
  private buildRequest;
78
106
  /**
79
- * Compress context (async)
107
+ * Compress a single context
108
+ *
109
+ * For multiple contexts, use compressBatch().
80
110
  *
81
111
  * @example
82
112
  * ```typescript
83
- * // Agnostic compression (espresso_v1)
113
+ * // Agnostic compression (no query)
84
114
  * const result = await client.compress({
85
115
  * context: 'Your long context text...',
86
116
  * });
87
117
  *
88
- * // Query-specific compression (latte_v1)
118
+ * // Query-specific compression (with query)
89
119
  * const result = await client.compress({
90
120
  * context: 'Your long context text...',
91
121
  * query: 'What is the main conclusion?',
@@ -112,21 +142,28 @@ export declare class CompressionClient {
112
142
  /**
113
143
  * Batch compress multiple contexts
114
144
  *
115
- * More efficient than calling compress() multiple times.
116
- * Only supports query-specific models (latte_v1).
145
+ * - If queries is undefined: uses agnostic endpoint (no queries required)
146
+ * - If queries is provided: uses query-specific endpoint
117
147
  *
118
148
  * @example
119
149
  * ```typescript
120
- * // Same query for all contexts
150
+ * // Agnostic batch (no queries)
151
+ * const result = await client.compressBatch({
152
+ * contexts: ['Doc 1...', 'Doc 2...', 'Doc 3...'],
153
+ * });
154
+ *
155
+ * // Query-specific batch (same query for all)
121
156
  * const result = await client.compressBatch({
122
157
  * contexts: ['Doc 1...', 'Doc 2...', 'Doc 3...'],
123
158
  * queries: 'What are the key points?',
159
+ * compressionModelName: 'latte_v1',
124
160
  * });
125
161
  *
126
- * // Different query per context
162
+ * // Query-specific batch (different queries)
127
163
  * const result = await client.compressBatch({
128
164
  * contexts: ['ML doc...', 'NLP doc...'],
129
165
  * queries: ['What is ML?', 'What is NLP?'],
166
+ * compressionModelName: 'latte_v1',
130
167
  * });
131
168
  *
132
169
  * console.log(`Saved ${result.data.total_tokens_saved} tokens!`);
@@ -1 +1 @@
1
- {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../../src/clients/compression.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,+CAA+C;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;gBAEtB,OAAO,EAAE,iBAAiB;IAItC;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,YAAY;IA+BpB;;;;;;;;;;;;;;;;;;;OAmBG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASnE;;;;;;;;;;;OAWG;IACI,cAAc,CACnB,OAAO,EAAE,eAAe,GACvB,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC;IAW/C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,aAAa,CACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;CAsDlC"}
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../../src/clients/compression.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,+CAA+C;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;gBAEtB,OAAO,EAAE,iBAAiB;IAItC,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,YAAY;IAqCpB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQnE;;;;;;;;;;;OAWG;IACI,cAAc,CACnB,OAAO,EAAE,eAAe,GACvB,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC;IAc/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,aAAa,CACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;CA+DlC"}
@@ -10,6 +10,17 @@ exports.CompressionClient = void 0;
10
10
  * Models:
11
11
  * - espresso_v1 (default): Agnostic compression, no query needed
12
12
  * - latte_v1: Query-specific compression, query REQUIRED
13
+ *
14
+ * Endpoints:
15
+ * Single:
16
+ * /compress/question-agnostic/ - context: string (no query)
17
+ * /compress/question-specific/ - context: string, query: string
18
+ * Batch:
19
+ * /compress/question-agnostic/batch - inputs: [{context}]
20
+ * /compress/question-specific/batch - inputs: [{context, query}]
21
+ * Stream:
22
+ * /compress/question-agnostic/stream - context: string
23
+ * /compress/question-specific/stream - context: string, query: string
13
24
  */
14
25
  const zod_1 = require("zod");
15
26
  const index_js_1 = require("../config/index.js");
@@ -25,17 +36,29 @@ const index_js_3 = require("../schemas/index.js");
25
36
  *
26
37
  * const client = new CompressionClient({ apiKey: 'cmp_...' });
27
38
  *
28
- * // Agnostic compression
39
+ * // Single agnostic compression
29
40
  * const result = await client.compress({
30
41
  * context: 'Your long context...',
31
42
  * });
32
43
  *
33
- * // Query-specific compression
44
+ * // Single query-specific compression
34
45
  * const result = await client.compress({
35
46
  * context: 'Your long context...',
36
47
  * query: 'What is the main conclusion?',
37
48
  * compressionModelName: 'latte_v1',
38
49
  * });
50
+ *
51
+ * // Batch agnostic compression
52
+ * const result = await client.compressBatch({
53
+ * contexts: ['Doc 1...', 'Doc 2...', 'Doc 3...'],
54
+ * });
55
+ *
56
+ * // Batch query-specific compression
57
+ * const result = await client.compressBatch({
58
+ * contexts: ['Doc 1...', 'Doc 2...', 'Doc 3...'],
59
+ * queries: 'What are the key points?',
60
+ * compressionModelName: 'latte_v1',
61
+ * });
39
62
  * ```
40
63
  */
41
64
  class CompressionClient {
@@ -43,56 +66,35 @@ class CompressionClient {
43
66
  constructor(options) {
44
67
  this.http = new client_js_1.HttpClient(options);
45
68
  }
46
- /**
47
- * Validate that the model is allowed
48
- */
49
- validateModel(modelName) {
50
- if (!index_js_1.ALLOWED_COMPRESSION_MODELS.has(modelName)) {
51
- const allowed = Array.from(index_js_1.ALLOWED_COMPRESSION_MODELS).join(', ');
52
- throw new index_js_2.ValidationError(`Model '${modelName}' is not valid for CompressionClient. Allowed: ${allowed}`);
53
- }
54
- }
55
- /**
56
- * Validate query parameter against model requirements
57
- */
58
- validateQueryForModel(modelName, query) {
59
- if (index_js_1.QUERY_REQUIRED_MODELS.has(modelName) && !query) {
60
- throw new index_js_2.ValidationError(`Model '${modelName}' requires a 'query' parameter.`);
61
- }
62
- if (!index_js_1.QUERY_REQUIRED_MODELS.has(modelName) && query !== undefined) {
63
- throw new index_js_2.ValidationError(`Model '${modelName}' does not accept a 'query' parameter. ` +
64
- `Remove the query or use 'latte_v1' for query-specific compression.`);
65
- }
66
- }
67
- /**
68
- * Resolve endpoints based on model name
69
- */
70
- resolveEndpoints(modelName) {
71
- if (index_js_1.AGNOSTIC_ENDPOINT_MODELS.has(modelName)) {
69
+ resolveEndpoints(query) {
70
+ if (query !== undefined) {
72
71
  return {
73
- base: index_js_1.ENDPOINTS.COMPRESS_AGNOSTIC,
74
- stream: index_js_1.ENDPOINTS.COMPRESS_AGNOSTIC_STREAM,
72
+ base: index_js_1.ENDPOINTS.COMPRESS_QS,
73
+ stream: index_js_1.ENDPOINTS.COMPRESS_QS_STREAM,
75
74
  };
76
75
  }
77
76
  return {
78
- base: index_js_1.ENDPOINTS.COMPRESS_QS,
79
- stream: index_js_1.ENDPOINTS.COMPRESS_QS_STREAM,
77
+ base: index_js_1.ENDPOINTS.COMPRESS_AGNOSTIC,
78
+ stream: index_js_1.ENDPOINTS.COMPRESS_AGNOSTIC_STREAM,
80
79
  };
81
80
  }
82
- /**
83
- * Build request payload
84
- */
85
81
  buildRequest(options) {
86
82
  const modelName = options.compressionModelName ?? index_js_1.MODELS.ESPRESSO;
87
- this.validateModel(modelName);
88
- this.validateQueryForModel(modelName, options.query);
83
+ // Only include QS-specific params when using query-specific endpoint
84
+ // Agnostic endpoint doesn't support these parameters
85
+ const isQuerySpecific = options.query !== undefined;
86
+ const effectiveCoarse = isQuerySpecific ? options.coarse : undefined;
87
+ const effectiveHeuristicChunking = isQuerySpecific ? options.heuristicChunking : undefined;
88
+ const effectiveDisablePlaceholders = isQuerySpecific ? options.disablePlaceholders : undefined;
89
89
  try {
90
90
  const request = index_js_3.CompressRequestSchema.parse({
91
91
  context: options.context,
92
92
  compression_model_name: modelName,
93
93
  query: options.query,
94
94
  target_compression_ratio: options.targetCompressionRatio,
95
- coarse: options.coarse,
95
+ coarse: effectiveCoarse,
96
+ heuristic_chunking: effectiveHeuristicChunking,
97
+ disable_placeholders: effectiveDisablePlaceholders,
96
98
  });
97
99
  return request;
98
100
  }
@@ -105,19 +107,21 @@ class CompressionClient {
105
107
  }
106
108
  }
107
109
  // ==========================================================================
108
- // Public Methods
110
+ // Single Compression
109
111
  // ==========================================================================
110
112
  /**
111
- * Compress context (async)
113
+ * Compress a single context
114
+ *
115
+ * For multiple contexts, use compressBatch().
112
116
  *
113
117
  * @example
114
118
  * ```typescript
115
- * // Agnostic compression (espresso_v1)
119
+ * // Agnostic compression (no query)
116
120
  * const result = await client.compress({
117
121
  * context: 'Your long context text...',
118
122
  * });
119
123
  *
120
- * // Query-specific compression (latte_v1)
124
+ * // Query-specific compression (with query)
121
125
  * const result = await client.compress({
122
126
  * context: 'Your long context text...',
123
127
  * query: 'What is the main conclusion?',
@@ -128,9 +132,8 @@ class CompressionClient {
128
132
  * ```
129
133
  */
130
134
  async compress(options) {
131
- const modelName = options.compressionModelName ?? index_js_1.MODELS.ESPRESSO;
132
135
  const request = this.buildRequest(options);
133
- const { base } = this.resolveEndpoints(modelName);
136
+ const { base } = this.resolveEndpoints(options.query);
134
137
  const response = await this.http.post(base, request);
135
138
  return index_js_3.CompressResponseSchema.parse(response);
136
139
  }
@@ -147,65 +150,84 @@ class CompressionClient {
147
150
  * ```
148
151
  */
149
152
  async *compressStream(options) {
150
- const modelName = options.compressionModelName ?? index_js_1.MODELS.ESPRESSO;
151
153
  const request = this.buildRequest(options);
152
- const { stream } = this.resolveEndpoints(modelName);
154
+ const { stream } = this.resolveEndpoints(options.query);
153
155
  for await (const content of this.http.stream(stream, request)) {
154
156
  yield { content, done: false };
155
157
  }
156
158
  yield { content: '', done: true };
157
159
  }
160
+ // ==========================================================================
161
+ // Batch Compression
162
+ // ==========================================================================
158
163
  /**
159
164
  * Batch compress multiple contexts
160
165
  *
161
- * More efficient than calling compress() multiple times.
162
- * Only supports query-specific models (latte_v1).
166
+ * - If queries is undefined: uses agnostic endpoint (no queries required)
167
+ * - If queries is provided: uses query-specific endpoint
163
168
  *
164
169
  * @example
165
170
  * ```typescript
166
- * // Same query for all contexts
171
+ * // Agnostic batch (no queries)
172
+ * const result = await client.compressBatch({
173
+ * contexts: ['Doc 1...', 'Doc 2...', 'Doc 3...'],
174
+ * });
175
+ *
176
+ * // Query-specific batch (same query for all)
167
177
  * const result = await client.compressBatch({
168
178
  * contexts: ['Doc 1...', 'Doc 2...', 'Doc 3...'],
169
179
  * queries: 'What are the key points?',
180
+ * compressionModelName: 'latte_v1',
170
181
  * });
171
182
  *
172
- * // Different query per context
183
+ * // Query-specific batch (different queries)
173
184
  * const result = await client.compressBatch({
174
185
  * contexts: ['ML doc...', 'NLP doc...'],
175
186
  * queries: ['What is ML?', 'What is NLP?'],
187
+ * compressionModelName: 'latte_v1',
176
188
  * });
177
189
  *
178
190
  * console.log(`Saved ${result.data.total_tokens_saved} tokens!`);
179
191
  * ```
180
192
  */
181
193
  async compressBatch(options) {
182
- const modelName = options.compressionModelName ?? index_js_1.MODELS.LATTE;
183
- // Batch only supports query-specific models
184
- if (!index_js_1.QUERY_REQUIRED_MODELS.has(modelName)) {
185
- throw new index_js_2.ValidationError(`Batch compression only supports query-specific models: ${Array.from(index_js_1.QUERY_REQUIRED_MODELS).join(', ')}`);
186
- }
187
- this.validateModel(modelName);
188
- // Build query list
189
- const queryList = typeof options.queries === 'string'
190
- ? Array(options.contexts.length).fill(options.queries)
191
- : options.queries;
192
- if (queryList.length !== options.contexts.length) {
193
- throw new index_js_2.ValidationError(`Number of queries (${queryList.length}) must match number of contexts (${options.contexts.length})`);
194
- }
195
- // Build inputs
196
- const inputs = options.contexts.map((context, i) => ({
197
- context,
198
- query: queryList[i],
199
- }));
194
+ const modelName = options.compressionModelName ?? index_js_1.MODELS.ESPRESSO;
200
195
  try {
201
- const request = index_js_3.CompressBatchRequestSchema.parse({
202
- inputs,
203
- compression_model_name: modelName,
204
- target_compression_ratio: options.targetCompressionRatio,
205
- coarse: options.coarse,
206
- });
207
- const response = await this.http.post(index_js_1.ENDPOINTS.COMPRESS_QS_BATCH, request);
208
- return index_js_3.CompressBatchResponseSchema.parse(response);
196
+ if (options.queries === undefined) {
197
+ // Agnostic batch (no queries)
198
+ const inputs = options.contexts.map((context) => ({ context }));
199
+ const request = index_js_3.AgnosticBatchRequestSchema.parse({
200
+ inputs,
201
+ compression_model_name: modelName,
202
+ target_compression_ratio: options.targetCompressionRatio,
203
+ });
204
+ const response = await this.http.post(index_js_1.ENDPOINTS.COMPRESS_AGNOSTIC_BATCH, request);
205
+ return index_js_3.CompressBatchResponseSchema.parse(response);
206
+ }
207
+ else {
208
+ // Query-specific batch
209
+ const queryList = typeof options.queries === 'string'
210
+ ? Array(options.contexts.length).fill(options.queries)
211
+ : options.queries;
212
+ if (queryList.length !== options.contexts.length) {
213
+ throw new index_js_2.ValidationError(`Number of queries (${queryList.length}) must match number of contexts (${options.contexts.length})`);
214
+ }
215
+ const inputs = options.contexts.map((context, i) => ({
216
+ context,
217
+ // Safe: queryList length validated above
218
+ query: queryList[i],
219
+ }));
220
+ const request = index_js_3.CompressBatchRequestSchema.parse({
221
+ inputs,
222
+ compression_model_name: modelName,
223
+ target_compression_ratio: options.targetCompressionRatio,
224
+ coarse: options.coarse,
225
+ heuristic_chunking: options.heuristicChunking,
226
+ disable_placeholders: options.disablePlaceholders,
227
+ });
228
+ const response = await this.http.post(index_js_1.ENDPOINTS.COMPRESS_QS_BATCH, request);
229
+ return index_js_3.CompressBatchResponseSchema.parse(response);
230
+ }
209
231
  }
210
232
  catch (error) {
211
233
  if (error instanceof zod_1.ZodError) {
@@ -1 +1 @@
1
- {"version":3,"file":"compression.js","sourceRoot":"","sources":["../../../src/clients/compression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compression.js","sourceRoot":"","sources":["../../../src/clients/compression.ts"],"names":[],"mappings":"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"}
@@ -24,17 +24,11 @@ export declare const MODELS: {
24
24
  export type CompressionModel = typeof MODELS.ESPRESSO | typeof MODELS.LATTE;
25
25
  export type SearchModel = typeof MODELS.MACCHIATO;
26
26
  export type Model = (typeof MODELS)[keyof typeof MODELS];
27
- /** Models allowed for CompressionClient */
28
27
  export declare const ALLOWED_COMPRESSION_MODELS: ReadonlySet<string>;
29
- /** Models allowed for SearchClient */
30
28
  export declare const ALLOWED_SEARCH_MODELS: ReadonlySet<string>;
31
- /** Models that require a query parameter */
32
29
  export declare const QUERY_REQUIRED_MODELS: ReadonlySet<string>;
33
- /** Models that support coarse parameter */
34
30
  export declare const COARSE_SUPPORTED_MODELS: ReadonlySet<string>;
35
- /** Models that use the agnostic endpoint */
36
31
  export declare const AGNOSTIC_ENDPOINT_MODELS: ReadonlySet<string>;
37
- /** Models that use the query-specific endpoint */
38
32
  export declare const QS_ENDPOINT_MODELS: ReadonlySet<string>;
39
33
  /**
40
34
  * HTTP header names
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oCAAoC;AACpC,eAAO,MAAM,cAAc,SAAS,CAAC;AAErC,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAE1D,8CAA8C;AAC9C,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC,6CAA6C;AAC7C,eAAO,MAAM,cAAc,SAAU,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;;CAaT,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,OAAO,MAAM,CAAC,QAAQ,GAAG,OAAO,MAAM,CAAC,KAAK,CAAC;AAC5E,MAAM,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,SAAS,CAAC;AAClD,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAEzD,2CAA2C;AAC3C,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAGzD,CAAC;AAEH,sCAAsC;AACtC,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAEpD,CAAC;AAEH,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAEpD,CAAC;AAEH,2CAA2C;AAC3C,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAEtD,CAAC;AAEH,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAEvD,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAEjD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;CAKV,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oCAAoC;AACpC,eAAO,MAAM,cAAc,SAAS,CAAC;AAErC,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAE1D,8CAA8C;AAC9C,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC,6CAA6C;AAC7C,eAAO,MAAM,cAAc,SAAU,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;;CAaT,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,OAAO,MAAM,CAAC,QAAQ,GAAG,OAAO,MAAM,CAAC,KAAK,CAAC;AAC5E,MAAM,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,SAAS,CAAC;AAClD,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAGzD,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAEpD,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAEpD,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAEtD,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAEvD,CAAC;AAEH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAEjD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;CAKV,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAC"}
@@ -27,28 +27,22 @@ exports.MODELS = {
27
27
  AGENTIC_TOOL_OUTPUT_LINGUA: 'agentic_tool_output_lingua',
28
28
  AGENTIC_TOOL_DISCOVERY_SAT: 'agentic_tool_discovery_sat',
29
29
  };
30
- /** Models allowed for CompressionClient */
31
30
  exports.ALLOWED_COMPRESSION_MODELS = new Set([
32
31
  exports.MODELS.ESPRESSO,
33
32
  exports.MODELS.LATTE,
34
33
  ]);
35
- /** Models allowed for SearchClient */
36
34
  exports.ALLOWED_SEARCH_MODELS = new Set([
37
35
  exports.MODELS.MACCHIATO,
38
36
  ]);
39
- /** Models that require a query parameter */
40
37
  exports.QUERY_REQUIRED_MODELS = new Set([
41
38
  exports.MODELS.LATTE,
42
39
  ]);
43
- /** Models that support coarse parameter */
44
40
  exports.COARSE_SUPPORTED_MODELS = new Set([
45
41
  exports.MODELS.LATTE,
46
42
  ]);
47
- /** Models that use the agnostic endpoint */
48
43
  exports.AGNOSTIC_ENDPOINT_MODELS = new Set([
49
44
  exports.MODELS.ESPRESSO,
50
45
  ]);
51
- /** Models that use the query-specific endpoint */
52
46
  exports.QS_ENDPOINT_MODELS = new Set([
53
47
  exports.MODELS.LATTE,
54
48
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,oCAAoC;AACvB,QAAA,cAAc,GAAG,MAAM,CAAC;AAErC,wCAAwC;AAC3B,QAAA,gBAAgB,GAAG,yBAAyB,CAAC;AAE1D,8CAA8C;AACjC,QAAA,eAAe,GAAG,MAAM,CAAC;AAEtC,6CAA6C;AAChC,QAAA,cAAc,GAAG,OAAO,CAAC;AAEtC;;GAEG;AACU,QAAA,MAAM,GAAG;IACpB,qBAAqB;IACrB,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,UAAU;IAEjB,gBAAgB;IAChB,SAAS,EAAE,cAAc;IAEzB,iBAAiB;IACjB,sBAAsB,EAAE,wBAAwB;IAChD,6BAA6B,EAAE,+BAA+B;IAC9D,0BAA0B,EAAE,4BAA4B;IACxD,0BAA0B,EAAE,4BAA4B;CAChD,CAAC;AAMX,2CAA2C;AAC9B,QAAA,0BAA0B,GAAwB,IAAI,GAAG,CAAC;IACrE,cAAM,CAAC,QAAQ;IACf,cAAM,CAAC,KAAK;CACb,CAAC,CAAC;AAEH,sCAAsC;AACzB,QAAA,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,cAAM,CAAC,SAAS;CACjB,CAAC,CAAC;AAEH,4CAA4C;AAC/B,QAAA,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,cAAM,CAAC,KAAK;CACb,CAAC,CAAC;AAEH,2CAA2C;AAC9B,QAAA,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAClE,cAAM,CAAC,KAAK;CACb,CAAC,CAAC;AAEH,4CAA4C;AAC/B,QAAA,wBAAwB,GAAwB,IAAI,GAAG,CAAC;IACnE,cAAM,CAAC,QAAQ;CAChB,CAAC,CAAC;AAEH,kDAAkD;AACrC,QAAA,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IAC7D,cAAM,CAAC,KAAK;CACb,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,OAAO,GAAG;IACrB,OAAO,EAAE,WAAW;IACpB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;CAChB,CAAC;AAEX;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,EAAE,EAAE,GAAG;IACP,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;CACT,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,oCAAoC;AACvB,QAAA,cAAc,GAAG,MAAM,CAAC;AAErC,wCAAwC;AAC3B,QAAA,gBAAgB,GAAG,yBAAyB,CAAC;AAE1D,8CAA8C;AACjC,QAAA,eAAe,GAAG,MAAM,CAAC;AAEtC,6CAA6C;AAChC,QAAA,cAAc,GAAG,OAAO,CAAC;AAEtC;;GAEG;AACU,QAAA,MAAM,GAAG;IACpB,qBAAqB;IACrB,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,UAAU;IAEjB,gBAAgB;IAChB,SAAS,EAAE,cAAc;IAEzB,iBAAiB;IACjB,sBAAsB,EAAE,wBAAwB;IAChD,6BAA6B,EAAE,+BAA+B;IAC9D,0BAA0B,EAAE,4BAA4B;IACxD,0BAA0B,EAAE,4BAA4B;CAChD,CAAC;AAME,QAAA,0BAA0B,GAAwB,IAAI,GAAG,CAAC;IACrE,cAAM,CAAC,QAAQ;IACf,cAAM,CAAC,KAAK;CACb,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,cAAM,CAAC,SAAS;CACjB,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,cAAM,CAAC,KAAK;CACb,CAAC,CAAC;AAEU,QAAA,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAClE,cAAM,CAAC,KAAK;CACb,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAwB,IAAI,GAAG,CAAC;IACnE,cAAM,CAAC,QAAQ;CAChB,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IAC7D,cAAM,CAAC,KAAK;CACb,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,OAAO,GAAG;IACrB,OAAO,EAAE,WAAW;IACpB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;CAChB,CAAC;AAEX;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,EAAE,EAAE,GAAG;IACP,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;CACT,CAAC"}
@@ -4,6 +4,7 @@
4
4
  export declare const ENDPOINTS: {
5
5
  readonly COMPRESS_AGNOSTIC: "/api/compress/question-agnostic/";
6
6
  readonly COMPRESS_AGNOSTIC_STREAM: "/api/compress/question-agnostic/stream";
7
+ readonly COMPRESS_AGNOSTIC_BATCH: "/api/compress/question-agnostic/batch";
7
8
  readonly COMPRESS_QS: "/api/compress/question-specific/";
8
9
  readonly COMPRESS_QS_STREAM: "/api/compress/question-specific/stream";
9
10
  readonly COMPRESS_QS_BATCH: "/api/compress/question-specific/batch";
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../../src/config/endpoints.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;CAqBZ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../../src/config/endpoints.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;CAsBZ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC"}
@@ -8,6 +8,7 @@ exports.ENDPOINTS = {
8
8
  // Agnostic compression (no query required)
9
9
  COMPRESS_AGNOSTIC: '/api/compress/question-agnostic/',
10
10
  COMPRESS_AGNOSTIC_STREAM: '/api/compress/question-agnostic/stream',
11
+ COMPRESS_AGNOSTIC_BATCH: '/api/compress/question-agnostic/batch',
11
12
  // Query-specific compression (query required)
12
13
  COMPRESS_QS: '/api/compress/question-specific/',
13
14
  COMPRESS_QS_STREAM: '/api/compress/question-specific/stream',
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../../src/config/endpoints.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,SAAS,GAAG;IACvB,2CAA2C;IAC3C,iBAAiB,EAAE,kCAAkC;IACrD,wBAAwB,EAAE,wCAAwC;IAElE,8CAA8C;IAC9C,WAAW,EAAE,kCAAkC;IAC/C,kBAAkB,EAAE,wCAAwC;IAC5D,iBAAiB,EAAE,uCAAuC;IAE1D,iBAAiB;IACjB,MAAM,EAAE,uBAAuB;IAC/B,aAAa,EAAE,6BAA6B;IAE5C,mBAAmB;IACnB,mBAAmB,EAAE,0CAA0C;IAC/D,iBAAiB,EAAE,6CAA6C;IAChE,mBAAmB,EAAE,0CAA0C;IAE/D,SAAS;IACT,aAAa,EAAE,6BAA6B;CACpC,CAAC"}
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../../src/config/endpoints.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,SAAS,GAAG;IACvB,2CAA2C;IAC3C,iBAAiB,EAAE,kCAAkC;IACrD,wBAAwB,EAAE,wCAAwC;IAClE,uBAAuB,EAAE,uCAAuC;IAEhE,8CAA8C;IAC9C,WAAW,EAAE,kCAAkC;IAC/C,kBAAkB,EAAE,wCAAwC;IAC5D,iBAAiB,EAAE,uCAAuC;IAE1D,iBAAiB;IACjB,MAAM,EAAE,uBAAuB;IAC/B,aAAa,EAAE,6BAA6B;IAE5C,mBAAmB;IACnB,mBAAmB,EAAE,0CAA0C;IAC/D,iBAAiB,EAAE,6CAA6C;IAChE,mBAAmB,EAAE,0CAA0C;IAE/D,SAAS;IACT,aAAa,EAAE,6BAA6B;CACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/http/client.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,iBAAiB;IAgBtC;;OAEG;IACH,OAAO,KAAK,OAAO,GAOlB;IAED;;OAEG;IACH,OAAO,CAAC,GAAG;IAIX;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmC1E;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAkC1C;;OAEG;IACG,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAkC7C;;OAEG;IACI,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC;IAyE1C;;OAEG;IACG,aAAa,CAAC,CAAC,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,GAC3E,OAAO,CAAC,CAAC,CAAC;CA0Cd"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/http/client.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,iBAAiB;IAgBtC;;OAEG;IACH,OAAO,KAAK,OAAO,GAOlB;IAED;;OAEG;IACH,OAAO,CAAC,GAAG;IAKX;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmC1E;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAkC1C;;OAEG;IACG,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAkC7C;;OAEG;IACI,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC;IAyE1C;;OAEG;IACG,aAAa,CAAC,CAAC,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,GAC3E,OAAO,CAAC,CAAC,CAAC;CA0Cd"}
@@ -9,7 +9,7 @@ exports.HttpClient = void 0;
9
9
  const constants_js_1 = require("../config/constants.js");
10
10
  const index_js_1 = require("../errors/index.js");
11
11
  const errors_js_1 = require("./errors.js");
12
- const SDK_VERSION = '1.0.0';
12
+ const version_js_1 = require("../version.js");
13
13
  /**
14
14
  * Internal HTTP client for all Compresr API requests
15
15
  */
@@ -26,7 +26,7 @@ class HttpClient {
26
26
  throw new index_js_1.AuthenticationError(`Invalid API key format. Keys must start with '${constants_js_1.API_KEY_PREFIX}'`);
27
27
  }
28
28
  this.apiKey = options.apiKey;
29
- this.baseUrl = options.baseUrl ?? constants_js_1.DEFAULT_BASE_URL;
29
+ this.baseUrl = (options.baseUrl ?? constants_js_1.DEFAULT_BASE_URL).replace(/\/+$/, '');
30
30
  this.timeout = options.timeout ?? constants_js_1.DEFAULT_TIMEOUT;
31
31
  }
32
32
  /**
@@ -37,13 +37,14 @@ class HttpClient {
37
37
  [constants_js_1.HEADERS.API_KEY]: this.apiKey,
38
38
  [constants_js_1.HEADERS.CONTENT_TYPE]: 'application/json',
39
39
  [constants_js_1.HEADERS.ACCEPT]: 'application/json',
40
- [constants_js_1.HEADERS.USER_AGENT]: `compresr-typescript-sdk/${SDK_VERSION}`,
40
+ [constants_js_1.HEADERS.USER_AGENT]: `compresr-typescript-sdk/${version_js_1.SDK_VERSION}`,
41
41
  };
42
42
  }
43
43
  /**
44
44
  * Build full URL from endpoint
45
45
  */
46
46
  url(endpoint) {
47
+ // Endpoint already starts with /, so no double slash issue
47
48
  return `${this.baseUrl}${endpoint}`;
48
49
  }
49
50
  /**
@@ -236,7 +237,7 @@ class HttpClient {
236
237
  method: 'POST',
237
238
  headers: {
238
239
  [constants_js_1.HEADERS.API_KEY]: this.apiKey,
239
- [constants_js_1.HEADERS.USER_AGENT]: `compresr-typescript-sdk/${SDK_VERSION}`,
240
+ [constants_js_1.HEADERS.USER_AGENT]: `compresr-typescript-sdk/${version_js_1.SDK_VERSION}`,
240
241
  },
241
242
  body: formData,
242
243
  signal: controller.signal,