@aexhq/sdk 0.15.2 → 0.16.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/_contracts/proxy-protocol.d.ts +14 -18
- package/dist/_contracts/proxy-protocol.js +16 -15
- package/dist/_contracts/submission.d.ts +0 -2
- package/dist/_contracts/submission.js +2 -8
- package/dist/cli.mjs +5 -11
- package/dist/cli.mjs.sha256 +1 -1
- package/dist/proxy-endpoint.d.ts +1 -3
- package/dist/proxy-endpoint.js +2 -6
- package/dist/proxy-endpoint.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
|
@@ -39,8 +39,6 @@ export declare const PROXY_RESP_MODE_HEADER = "x-aex-proxy-effective-mode";
|
|
|
39
39
|
* without buffering). See the streaming byte-cap note in proxy-routes.ts.
|
|
40
40
|
*/
|
|
41
41
|
export declare const PROXY_RESP_TRUNCATED_HEADER = "x-aex-proxy-truncated";
|
|
42
|
-
export declare const PROXY_RESP_REMAINING_CALLS_HEADER = "x-aex-proxy-remaining-calls";
|
|
43
|
-
export declare const PROXY_RESP_REMAINING_BYTES_HEADER = "x-aex-proxy-remaining-bytes";
|
|
44
42
|
/** JSON object of lowercase upstream header names → values (mode-filtered). */
|
|
45
43
|
export declare const PROXY_RESP_UPSTREAM_HEADERS_HEADER = "x-aex-proxy-upstream-headers";
|
|
46
44
|
/**
|
|
@@ -77,7 +75,7 @@ export declare function narrowResponseMode(policy: ProxyResponseMode, requested:
|
|
|
77
75
|
* matches against them in scripts. Adding a new code is non-breaking;
|
|
78
76
|
* removing or renaming an existing code requires a protocol bump.
|
|
79
77
|
*/
|
|
80
|
-
export declare const PROXY_ERROR_CODES: readonly ["unsupported_protocol", "unauthorized", "endpoint_not_found", "policy_denied", "rate_limited", "
|
|
78
|
+
export declare const PROXY_ERROR_CODES: readonly ["unsupported_protocol", "unauthorized", "endpoint_not_found", "policy_denied", "rate_limited", "ssrf_denied", "upstream_timeout", "upstream_error", "exceeded_cap", "bad_request", "internal_error"];
|
|
81
79
|
export type ProxyErrorCode = (typeof PROXY_ERROR_CODES)[number];
|
|
82
80
|
/**
|
|
83
81
|
* Shape of the JSON written to the per-run manifest mounted inside
|
|
@@ -108,23 +106,26 @@ export interface ProxyIndexEntry {
|
|
|
108
106
|
readonly maxRequestBytes: number;
|
|
109
107
|
readonly maxResponseBytes: number;
|
|
110
108
|
readonly timeoutMs: number;
|
|
111
|
-
readonly perCallBudget: number;
|
|
112
|
-
readonly responseByteBudget: number;
|
|
113
109
|
}
|
|
114
110
|
/**
|
|
115
|
-
* Default caps for a proxy endpoint when the submission doesn't specify
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
111
|
+
* Default caps for a proxy endpoint when the submission doesn't specify one.
|
|
112
|
+
* Lives in the protocol module (next to the index-file shape) so
|
|
113
|
+
* {@link buildProxyIndexFile} can fill every optional cap with a concrete
|
|
114
|
+
* value; the submission parser re-exports it.
|
|
115
|
+
*
|
|
116
|
+
* `maxResponseBytes: 0` means UNLIMITED — the v2 path streams the upstream body
|
|
117
|
+
* unbuffered (O(1) memory regardless of size), so there is no cap to apply by
|
|
118
|
+
* default. A customer can opt into a per-response truncation cap by setting a
|
|
119
|
+
* positive value. There is no cumulative per-run call/byte budget: it needed a
|
|
120
|
+
* per-call counter on the hot path and only existed to bound memory, which
|
|
121
|
+
* streaming already does.
|
|
119
122
|
*/
|
|
120
123
|
export declare const PROXY_ENDPOINT_DEFAULTS: {
|
|
121
124
|
readonly allowHeaders: readonly string[];
|
|
122
125
|
readonly responseMode: ProxyResponseMode;
|
|
123
126
|
readonly maxRequestBytes: number;
|
|
124
|
-
readonly maxResponseBytes:
|
|
127
|
+
readonly maxResponseBytes: 0;
|
|
125
128
|
readonly timeoutMs: 10000;
|
|
126
|
-
readonly perCallBudget: 60;
|
|
127
|
-
readonly responseByteBudget: number;
|
|
128
129
|
};
|
|
129
130
|
/**
|
|
130
131
|
* Non-secret endpoint policy the index builder consumes. Structurally a
|
|
@@ -142,8 +143,6 @@ export interface ProxyEndpointPolicy {
|
|
|
142
143
|
readonly maxRequestBytes?: number;
|
|
143
144
|
readonly maxResponseBytes?: number;
|
|
144
145
|
readonly timeoutMs?: number;
|
|
145
|
-
readonly perCallBudget?: number;
|
|
146
|
-
readonly responseByteBudget?: number;
|
|
147
146
|
}
|
|
148
147
|
export interface BuildProxyIndexFileInput {
|
|
149
148
|
readonly runId: string;
|
|
@@ -176,7 +175,7 @@ export declare function buildProxyIndexFile(input: BuildProxyIndexFileInput): Pr
|
|
|
176
175
|
*
|
|
177
176
|
* The `none` variant declares an upstream that takes no auth (public
|
|
178
177
|
* APIs like Wikimedia Commons or NASA Images). It still routes through
|
|
179
|
-
* the proxy for unified egress
|
|
178
|
+
* the proxy for unified egress and audit, but
|
|
180
179
|
* carries no `proxyEndpointAuth[]` entry and the BFF injects no
|
|
181
180
|
* header or query value.
|
|
182
181
|
*/
|
|
@@ -261,9 +260,6 @@ export interface ProxyResponseEnvelope {
|
|
|
261
260
|
*/
|
|
262
261
|
readonly effectiveResponseMode: ProxyResponseMode;
|
|
263
262
|
readonly modeClamped: boolean;
|
|
264
|
-
/** Remaining per-endpoint per-run budget after this call. */
|
|
265
|
-
readonly remainingCalls: number;
|
|
266
|
-
readonly remainingResponseBytes: number;
|
|
267
263
|
}
|
|
268
264
|
/**
|
|
269
265
|
* JSON body returned on any error. The CLI emits this verbatim on
|
|
@@ -48,8 +48,6 @@ export const PROXY_RESP_MODE_HEADER = "x-aex-proxy-effective-mode";
|
|
|
48
48
|
* without buffering). See the streaming byte-cap note in proxy-routes.ts.
|
|
49
49
|
*/
|
|
50
50
|
export const PROXY_RESP_TRUNCATED_HEADER = "x-aex-proxy-truncated";
|
|
51
|
-
export const PROXY_RESP_REMAINING_CALLS_HEADER = "x-aex-proxy-remaining-calls";
|
|
52
|
-
export const PROXY_RESP_REMAINING_BYTES_HEADER = "x-aex-proxy-remaining-bytes";
|
|
53
51
|
/** JSON object of lowercase upstream header names → values (mode-filtered). */
|
|
54
52
|
export const PROXY_RESP_UPSTREAM_HEADERS_HEADER = "x-aex-proxy-upstream-headers";
|
|
55
53
|
/**
|
|
@@ -103,7 +101,6 @@ export const PROXY_ERROR_CODES = [
|
|
|
103
101
|
"endpoint_not_found",
|
|
104
102
|
"policy_denied",
|
|
105
103
|
"rate_limited",
|
|
106
|
-
"budget_exceeded",
|
|
107
104
|
"ssrf_denied",
|
|
108
105
|
"upstream_timeout",
|
|
109
106
|
"upstream_error",
|
|
@@ -112,19 +109,26 @@ export const PROXY_ERROR_CODES = [
|
|
|
112
109
|
"internal_error"
|
|
113
110
|
];
|
|
114
111
|
/**
|
|
115
|
-
* Default caps for a proxy endpoint when the submission doesn't specify
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
112
|
+
* Default caps for a proxy endpoint when the submission doesn't specify one.
|
|
113
|
+
* Lives in the protocol module (next to the index-file shape) so
|
|
114
|
+
* {@link buildProxyIndexFile} can fill every optional cap with a concrete
|
|
115
|
+
* value; the submission parser re-exports it.
|
|
116
|
+
*
|
|
117
|
+
* `maxResponseBytes: 0` means UNLIMITED — the v2 path streams the upstream body
|
|
118
|
+
* unbuffered (O(1) memory regardless of size), so there is no cap to apply by
|
|
119
|
+
* default. A customer can opt into a per-response truncation cap by setting a
|
|
120
|
+
* positive value. There is no cumulative per-run call/byte budget: it needed a
|
|
121
|
+
* per-call counter on the hot path and only existed to bound memory, which
|
|
122
|
+
* streaming already does.
|
|
119
123
|
*/
|
|
120
124
|
export const PROXY_ENDPOINT_DEFAULTS = {
|
|
121
125
|
allowHeaders: [],
|
|
122
126
|
responseMode: "headers_only",
|
|
123
127
|
maxRequestBytes: 64 * 1024,
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
+
// Unlimited (0). The request body is buffered to enforce its cap, so that
|
|
129
|
+
// stays finite; the response is streamed, so it does not need one.
|
|
130
|
+
maxResponseBytes: 0,
|
|
131
|
+
timeoutMs: 10_000
|
|
128
132
|
};
|
|
129
133
|
/**
|
|
130
134
|
* Build the per-run {@link ProxyIndexFile} mounted into the container at
|
|
@@ -158,9 +162,7 @@ export function buildProxyIndexFile(input) {
|
|
|
158
162
|
responseMode: e.responseMode ?? PROXY_ENDPOINT_DEFAULTS.responseMode,
|
|
159
163
|
maxRequestBytes: e.maxRequestBytes ?? PROXY_ENDPOINT_DEFAULTS.maxRequestBytes,
|
|
160
164
|
maxResponseBytes: e.maxResponseBytes ?? PROXY_ENDPOINT_DEFAULTS.maxResponseBytes,
|
|
161
|
-
timeoutMs: e.timeoutMs ?? PROXY_ENDPOINT_DEFAULTS.timeoutMs
|
|
162
|
-
perCallBudget: e.perCallBudget ?? PROXY_ENDPOINT_DEFAULTS.perCallBudget,
|
|
163
|
-
responseByteBudget: e.responseByteBudget ?? PROXY_ENDPOINT_DEFAULTS.responseByteBudget
|
|
165
|
+
timeoutMs: e.timeoutMs ?? PROXY_ENDPOINT_DEFAULTS.timeoutMs
|
|
164
166
|
}))
|
|
165
167
|
};
|
|
166
168
|
}
|
|
@@ -256,7 +258,6 @@ export const PROXY_ERROR_HTTP_STATUS = {
|
|
|
256
258
|
endpoint_not_found: 404,
|
|
257
259
|
policy_denied: 403,
|
|
258
260
|
rate_limited: 429,
|
|
259
|
-
budget_exceeded: 429,
|
|
260
261
|
ssrf_denied: 403,
|
|
261
262
|
upstream_timeout: 504,
|
|
262
263
|
upstream_error: 502,
|
|
@@ -188,8 +188,6 @@ export interface PlatformProxyEndpoint {
|
|
|
188
188
|
readonly maxRequestBytes?: number;
|
|
189
189
|
readonly maxResponseBytes?: number;
|
|
190
190
|
readonly timeoutMs?: number;
|
|
191
|
-
readonly perCallBudget?: number;
|
|
192
|
-
readonly responseByteBudget?: number;
|
|
193
191
|
}
|
|
194
192
|
export declare const SECRETS_KEY = "secrets";
|
|
195
193
|
export declare const PROXY_ENDPOINT_NAME_PATTERN: RegExp;
|
|
@@ -323,9 +323,7 @@ function parseProxyEndpoint(input, path) {
|
|
|
323
323
|
"responseMode",
|
|
324
324
|
"maxRequestBytes",
|
|
325
325
|
"maxResponseBytes",
|
|
326
|
-
"timeoutMs"
|
|
327
|
-
"perCallBudget",
|
|
328
|
-
"responseByteBudget"
|
|
326
|
+
"timeoutMs"
|
|
329
327
|
]);
|
|
330
328
|
for (const key of Object.keys(value)) {
|
|
331
329
|
if (!allowed.has(key)) {
|
|
@@ -348,8 +346,6 @@ function parseProxyEndpoint(input, path) {
|
|
|
348
346
|
const maxRequestBytes = optionalPositiveInt(value.maxRequestBytes, `${path}.maxRequestBytes`);
|
|
349
347
|
const maxResponseBytes = optionalPositiveInt(value.maxResponseBytes, `${path}.maxResponseBytes`);
|
|
350
348
|
const timeoutMs = optionalPositiveInt(value.timeoutMs, `${path}.timeoutMs`);
|
|
351
|
-
const perCallBudget = optionalPositiveInt(value.perCallBudget, `${path}.perCallBudget`);
|
|
352
|
-
const responseByteBudget = optionalPositiveInt(value.responseByteBudget, `${path}.responseByteBudget`);
|
|
353
349
|
return {
|
|
354
350
|
name,
|
|
355
351
|
baseUrl,
|
|
@@ -360,9 +356,7 @@ function parseProxyEndpoint(input, path) {
|
|
|
360
356
|
...(responseMode ? { responseMode } : {}),
|
|
361
357
|
...(maxRequestBytes !== undefined ? { maxRequestBytes } : {}),
|
|
362
358
|
...(maxResponseBytes !== undefined ? { maxResponseBytes } : {}),
|
|
363
|
-
...(timeoutMs !== undefined ? { timeoutMs } : {})
|
|
364
|
-
...(perCallBudget !== undefined ? { perCallBudget } : {}),
|
|
365
|
-
...(responseByteBudget !== undefined ? { responseByteBudget } : {})
|
|
359
|
+
...(timeoutMs !== undefined ? { timeoutMs } : {})
|
|
366
360
|
};
|
|
367
361
|
}
|
|
368
362
|
function parseProxyBaseUrl(input, field) {
|
package/dist/cli.mjs
CHANGED
|
@@ -15,8 +15,6 @@ var PROXY_PROTOCOL_HEADER = "x-aex-proxy-protocol";
|
|
|
15
15
|
var PROXY_RESP_STATUS_HEADER = "x-aex-proxy-status";
|
|
16
16
|
var PROXY_RESP_MODE_HEADER = "x-aex-proxy-effective-mode";
|
|
17
17
|
var PROXY_RESP_TRUNCATED_HEADER = "x-aex-proxy-truncated";
|
|
18
|
-
var PROXY_RESP_REMAINING_CALLS_HEADER = "x-aex-proxy-remaining-calls";
|
|
19
|
-
var PROXY_RESP_REMAINING_BYTES_HEADER = "x-aex-proxy-remaining-bytes";
|
|
20
18
|
var PROXY_RESP_UPSTREAM_HEADERS_HEADER = "x-aex-proxy-upstream-headers";
|
|
21
19
|
var PROXY_METHOD_HEADER = "x-aex-method";
|
|
22
20
|
var PROXY_PATH_HEADER = "x-aex-path";
|
|
@@ -28,10 +26,10 @@ var PROXY_ENDPOINT_DEFAULTS = {
|
|
|
28
26
|
allowHeaders: [],
|
|
29
27
|
responseMode: "headers_only",
|
|
30
28
|
maxRequestBytes: 64 * 1024,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
// Unlimited (0). The request body is buffered to enforce its cap, so that
|
|
30
|
+
// stays finite; the response is streamed, so it does not need one.
|
|
31
|
+
maxResponseBytes: 0,
|
|
32
|
+
timeoutMs: 1e4
|
|
35
33
|
};
|
|
36
34
|
|
|
37
35
|
// ../contracts/dist/provider-support.js
|
|
@@ -2642,7 +2640,7 @@ async function printProxyHelp(io2) {
|
|
|
2642
2640
|
if (manifest && manifest.endpoints.length > 0) {
|
|
2643
2641
|
io2.stdout("Declared endpoints:\n");
|
|
2644
2642
|
for (const ep of manifest.endpoints) {
|
|
2645
|
-
io2.stdout(` \u2022 ${ep.name}: ${ep.allowMethods.join(",")} ${ep.allowPathPrefixes.join(",")} (mode=${ep.responseMode}
|
|
2643
|
+
io2.stdout(` \u2022 ${ep.name}: ${ep.allowMethods.join(",")} ${ep.allowPathPrefixes.join(",")} (mode=${ep.responseMode})
|
|
2646
2644
|
`);
|
|
2647
2645
|
}
|
|
2648
2646
|
}
|
|
@@ -2801,8 +2799,6 @@ function emitError(io2, body) {
|
|
|
2801
2799
|
async function readStreamedEnvelope(response, endpointName) {
|
|
2802
2800
|
const effectiveResponseMode = response.headers.get(PROXY_RESP_MODE_HEADER) ?? "headers_only";
|
|
2803
2801
|
const upstreamStatus = Number.parseInt(response.headers.get(PROXY_RESP_STATUS_HEADER) ?? "0", 10);
|
|
2804
|
-
const remainingCalls = Number.parseInt(response.headers.get(PROXY_RESP_REMAINING_CALLS_HEADER) ?? "0", 10);
|
|
2805
|
-
const remainingResponseBytes = Number.parseInt(response.headers.get(PROXY_RESP_REMAINING_BYTES_HEADER) ?? "0", 10);
|
|
2806
2802
|
let upstreamHeaders = {};
|
|
2807
2803
|
const rawHeaders = response.headers.get(PROXY_RESP_UPSTREAM_HEADERS_HEADER);
|
|
2808
2804
|
if (rawHeaders) {
|
|
@@ -2825,8 +2821,6 @@ async function readStreamedEnvelope(response, endpointName) {
|
|
|
2825
2821
|
// isn't carried back); the effective mode is authoritative for the
|
|
2826
2822
|
// agent and matches what v1 surfaced for an un-clamped call.
|
|
2827
2823
|
modeClamped: false,
|
|
2828
|
-
remainingCalls,
|
|
2829
|
-
remainingResponseBytes,
|
|
2830
2824
|
...effectiveResponseMode === "full" && bytes.byteLength > 0 ? { upstreamBodyBase64: Buffer.from(bytes).toString("base64") } : {},
|
|
2831
2825
|
...truncatedRaw === "true" ? { truncated: true } : {}
|
|
2832
2826
|
};
|
package/dist/cli.mjs.sha256
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
8fc0f76c60d859e98d5f41fc2d6f2195fbb10b1ece6de8275ab3d3f27518c202 cli.mjs
|
package/dist/proxy-endpoint.d.ts
CHANGED
|
@@ -56,8 +56,6 @@ export interface ProxyEndpointCommonOptions {
|
|
|
56
56
|
readonly maxRequestBytes?: number;
|
|
57
57
|
readonly maxResponseBytes?: number;
|
|
58
58
|
readonly timeoutMs?: number;
|
|
59
|
-
readonly perCallBudget?: number;
|
|
60
|
-
readonly responseByteBudget?: number;
|
|
61
59
|
}
|
|
62
60
|
export interface BearerProxyEndpointOptions extends ProxyEndpointCommonOptions {
|
|
63
61
|
/** Bearer token sent as `Authorization: Bearer <token>`. */
|
|
@@ -99,7 +97,7 @@ export declare class ProxyEndpoint {
|
|
|
99
97
|
private constructor();
|
|
100
98
|
/**
|
|
101
99
|
* Keyless endpoint. Routes through the aex managed proxy for
|
|
102
|
-
* unified egress
|
|
100
|
+
* unified egress and audit, but the BFF injects
|
|
103
101
|
* no auth header or query parameter. Use for public APIs (Wikimedia
|
|
104
102
|
* Commons, NASA Images, Library of Congress, NARA, GDELT, etc.).
|
|
105
103
|
*/
|
package/dist/proxy-endpoint.js
CHANGED
|
@@ -14,7 +14,7 @@ export class ProxyEndpoint {
|
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Keyless endpoint. Routes through the aex managed proxy for
|
|
17
|
-
* unified egress
|
|
17
|
+
* unified egress and audit, but the BFF injects
|
|
18
18
|
* no auth header or query parameter. Use for public APIs (Wikimedia
|
|
19
19
|
* Commons, NASA Images, Library of Congress, NARA, GDELT, etc.).
|
|
20
20
|
*/
|
|
@@ -132,11 +132,7 @@ function buildCommonDeclaration(options, authShape) {
|
|
|
132
132
|
...(options.responseMode ? { responseMode: options.responseMode } : {}),
|
|
133
133
|
...(options.maxRequestBytes !== undefined ? { maxRequestBytes: options.maxRequestBytes } : {}),
|
|
134
134
|
...(options.maxResponseBytes !== undefined ? { maxResponseBytes: options.maxResponseBytes } : {}),
|
|
135
|
-
...(options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {})
|
|
136
|
-
...(options.perCallBudget !== undefined ? { perCallBudget: options.perCallBudget } : {}),
|
|
137
|
-
...(options.responseByteBudget !== undefined
|
|
138
|
-
? { responseByteBudget: options.responseByteBudget }
|
|
139
|
-
: {})
|
|
135
|
+
...(options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {})
|
|
140
136
|
};
|
|
141
137
|
}
|
|
142
138
|
function requireNonEmpty(value, message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-endpoint.js","sourceRoot":"","sources":["../src/proxy-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EAOrB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy-endpoint.js","sourceRoot":"","sources":["../src/proxy-endpoint.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aexhq/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "TypeScript SDK for running autonomous agent sessions across providers (Anthropic, OpenAI, DeepSeek, Gemini, Mistral) behind one interface.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"examples"
|
|
27
27
|
],
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@aexhq/contracts": "0.
|
|
29
|
+
"@aexhq/contracts": "0.16.0"
|
|
30
30
|
},
|
|
31
31
|
"engines": {
|
|
32
32
|
"node": ">=20"
|