@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.
- package/dist/cjs/clients/compression.d.ts +67 -30
- package/dist/cjs/clients/compression.d.ts.map +1 -1
- package/dist/cjs/clients/compression.js +98 -76
- package/dist/cjs/clients/compression.js.map +1 -1
- package/dist/cjs/config/constants.d.ts +0 -6
- package/dist/cjs/config/constants.d.ts.map +1 -1
- package/dist/cjs/config/constants.js +0 -6
- package/dist/cjs/config/constants.js.map +1 -1
- package/dist/cjs/config/endpoints.d.ts +1 -0
- package/dist/cjs/config/endpoints.d.ts.map +1 -1
- package/dist/cjs/config/endpoints.js +1 -0
- package/dist/cjs/config/endpoints.js.map +1 -1
- package/dist/cjs/http/client.d.ts.map +1 -1
- package/dist/cjs/http/client.js +5 -4
- package/dist/cjs/http/client.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/schemas/compression.d.ts +75 -21
- package/dist/cjs/schemas/compression.d.ts.map +1 -1
- package/dist/cjs/schemas/compression.js +26 -9
- package/dist/cjs/schemas/compression.js.map +1 -1
- package/dist/cjs/schemas/index.d.ts +1 -2
- package/dist/cjs/schemas/index.d.ts.map +1 -1
- package/dist/cjs/schemas/index.js +3 -9
- package/dist/cjs/schemas/index.js.map +1 -1
- package/dist/cjs/version.d.ts +6 -0
- package/dist/cjs/version.d.ts.map +1 -0
- package/dist/cjs/version.js +9 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/clients/compression.d.ts +67 -30
- package/dist/esm/clients/compression.d.ts.map +1 -1
- package/dist/esm/clients/compression.js +100 -78
- package/dist/esm/clients/compression.js.map +1 -1
- package/dist/esm/config/constants.d.ts +0 -6
- package/dist/esm/config/constants.d.ts.map +1 -1
- package/dist/esm/config/constants.js +0 -6
- package/dist/esm/config/constants.js.map +1 -1
- package/dist/esm/config/endpoints.d.ts +1 -0
- package/dist/esm/config/endpoints.d.ts.map +1 -1
- package/dist/esm/config/endpoints.js +1 -0
- package/dist/esm/config/endpoints.js.map +1 -1
- package/dist/esm/http/client.d.ts.map +1 -1
- package/dist/esm/http/client.js +3 -2
- package/dist/esm/http/client.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/schemas/compression.d.ts +75 -21
- package/dist/esm/schemas/compression.d.ts.map +1 -1
- package/dist/esm/schemas/compression.js +25 -8
- package/dist/esm/schemas/compression.js.map +1 -1
- package/dist/esm/schemas/index.d.ts +1 -2
- package/dist/esm/schemas/index.d.ts.map +1 -1
- package/dist/esm/schemas/index.js +1 -3
- package/dist/esm/schemas/index.js.map +1 -1
- package/dist/esm/version.d.ts +6 -0
- package/dist/esm/version.d.ts.map +1 -0
- package/dist/esm/version.js +6 -0
- package/dist/esm/version.js.map +1 -0
- package/package.json +3 -3
- package/dist/cjs/schemas/search.d.ts +0 -184
- package/dist/cjs/schemas/search.d.ts.map +0 -1
- package/dist/cjs/schemas/search.js +0 -75
- package/dist/cjs/schemas/search.js.map +0 -1
- package/dist/esm/schemas/search.d.ts +0 -184
- package/dist/esm/schemas/search.d.ts.map +0 -1
- package/dist/esm/schemas/search.js +0 -72
- 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
|
|
8
|
-
context: 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
|
-
/**
|
|
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
|
|
30
|
-
/** Compression model (default:
|
|
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
|
-
/**
|
|
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
|
-
* //
|
|
76
|
+
* // Single agnostic compression
|
|
47
77
|
* const result = await client.compress({
|
|
48
78
|
* context: 'Your long context...',
|
|
49
79
|
* });
|
|
50
80
|
*
|
|
51
|
-
* //
|
|
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
|
|
107
|
+
* Compress a single context
|
|
108
|
+
*
|
|
109
|
+
* For multiple contexts, use compressBatch().
|
|
80
110
|
*
|
|
81
111
|
* @example
|
|
82
112
|
* ```typescript
|
|
83
|
-
* // Agnostic compression (
|
|
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 (
|
|
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
|
-
*
|
|
116
|
-
*
|
|
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
|
-
* //
|
|
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
|
-
* //
|
|
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":"
|
|
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
|
-
* //
|
|
39
|
+
* // Single agnostic compression
|
|
29
40
|
* const result = await client.compress({
|
|
30
41
|
* context: 'Your long context...',
|
|
31
42
|
* });
|
|
32
43
|
*
|
|
33
|
-
* //
|
|
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
|
-
|
|
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.
|
|
74
|
-
stream: index_js_1.ENDPOINTS.
|
|
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.
|
|
79
|
-
stream: index_js_1.ENDPOINTS.
|
|
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
|
-
|
|
88
|
-
|
|
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:
|
|
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
|
-
//
|
|
110
|
+
// Single Compression
|
|
109
111
|
// ==========================================================================
|
|
110
112
|
/**
|
|
111
|
-
* Compress context
|
|
113
|
+
* Compress a single context
|
|
114
|
+
*
|
|
115
|
+
* For multiple contexts, use compressBatch().
|
|
112
116
|
*
|
|
113
117
|
* @example
|
|
114
118
|
* ```typescript
|
|
115
|
-
* // Agnostic compression (
|
|
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 (
|
|
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(
|
|
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(
|
|
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
|
-
*
|
|
162
|
-
*
|
|
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
|
-
* //
|
|
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
|
-
* //
|
|
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.
|
|
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
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
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":";;;AAAA
|
|
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,
|
|
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;
|
|
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
|
|
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;
|
|
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":"
|
|
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"}
|
package/dist/cjs/http/client.js
CHANGED
|
@@ -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
|
|
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,
|