@mandate-os/sdk 0.1.8 → 0.1.9
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/agent-client.d.ts +6 -0
- package/agent-client.d.ts.map +1 -1
- package/agent-client.js +128 -29
- package/agent-client.js.map +1 -1
- package/package.json +1 -1
package/agent-client.d.ts
CHANGED
|
@@ -11,6 +11,9 @@ export type MandateOsAgentClientOptions = {
|
|
|
11
11
|
bearerToken: string;
|
|
12
12
|
fetchImpl?: FetchLike;
|
|
13
13
|
defaultSource?: string;
|
|
14
|
+
requestTimeoutMs?: number;
|
|
15
|
+
maxRetries?: number;
|
|
16
|
+
retryDelayMs?: number;
|
|
14
17
|
};
|
|
15
18
|
export type MandateOsClientResponse<T> = ApiSuccessPayload<T> & {
|
|
16
19
|
headers: {
|
|
@@ -31,6 +34,9 @@ export declare class MandateOsAgentClient {
|
|
|
31
34
|
private readonly fetchImpl;
|
|
32
35
|
private readonly bearerToken;
|
|
33
36
|
private readonly defaultSource?;
|
|
37
|
+
private readonly requestTimeoutMs;
|
|
38
|
+
private readonly maxRetries;
|
|
39
|
+
private readonly retryDelayMs;
|
|
34
40
|
constructor(options: MandateOsAgentClientOptions);
|
|
35
41
|
issueMandate(draft: MandateDraft, options?: MutationOptions): Promise<MandateOsClientResponse<MandateRecord>>;
|
|
36
42
|
evaluateActions(input: RuntimeActionEvaluationInput, options?: MutationOptions): Promise<MandateOsClientResponse<RuntimeSimulationBatch>>;
|
package/agent-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../../../packages/mandate-os-sdk/src/agent-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,EAC9B,+BAA+B,EAC/B,oCAAoC,EACpC,qCAAqC,EACrC,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,KAAK,SAAS,GAAG,OAAO,KAAK,CAAC;AAE9B,KAAK,eAAe,GAAG;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../../../packages/mandate-os-sdk/src/agent-client.ts"],"names":[],"mappings":"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"}
|
package/agent-client.js
CHANGED
|
@@ -15,6 +15,9 @@ export class MandateOsAgentClient {
|
|
|
15
15
|
this.fetchImpl = options.fetchImpl || fetch;
|
|
16
16
|
this.bearerToken = options.bearerToken;
|
|
17
17
|
this.defaultSource = options.defaultSource?.trim() || undefined;
|
|
18
|
+
this.requestTimeoutMs = normalizePositiveInteger(options.requestTimeoutMs, 20000);
|
|
19
|
+
this.maxRetries = normalizeNonNegativeInteger(options.maxRetries, 1);
|
|
20
|
+
this.retryDelayMs = normalizeNonNegativeInteger(options.retryDelayMs, 250);
|
|
18
21
|
}
|
|
19
22
|
async issueMandate(draft, options) {
|
|
20
23
|
return this.request('/api/v1/mandates', {
|
|
@@ -79,36 +82,61 @@ export class MandateOsAgentClient {
|
|
|
79
82
|
}
|
|
80
83
|
async request(path, init) {
|
|
81
84
|
const method = (init.method || 'GET').toUpperCase();
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
headers.
|
|
85
|
+
const idempotencyKey = ['POST', 'PUT', 'PATCH', 'DELETE'].includes(method)
|
|
86
|
+
? init.idempotencyKey || createIdempotencyKey()
|
|
87
|
+
: undefined;
|
|
88
|
+
for (let attempt = 0; attempt <= this.maxRetries; attempt += 1) {
|
|
89
|
+
const headers = new Headers(init.headers);
|
|
90
|
+
const requestSignal = createTimedRequestSignal(init.signal, this.requestTimeoutMs);
|
|
91
|
+
headers.set('accept', 'application/json');
|
|
92
|
+
headers.set('authorization', `Bearer ${this.bearerToken}`);
|
|
93
|
+
if (init.body !== undefined && !headers.has('content-type')) {
|
|
94
|
+
headers.set('content-type', 'application/json');
|
|
95
|
+
}
|
|
96
|
+
if (idempotencyKey && !headers.has('idempotency-key')) {
|
|
97
|
+
headers.set('idempotency-key', idempotencyKey);
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const response = await this.fetchImpl(`${this.baseUrl}${path}`, {
|
|
101
|
+
...init,
|
|
102
|
+
method,
|
|
103
|
+
headers,
|
|
104
|
+
signal: requestSignal.signal,
|
|
105
|
+
});
|
|
106
|
+
const payload = (await response.json().catch(() => null));
|
|
107
|
+
if (shouldRetryResponse(response.status) &&
|
|
108
|
+
attempt < this.maxRetries) {
|
|
109
|
+
await delay(this.retryDelayMs);
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
if (!response.ok || !payload?.meta || payload.data === undefined) {
|
|
113
|
+
throw new MandateOsAgentClientError(payload?.error?.issues?.[0]?.message ||
|
|
114
|
+
payload?.error?.message ||
|
|
115
|
+
'MandateOS request failed.', response.status, payload?.error?.code, payload?.meta?.requestId, payload?.error?.issues);
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
data: payload.data,
|
|
119
|
+
meta: payload.meta,
|
|
120
|
+
headers: {
|
|
121
|
+
idempotencyKey: response.headers.get('x-idempotency-key'),
|
|
122
|
+
idempotencyStatus: response.headers.get('x-idempotency-status'),
|
|
123
|
+
originRequestId: response.headers.get('x-idempotency-origin-request-id'),
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
if (shouldRetryTransportError(error, requestSignal.timedOut, init.signal) &&
|
|
129
|
+
attempt < this.maxRetries) {
|
|
130
|
+
await delay(this.retryDelayMs);
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
throw normalizeTransportError(error, requestSignal.timedOut, this.requestTimeoutMs);
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
requestSignal.cleanup();
|
|
137
|
+
}
|
|
87
138
|
}
|
|
88
|
-
|
|
89
|
-
!headers.has('idempotency-key')) {
|
|
90
|
-
headers.set('idempotency-key', init.idempotencyKey || createIdempotencyKey());
|
|
91
|
-
}
|
|
92
|
-
const response = await this.fetchImpl(`${this.baseUrl}${path}`, {
|
|
93
|
-
...init,
|
|
94
|
-
method,
|
|
95
|
-
headers,
|
|
96
|
-
});
|
|
97
|
-
const payload = (await response.json().catch(() => null));
|
|
98
|
-
if (!response.ok || !payload?.meta || payload.data === undefined) {
|
|
99
|
-
throw new MandateOsAgentClientError(payload?.error?.issues?.[0]?.message ||
|
|
100
|
-
payload?.error?.message ||
|
|
101
|
-
'MandateOS request failed.', response.status, payload?.error?.code, payload?.meta?.requestId, payload?.error?.issues);
|
|
102
|
-
}
|
|
103
|
-
return {
|
|
104
|
-
data: payload.data,
|
|
105
|
-
meta: payload.meta,
|
|
106
|
-
headers: {
|
|
107
|
-
idempotencyKey: response.headers.get('x-idempotency-key'),
|
|
108
|
-
idempotencyStatus: response.headers.get('x-idempotency-status'),
|
|
109
|
-
originRequestId: response.headers.get('x-idempotency-origin-request-id'),
|
|
110
|
-
},
|
|
111
|
-
};
|
|
139
|
+
throw new MandateOsAgentClientError('MandateOS request failed after retries were exhausted.', 0, 'network_error');
|
|
112
140
|
}
|
|
113
141
|
}
|
|
114
142
|
function createIdempotencyKey() {
|
|
@@ -118,4 +146,75 @@ function createIdempotencyKey() {
|
|
|
118
146
|
}
|
|
119
147
|
return `agent_${Date.now().toString(36)}`;
|
|
120
148
|
}
|
|
149
|
+
function createTimedRequestSignal(upstreamSignal, timeoutMs) {
|
|
150
|
+
const controller = new AbortController();
|
|
151
|
+
let timedOut = false;
|
|
152
|
+
const timeoutHandle = setTimeout(() => {
|
|
153
|
+
timedOut = true;
|
|
154
|
+
controller.abort(new Error(`MandateOS request timed out after ${timeoutMs} ms.`));
|
|
155
|
+
}, timeoutMs);
|
|
156
|
+
const abortFromUpstream = () => {
|
|
157
|
+
controller.abort(upstreamSignal?.reason);
|
|
158
|
+
};
|
|
159
|
+
if (upstreamSignal?.aborted) {
|
|
160
|
+
abortFromUpstream();
|
|
161
|
+
}
|
|
162
|
+
else if (upstreamSignal) {
|
|
163
|
+
upstreamSignal.addEventListener('abort', abortFromUpstream, { once: true });
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
signal: controller.signal,
|
|
167
|
+
get timedOut() {
|
|
168
|
+
return timedOut;
|
|
169
|
+
},
|
|
170
|
+
cleanup() {
|
|
171
|
+
clearTimeout(timeoutHandle);
|
|
172
|
+
if (upstreamSignal) {
|
|
173
|
+
upstreamSignal.removeEventListener('abort', abortFromUpstream);
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
function shouldRetryResponse(status) {
|
|
179
|
+
return status === 408 || status === 429 || status >= 500;
|
|
180
|
+
}
|
|
181
|
+
function shouldRetryTransportError(error, timedOut, upstreamSignal) {
|
|
182
|
+
if (upstreamSignal?.aborted) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
if (timedOut) {
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
if (error instanceof MandateOsAgentClientError) {
|
|
189
|
+
return shouldRetryResponse(error.status);
|
|
190
|
+
}
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
function normalizeTransportError(error, timedOut, timeoutMs) {
|
|
194
|
+
if (error instanceof MandateOsAgentClientError) {
|
|
195
|
+
return error;
|
|
196
|
+
}
|
|
197
|
+
if (timedOut) {
|
|
198
|
+
return new MandateOsAgentClientError(`MandateOS request timed out after ${timeoutMs} ms.`, 408, 'timeout');
|
|
199
|
+
}
|
|
200
|
+
if (error instanceof Error) {
|
|
201
|
+
return new MandateOsAgentClientError(error.message || 'MandateOS network request failed.', 0, 'network_error');
|
|
202
|
+
}
|
|
203
|
+
return new MandateOsAgentClientError('MandateOS network request failed.', 0, 'network_error');
|
|
204
|
+
}
|
|
205
|
+
function delay(durationMs) {
|
|
206
|
+
return new Promise((resolve) => {
|
|
207
|
+
setTimeout(resolve, durationMs);
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
function normalizePositiveInteger(value, fallback) {
|
|
211
|
+
return typeof value === 'number' && Number.isFinite(value) && value > 0
|
|
212
|
+
? Math.floor(value)
|
|
213
|
+
: fallback;
|
|
214
|
+
}
|
|
215
|
+
function normalizeNonNegativeInteger(value, fallback) {
|
|
216
|
+
return typeof value === 'number' && Number.isFinite(value) && value >= 0
|
|
217
|
+
? Math.floor(value)
|
|
218
|
+
: fallback;
|
|
219
|
+
}
|
|
121
220
|
//# sourceMappingURL=agent-client.js.map
|
package/agent-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../../../packages/mandate-os-sdk/src/agent-client.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,8BAA8B,GAE/B,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../../../packages/mandate-os-sdk/src/agent-client.ts"],"names":[],"mappings":"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"}
|