@availsync/node 0.1.0-alpha.2 → 0.1.0-alpha.3
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/README.md +16 -7
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -8
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,6 +28,8 @@ import { createAvailsyncClient } from '@availsync/node';
|
|
|
28
28
|
const availsync = createAvailsyncClient({
|
|
29
29
|
apiKey: process.env.AVAILSYNC_API_KEY!,
|
|
30
30
|
agentId: process.env.AVAILSYNC_AGENT_ID!,
|
|
31
|
+
baseUrl: process.env.AVAILSYNC_API_URL,
|
|
32
|
+
timeoutMs: 30_000,
|
|
31
33
|
});
|
|
32
34
|
|
|
33
35
|
const result = await availsync.work.withClaim(
|
|
@@ -38,10 +40,15 @@ const result = await availsync.work.withClaim(
|
|
|
38
40
|
console.warn('Observe-only: Availsync would have skipped this run.');
|
|
39
41
|
}
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
const extendTimer = claim
|
|
44
|
+
? setInterval(() => claim.extend({ durationMinutes: 45 }).catch(console.error), 40 * 60_000)
|
|
45
|
+
: null;
|
|
42
46
|
|
|
43
|
-
|
|
44
|
-
|
|
47
|
+
try {
|
|
48
|
+
await doWork();
|
|
49
|
+
} finally {
|
|
50
|
+
if (extendTimer) clearInterval(extendTimer);
|
|
51
|
+
}
|
|
45
52
|
},
|
|
46
53
|
);
|
|
47
54
|
|
|
@@ -52,7 +59,7 @@ if (result.action === 'skip_run') {
|
|
|
52
59
|
|
|
53
60
|
## API surface
|
|
54
61
|
|
|
55
|
-
- `createAvailsyncClient({ apiKey, agentId, baseUrl? })`
|
|
62
|
+
- `createAvailsyncClient({ apiKey, agentId, baseUrl?, timeoutMs? })`
|
|
56
63
|
- `client.work.withClaim(resource, options, fn)`
|
|
57
64
|
- `client.work.start({ resource, durationMinutes?, reason?, idempotencyKey?, metadata? })`
|
|
58
65
|
- `client.work.extend(claimId, { durationMinutes? })`
|
|
@@ -77,12 +84,14 @@ if (started.shadow_mode && started.would_have_blocked) {
|
|
|
77
84
|
console.warn('Observe-only: Availsync would have skipped this run.');
|
|
78
85
|
}
|
|
79
86
|
|
|
87
|
+
const extendTimer = started.claim
|
|
88
|
+
? setInterval(() => availsync.work.extend(started.claim!.id, { durationMinutes: 45 }).catch(console.error), 40 * 60_000)
|
|
89
|
+
: null;
|
|
90
|
+
|
|
80
91
|
try {
|
|
81
92
|
await doWork();
|
|
82
|
-
if (started.claim) {
|
|
83
|
-
await availsync.work.extend(started.claim.id, { durationMinutes: 45 });
|
|
84
|
-
}
|
|
85
93
|
} finally {
|
|
94
|
+
if (extendTimer) clearInterval(extendTimer);
|
|
86
95
|
if (started.claim) {
|
|
87
96
|
await availsync.work.finish(started.claim.id, { outcome: 'finished' });
|
|
88
97
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export type AvailsyncClientOptions = {
|
|
|
4
4
|
apiKey: string;
|
|
5
5
|
agentId: string;
|
|
6
6
|
baseUrl?: string;
|
|
7
|
+
timeoutMs?: number;
|
|
7
8
|
fetch?: FetchLike;
|
|
8
9
|
};
|
|
9
10
|
export type WorkStartOptions = {
|
|
@@ -12,14 +13,17 @@ export type WorkStartOptions = {
|
|
|
12
13
|
reason?: string;
|
|
13
14
|
idempotencyKey?: string;
|
|
14
15
|
metadata?: Record<string, unknown>;
|
|
16
|
+
signal?: AbortSignal;
|
|
15
17
|
};
|
|
16
18
|
export type WorkExtendOptions = {
|
|
17
19
|
durationMinutes?: number;
|
|
20
|
+
signal?: AbortSignal;
|
|
18
21
|
};
|
|
19
22
|
export type WorkFinishOptions = {
|
|
20
23
|
outcome?: string;
|
|
21
24
|
reason?: string;
|
|
22
25
|
metadata?: Record<string, unknown>;
|
|
26
|
+
signal?: AbortSignal;
|
|
23
27
|
};
|
|
24
28
|
export type ParsedResource = {
|
|
25
29
|
resourceType: ResourceType;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,CACtB,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,CAAC,EAAE,WAAW,KACf,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -36,6 +36,7 @@ export function createAvailsyncClient(options) {
|
|
|
36
36
|
throw new AvailsyncError({ code: 'missing_agent_id', message: 'agentId is required.' });
|
|
37
37
|
}
|
|
38
38
|
const baseUrl = (options.baseUrl ?? 'https://availsync.dev').replace(/\/+$/, '');
|
|
39
|
+
const timeoutMs = options.timeoutMs ?? 30_000;
|
|
39
40
|
const fetchImpl = options.fetch ?? globalThis.fetch;
|
|
40
41
|
if (!fetchImpl) {
|
|
41
42
|
throw new AvailsyncError({
|
|
@@ -43,18 +44,35 @@ export function createAvailsyncClient(options) {
|
|
|
43
44
|
message: 'Global fetch is unavailable. Use Node 18+ or pass a fetch implementation.',
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
|
-
async function request(path, init) {
|
|
47
|
+
async function request(path, init, signal) {
|
|
48
|
+
const abort = createRequestAbort(timeoutMs, signal);
|
|
47
49
|
let response;
|
|
48
50
|
try {
|
|
49
|
-
response = await fetchImpl(`${baseUrl}${path}`, init);
|
|
51
|
+
response = await fetchImpl(`${baseUrl}${path}`, { ...init, signal: abort.signal });
|
|
50
52
|
}
|
|
51
53
|
catch (error) {
|
|
54
|
+
if (abort.timedOut()) {
|
|
55
|
+
throw new AvailsyncError({
|
|
56
|
+
code: 'timeout',
|
|
57
|
+
message: 'Timed out calling Availsync.',
|
|
58
|
+
details: { timeout_ms: timeoutMs },
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
if (signal?.aborted) {
|
|
62
|
+
throw new AvailsyncError({
|
|
63
|
+
code: 'aborted',
|
|
64
|
+
message: 'Availsync request was aborted.',
|
|
65
|
+
});
|
|
66
|
+
}
|
|
52
67
|
throw new AvailsyncError({
|
|
53
68
|
code: 'network_error',
|
|
54
69
|
message: 'Network error calling Availsync.',
|
|
55
70
|
details: error instanceof Error ? { message: error.message } : undefined,
|
|
56
71
|
});
|
|
57
72
|
}
|
|
73
|
+
finally {
|
|
74
|
+
abort.cleanup();
|
|
75
|
+
}
|
|
58
76
|
const body = await parseJson(response);
|
|
59
77
|
if (!response.ok) {
|
|
60
78
|
const errorBody = asRecord(body);
|
|
@@ -88,7 +106,7 @@ export function createAvailsyncClient(options) {
|
|
|
88
106
|
metadata: input.metadata,
|
|
89
107
|
client_name: '@availsync/node',
|
|
90
108
|
}),
|
|
91
|
-
});
|
|
109
|
+
}, input.signal);
|
|
92
110
|
}
|
|
93
111
|
async function extend(claimId, input = {}) {
|
|
94
112
|
return request('/v1/work/run/extend', {
|
|
@@ -99,7 +117,7 @@ export function createAvailsyncClient(options) {
|
|
|
99
117
|
duration_minutes: input.durationMinutes,
|
|
100
118
|
client_name: '@availsync/node',
|
|
101
119
|
}),
|
|
102
|
-
});
|
|
120
|
+
}, input.signal);
|
|
103
121
|
}
|
|
104
122
|
async function finish(claimId, input = {}) {
|
|
105
123
|
return request('/v1/work/run/finish', {
|
|
@@ -112,7 +130,7 @@ export function createAvailsyncClient(options) {
|
|
|
112
130
|
metadata: input.metadata,
|
|
113
131
|
client_name: '@availsync/node',
|
|
114
132
|
}),
|
|
115
|
-
});
|
|
133
|
+
}, input.signal);
|
|
116
134
|
}
|
|
117
135
|
function guardedClaim(claim) {
|
|
118
136
|
return {
|
|
@@ -149,13 +167,12 @@ export function createAvailsyncClient(options) {
|
|
|
149
167
|
};
|
|
150
168
|
}
|
|
151
169
|
const claim = guardedClaim(startResult.claim);
|
|
170
|
+
let result;
|
|
152
171
|
try {
|
|
153
|
-
|
|
172
|
+
result = await fn({
|
|
154
173
|
claim,
|
|
155
174
|
shadow: { mode: shadowMode, wouldHaveBlocked, decision: shadowDecision },
|
|
156
175
|
});
|
|
157
|
-
await finish(claim.id, { outcome: 'finished' });
|
|
158
|
-
return { action: 'proceed', claim, result, shadowMode, wouldHaveBlocked, shadowDecision };
|
|
159
176
|
}
|
|
160
177
|
catch (error) {
|
|
161
178
|
try {
|
|
@@ -166,6 +183,8 @@ export function createAvailsyncClient(options) {
|
|
|
166
183
|
}
|
|
167
184
|
throw error;
|
|
168
185
|
}
|
|
186
|
+
await finish(claim.id, { outcome: 'finished' });
|
|
187
|
+
return { action: 'proceed', claim, result, shadowMode, wouldHaveBlocked, shadowDecision };
|
|
169
188
|
}
|
|
170
189
|
return {
|
|
171
190
|
work: {
|
|
@@ -176,6 +195,37 @@ export function createAvailsyncClient(options) {
|
|
|
176
195
|
},
|
|
177
196
|
};
|
|
178
197
|
}
|
|
198
|
+
function createRequestAbort(timeoutMs, external) {
|
|
199
|
+
const controller = new AbortController();
|
|
200
|
+
let didTimeout = false;
|
|
201
|
+
let timeout;
|
|
202
|
+
if (timeoutMs > 0) {
|
|
203
|
+
timeout = setTimeout(() => {
|
|
204
|
+
didTimeout = true;
|
|
205
|
+
controller.abort();
|
|
206
|
+
}, timeoutMs);
|
|
207
|
+
}
|
|
208
|
+
const abortFromExternal = () => controller.abort();
|
|
209
|
+
if (external) {
|
|
210
|
+
if (external.aborted) {
|
|
211
|
+
controller.abort();
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
external.addEventListener('abort', abortFromExternal, { once: true });
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
signal: controller.signal,
|
|
219
|
+
cleanup() {
|
|
220
|
+
if (timeout)
|
|
221
|
+
clearTimeout(timeout);
|
|
222
|
+
external?.removeEventListener('abort', abortFromExternal);
|
|
223
|
+
},
|
|
224
|
+
timedOut() {
|
|
225
|
+
return didTimeout;
|
|
226
|
+
},
|
|
227
|
+
};
|
|
228
|
+
}
|
|
179
229
|
async function parseJson(response) {
|
|
180
230
|
const text = await response.text();
|
|
181
231
|
if (!text)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|