@expandai/sdk 0.17.2 → 0.19.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.
@@ -3,14 +3,20 @@ import { Cause, Effect, HashSet, Layer, Match, Option, ParseResult } from 'effec
3
3
  import { ExpandApiError, ExpandClientError, ExpandConnectionError, ExpandSdkError, ExpandTimeoutError, } from './Error.js';
4
4
  import * as Generated from './Generated.js';
5
5
  import { ExpandService, } from './Service.js';
6
- const RETRYABLE_STATUS_CODES = HashSet.make(408, 409, 429, 500, 502, 503, 504);
6
+ const RETRYABLE_STATUS_CODES = HashSet.make(408, 409, 429, 500, 502, 503, 504, 529);
7
7
  function hasApiErrorTag(error, tag) {
8
8
  return typeof error === 'object' && error !== null && '_tag' in error && error._tag === tag;
9
9
  }
10
10
  function apiError(status, error) {
11
- const message = typeof error === 'object' && error !== null && '_tag' in error && typeof error._tag === 'string'
12
- ? error._tag
13
- : `HTTP ${status}`;
11
+ const message = typeof error === 'object' &&
12
+ error !== null &&
13
+ 'message' in error &&
14
+ typeof error.message === 'string' &&
15
+ error.message.length > 0
16
+ ? error.message
17
+ : typeof error === 'object' && error !== null && '_tag' in error && typeof error._tag === 'string'
18
+ ? error._tag
19
+ : `HTTP ${status}`;
14
20
  return new ExpandApiError({ message, status, body: error, cause: error });
15
21
  }
16
22
  /**
@@ -19,12 +25,18 @@ function apiError(status, error) {
19
25
  * its public error channel.
20
26
  */
21
27
  export function toExpandError(error, timeoutMs) {
22
- return Match.value(error).pipe(Match.when((error) => error instanceof Cause.TimeoutException, (error) => new ExpandTimeoutError({ message: `Request timed out after ${timeoutMs}ms`, timeoutMs, cause: error })), Match.when((error) => error instanceof HttpClientError.RequestError, (error) => new ExpandConnectionError({ message: error.message, cause: error })), Match.when((error) => error instanceof HttpClientError.ResponseError, (error) => new ExpandApiError({
28
+ // Split across two `pipe` calls: the arm list is longer than `pipe`'s 20-argument overloads.
29
+ // Arms are evaluated top to bottom across both halves, so the ordering is unaffected.
30
+ const transportAndClientErrors = Match.value(error).pipe(Match.when((error) => error instanceof Cause.TimeoutException, (error) => new ExpandTimeoutError({ message: `Request timed out after ${timeoutMs}ms`, timeoutMs, cause: error })), Match.when((error) => error instanceof HttpClientError.RequestError, (error) => new ExpandConnectionError({ message: error.message, cause: error })), Match.when((error) => error instanceof HttpClientError.ResponseError, (error) => new ExpandApiError({
23
31
  message: error.message,
24
32
  status: error.response.status,
25
33
  body: error.description,
26
34
  cause: error,
27
- })), Match.when((error) => error instanceof Generated.AuthFailed, (error) => new ExpandApiError({ message: 'AuthFailed', status: 401, body: error, cause: error })), Match.when((error) => hasApiErrorTag(error, 'AuthFailed'), (error) => apiError(401, error)), Match.when((error) => hasApiErrorTag(error, 'AccessBlocked'), (error) => apiError(403, error)), Match.when((error) => error instanceof Generated.PayloadTooLarge, (error) => new ExpandApiError({ message: 'PayloadTooLarge', status: 413, body: error, cause: error })), Match.when((error) => hasApiErrorTag(error, 'PayloadTooLarge'), (error) => apiError(413, error)), Match.when((error) => error instanceof Generated.TooManyRequests, (error) => new ExpandApiError({ message: 'TooManyRequests', status: 429, body: error, cause: error })), Match.when((error) => hasApiErrorTag(error, 'TooManyRequests'), (error) => apiError(429, error)), Match.when((error) => error instanceof Generated.InternalError, (error) => new ExpandApiError({ message: 'InternalError', status: 500, body: error, cause: error })), Match.when((error) => hasApiErrorTag(error, 'InternalError'), (error) => apiError(500, error)), Match.when((error) => error instanceof Generated.ServiceUnavailable, (error) => new ExpandApiError({ message: 'ServiceUnavailable', status: 503, body: error, cause: error })), Match.when((error) => hasApiErrorTag(error, 'ServiceUnavailable'), (error) => apiError(503, error)), Match.when((error) => error instanceof Generated.HttpApiDecodeError, (error) => new ExpandApiError({ message: 'HttpApiDecodeError', status: 400, body: error, cause: error })), Match.when((error) => hasApiErrorTag(error, 'HttpApiDecodeError') || hasApiErrorTag(error, 'BadRequest'), (error) => apiError(400, error)), Match.when((error) => hasApiErrorTag(error, 'FetchSnapshotSearchNotFound'), (error) => apiError(404, error)),
35
+ })), Match.when((error) => error instanceof Generated.AuthFailed, (error) => new ExpandApiError({ message: 'AuthFailed', status: 401, body: error, cause: error })), Match.when((error) => hasApiErrorTag(error, 'AuthFailed'), (error) => apiError(401, error)), Match.when((error) => hasApiErrorTag(error, 'AccessBlocked'), (error) => apiError(403, error)), Match.when((error) => hasApiErrorTag(error, 'BatchedIdempotencyConflict') || hasApiErrorTag(error, 'BatchedCancellationConflict'), (error) => apiError(409, error)), Match.when((error) => error instanceof Generated.PayloadTooLarge, (error) => new ExpandApiError({ message: 'PayloadTooLarge', status: 413, body: error, cause: error })), Match.when((error) => hasApiErrorTag(error, 'PayloadTooLarge'), (error) => apiError(413, error)), Match.when((error) => error instanceof Generated.TooManyRequests, (error) => new ExpandApiError({ message: 'TooManyRequests', status: 429, body: error, cause: error })), Match.when((error) => hasApiErrorTag(error, 'TooManyRequests'), (error) => apiError(429, error)));
36
+ return transportAndClientErrors.pipe(Match.when((error) => error instanceof Generated.InternalError, (error) => new ExpandApiError({ message: 'InternalError', status: 500, body: error, cause: error })), Match.when((error) => hasApiErrorTag(error, 'InternalError'), (error) => apiError(500, error)), Match.when((error) => hasApiErrorTag(error, 'FetchNavigationFailed'), (error) => apiError(502, error)),
37
+ // No `instanceof Generated.ServiceUnavailable` arm: decoded instances carry `_tag`, so the
38
+ // tag predicate already matches them and both would produce the same `apiError(503, ...)`.
39
+ Match.when((error) => hasApiErrorTag(error, 'ServiceUnavailable'), (error) => apiError(503, error)), Match.when((error) => hasApiErrorTag(error, 'FetchCaptureTimeout'), (error) => apiError(504, error)), Match.when((error) => hasApiErrorTag(error, 'FetchCapacityTimeout'), (error) => apiError(529, error)), Match.when((error) => error instanceof Generated.HttpApiDecodeError, (error) => new ExpandApiError({ message: 'HttpApiDecodeError', status: 400, body: error, cause: error })), Match.when((error) => hasApiErrorTag(error, 'HttpApiDecodeError') || hasApiErrorTag(error, 'BadRequest'), (error) => apiError(400, error)), Match.when((error) => hasApiErrorTag(error, 'FetchSnapshotSearchNotFound'), (error) => apiError(404, error)),
28
40
  // A response we couldn't decode (e.g. a 5xx whose body is empty or doesn't match the declared
29
41
  // error schema) arrives as a bare ParseError with no status. Surface a clear SDK error instead
30
42
  // of dumping the raw schema-mismatch tree as the message.
@@ -35,6 +47,22 @@ export function toExpandError(error, timeoutMs) {
35
47
  * retryable; API errors are retryable only for the standard transient status codes (408/409/429/5xx).
36
48
  */
37
49
  export function isRetryable(error, timeoutMs) {
50
+ if (hasApiErrorTag(error, 'BatchedIdempotencyConflict') || hasApiErrorTag(error, 'BatchedCancellationConflict')) {
51
+ return false;
52
+ }
53
+ // A 502 FetchNavigationFailed is a deterministic verdict about the target page (the browser
54
+ // committed an internal error document), not a transient gateway failure — retrying re-runs a
55
+ // full capture for the same outcome.
56
+ if (hasApiErrorTag(error, 'FetchNavigationFailed')) {
57
+ return false;
58
+ }
59
+ // A typed 504 FetchCaptureTimeout is the conservative fallback when no result was publishable by
60
+ // the request deadline and queue-only expiry was not proven. Automatic retry remains disabled so
61
+ // ambiguous timeouts do not amplify a control-plane incident. A deliberate retry may still be
62
+ // appropriate; a bare intermediary 504 stays on the normal retryable-status path.
63
+ if (hasApiErrorTag(error, 'FetchCaptureTimeout')) {
64
+ return false;
65
+ }
38
66
  // An undecodable response (a transient 5xx with an empty/garbled body, a proxy error page, etc.)
39
67
  // surfaces as a bare ParseError with no HTTP status, so the status-based classification below can't
40
68
  // see the 5xx and the request would fail un-retried. Treat decode failures as retryable — the
@@ -48,7 +76,7 @@ export function isRetryable(error, timeoutMs) {
48
76
  /**
49
77
  * Effect-side bridge between {@link ExpandService} and the Promise-based {@link ExpandClient}.
50
78
  *
51
- * Exposes the same fetch/batched/getBatched methods as `ExpandService` but with the typed `ExpandError`
79
+ * Exposes the same fetch/batched/getBatched/cancelBatched methods as `ExpandService` but with the typed `ExpandError`
52
80
  * channel mapped to the `ExpandClientError` hierarchy that async/await consumers expect. Not exported
53
81
  * from the package — Effect consumers depend on `ExpandService` directly and receive the typed
54
82
  * `ExpandError` unions as-is.
@@ -59,9 +87,10 @@ export class InternalClient extends Effect.Service()('@expandai/sdk/InternalClie
59
87
  const fetch = (params, options = {}) => service.fetch(params, options).pipe(Effect.mapError((error) => error.toPublicError()));
60
88
  const fetchJson = (params, options = {}) => service.fetchJson(params, options).pipe(Effect.mapError((error) => error.toPublicError()));
61
89
  const fetchSearch = (params, options = {}) => service.fetchSearch(params, options).pipe(Effect.mapError((error) => error.toPublicError()));
62
- const batched = (params, options = {}) => service.batched(params, options).pipe(Effect.mapError((error) => error.toPublicError()));
90
+ const batched = (params, options) => service.batched(params, options).pipe(Effect.mapError((error) => error.toPublicError()));
63
91
  const getBatched = (id, options = {}) => service.getBatched(id, options).pipe(Effect.mapError((error) => error.toPublicError()));
64
- return { fetch, fetchJson, fetchSearch, batched, getBatched };
92
+ const cancelBatched = (id, options = {}) => service.cancelBatched(id, options).pipe(Effect.mapError((error) => error.toPublicError()));
93
+ return { fetch, fetchJson, fetchSearch, batched, getBatched, cancelBatched };
65
94
  }),
66
95
  }) {
67
96
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Internal.js","sourceRoot":"","sources":["../../src/Internal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Internal.js","sourceRoot":"","sources":["../../src/Internal.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,23 @@
3
3
  // Canonical public snapshot URLs (all public, no auth, no TTL):
4
4
  //
5
5
  // /s/<snapshotId> — whole snapshot
6
- // /s/<snapshotId>/playground#focus=<id> highlight a markdown/appendix block by node id
7
- // /s/<snapshotId>?id=<evidenceId> — open extracted State JSON evidence
6
+ // /s/<snapshotId>?id=<evidenceId> open any public evidence target
8
7
  //
9
- // A citation maps a search snippet (`source` + `location`) to the view that audits it.
10
- import { Match } from 'effect';
8
+ // A citation maps a search snippet location to the view that audits it.
11
9
  export const DEFAULT_PLAYGROUND_HOST = 'https://expand.land';
12
10
  function normalizeHost(host) {
13
11
  return host.replace(/\/+$/, '');
14
12
  }
13
+ function publicEvidenceId(value) {
14
+ return value !== null && value !== undefined && Number.isInteger(value) && value > 0 && value <= 2_147_483_647
15
+ ? value
16
+ : undefined;
17
+ }
18
+ function legacyArchiveId(value) {
19
+ return value !== null && value !== undefined && Number.isInteger(value) && value >= 0 && value <= 0xffffffff
20
+ ? value
21
+ : undefined;
22
+ }
15
23
  /** Whole-snapshot URL: `${host}/s/${snapshotId}`. */
16
24
  export function playgroundBase(snapshotId, host = DEFAULT_PLAYGROUND_HOST) {
17
25
  return `${normalizeHost(host)}/s/${encodeURIComponent(snapshotId)}`;
@@ -36,20 +44,32 @@ export function resolvePlaygroundHost(metaPlayground, fallback) {
36
44
  return fallback;
37
45
  }
38
46
  }
39
- /**
40
- * Deep link auditing a single snippet:
41
- * - `statejson` with a source id `?id=<stateJsonSourceId>` (opens the JSON evidence object).
42
- * - `markdown`/`appendix` with a node id → `/playground#focus=<nodeIds[0]>` (highlights the block).
43
- * - otherwise → the whole-snapshot base URL.
44
- */
45
- export function citationUrl(snapshotId, source, location, host = DEFAULT_PLAYGROUND_HOST) {
47
+ export function citationUrl(snapshotId, sourceOrLocation, locationOrHost, legacyHost = DEFAULT_PLAYGROUND_HOST) {
48
+ const legacySignature = typeof sourceOrLocation === 'string';
49
+ const source = legacySignature ? sourceOrLocation : undefined;
50
+ const location = legacySignature
51
+ ? typeof locationOrHost === 'string'
52
+ ? undefined
53
+ : locationOrHost
54
+ : sourceOrLocation;
55
+ const host = legacySignature
56
+ ? legacyHost
57
+ : typeof locationOrHost === 'string'
58
+ ? locationOrHost
59
+ : DEFAULT_PLAYGROUND_HOST;
46
60
  const base = playgroundBase(snapshotId, host);
47
- return Match.value(source).pipe(Match.when('statejson', () => {
48
- const sourceId = location?.stateJsonSourceId;
49
- return sourceId != null ? `${base}?id=${sourceId}` : base;
50
- }), Match.orElse(() => {
51
- const nodeId = location?.nodeIds?.[0];
52
- return nodeId != null ? `${base}/playground#focus=${nodeId}` : base;
53
- }));
61
+ const evidenceId = publicEvidenceId(location?.evidenceId);
62
+ if (evidenceId !== undefined) {
63
+ return `${base}?id=${evidenceId}`;
64
+ }
65
+ if (source === 'statejson') {
66
+ const legacyId = legacyArchiveId(location?.stateJsonSourceId);
67
+ return legacyId === undefined ? base : `${base}?id=${legacyId}`;
68
+ }
69
+ if (source === 'markdown' || source === 'appendix') {
70
+ const nodeId = legacyArchiveId(location?.nodeIds?.[0]);
71
+ return nodeId === undefined ? base : `${base}/playground#focus=${nodeId}`;
72
+ }
73
+ return base;
54
74
  }
55
75
  //# sourceMappingURL=Playground.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Playground.js","sourceRoot":"","sources":["../../src/Playground.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,8DAA8D;AAC9D,8FAA8F;AAC9F,kFAAkF;AAClF,EAAE;AACF,uFAAuF;AAEvF,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAE9B,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAA;AAU5D,SAAS,aAAa,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,OAAe,uBAAuB;IACxF,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAA;AACpE,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,gBAAgB,CAAC,cAAsB;IACtD,OAAO,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAA;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,cAAyC,EAAE,QAAgB;IAChG,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAA;IAChB,CAAC;IACD,IAAI,CAAC;QACJ,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAA;IACxC,CAAC;IAAC,MAAM,CAAC;QACR,6FAA6F;QAC7F,OAAO,QAAQ,CAAA;IAChB,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAC1B,UAAkB,EAClB,MAAsB,EACtB,QAA6C,EAC7C,OAAe,uBAAuB;IAEtC,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAC7C,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAC9B,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;QAC5B,MAAM,QAAQ,GAAG,QAAQ,EAAE,iBAAiB,CAAA;QAC5C,OAAO,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1D,CAAC,CAAC,EACF,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;QACrC,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACpE,CAAC,CAAC,CACF,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"Playground.js","sourceRoot":"","sources":["../../src/Playground.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { HttpClient, HttpClientRequest, HttpClientResponse } from '@effect/platform';
2
2
  import { NodeHttpClient } from '@effect/platform-node';
3
- import { Context, Duration, Effect, flow, Layer, Schedule, Schema } from 'effect';
3
+ import { Context, Duration, Effect, flow, Layer, Option, Random, Schedule, Schema } from 'effect';
4
4
  import { ExpandSdkError } from './Error.js';
5
5
  import { fetchObjectModeJson, fetchSnapshotSearch, } from './FetchJson.js';
6
6
  import * as Generated from './Generated.js';
@@ -23,25 +23,24 @@ export class ExpandServiceOptions extends Schema.Class('ExpandServiceOptions')({
23
23
  }),
24
24
  /**
25
25
  * Total wall-clock budget in milliseconds for the operation, including retries and backoff.
26
- * Each attempt gets `timeoutMs / (maxRetries + 1)`. Defaults to 60_000.
26
+ * A successful attempt may use the remaining operation budget. Defaults to 60_000.
27
27
  */
28
28
  timeoutMs: Schema.optional(Schema.Number).annotations({
29
29
  description: 'Total wall-clock budget in milliseconds for the operation, including retries and backoff. ' +
30
- 'Each attempt gets `timeoutMs / (maxRetries + 1)`. Defaults to 60_000.',
30
+ 'A successful attempt may use the remaining operation budget. Defaults to 60_000.',
31
31
  }),
32
32
  /**
33
33
  * Number of retry attempts for retryable failures (timeouts, connection errors, 408/409/429/5xx).
34
- * Defaults to 2. Note: `batched()` defaults to 0 regardless of this setting; pass `{ maxRetries: N }`
35
- * per-call to opt in.
34
+ * Defaults to 2.
36
35
  */
37
36
  maxRetries: Schema.optional(Schema.Number).annotations({
38
37
  description: 'Number of retry attempts for retryable failures (timeouts, connection errors, 408/409/429/5xx). ' +
39
- 'Defaults to 2. Note: `batched()` defaults to 0 regardless of this setting; pass `{ maxRetries: N }` per-call to opt in.',
38
+ 'Defaults to 2.',
40
39
  }),
41
40
  }, { description: 'Options for constructing an `ExpandService` layer or `ExpandClient` instance.' }) {
42
41
  }
43
42
  /**
44
- * Per-request overrides accepted by `ExpandService.fetch`/`batched`/`getBatched` (and, transitively,
43
+ * Per-request overrides accepted by `ExpandService.fetch`/`batched`/`getBatched`/`cancelBatched` (and, transitively,
45
44
  * by `ExpandClient`'s methods).
46
45
  */
47
46
  export class RequestOptions extends Schema.Class('RequestOptions')({
@@ -113,7 +112,10 @@ export class ExpandService extends Effect.Service()('@expandai/sdk/ExpandService
113
112
  '413': (response) => decodeError(response, Generated.PayloadTooLarge),
114
113
  '429': (response) => decodeError(response, Generated.TooManyRequests),
115
114
  '500': (response) => decodeError(response, Generated.InternalError),
115
+ '502': (response) => decodeError(response, Generated.FetchNavigationFailed),
116
116
  '503': (response) => decodeError(response, Generated.ServiceUnavailable),
117
+ '504': (response) => decodeError(response, Generated.FetchCaptureTimeout),
118
+ '529': (response) => decodeError(response, Generated.FetchCapacityTimeout),
117
119
  orElse: (response) => unexpectedStatus(request, response),
118
120
  }))));
119
121
  // Generic over the operation's success/error/requirement channels so callers (fetch/batched/getBatched)
@@ -121,15 +123,10 @@ export class ExpandService extends Effect.Service()('@expandai/sdk/ExpandService
121
123
  const withRetries = Effect.fn('ExpandService.withRetries')(function* (operation, requestOptions = {}) {
122
124
  const totalTimeoutMs = requestOptions.timeoutMs ?? config.timeoutMs;
123
125
  const maxRetries = requestOptions.maxRetries ?? config.maxRetries;
124
- // `timeoutMs` is the wall-clock budget for the whole operation. Split it across attempts so the
125
- // sum of per-attempt budgets equals `timeoutMs`; the outer Effect.timeout enforces the hard cap
126
- // including retry backoff. Pipe ordering matters: per-attempt timeout must wrap the operation
127
- // (so retry can catch its TimeoutException), and total timeout must wrap retry (so it caps
128
- // backoff between attempts). Floor with a 1ms minimum so degenerate inputs don't produce a
129
- // zero-millisecond budget that fires before any work happens.
130
- const perAttemptTimeoutMs = Math.max(1, Math.floor(totalTimeoutMs / (maxRetries + 1)));
126
+ // `timeoutMs` is one wall-clock budget for the operation, including retries and backoff. A slow
127
+ // valid capture may use most of that budget; only failures that arrive before it expires can retry.
131
128
  const retrySchedule = Schedule.exponential(Duration.millis(250)).pipe(Schedule.jittered, Schedule.compose(Schedule.recurs(maxRetries)), Schedule.whileInput((error) => isRetryable(error, totalTimeoutMs)));
132
- return yield* operation.pipe(Effect.timeout(Duration.millis(perAttemptTimeoutMs)), Effect.retry(retrySchedule), Effect.timeout(Duration.millis(totalTimeoutMs)), Effect.mapError((error) => toExpandError(error, totalTimeoutMs)));
129
+ return yield* operation.pipe(Effect.retry(retrySchedule), Effect.timeout(Duration.millis(totalTimeoutMs)), Effect.mapError((error) => toExpandError(error, totalTimeoutMs)));
133
130
  });
134
131
  const fetch = Effect.fn('ExpandService.fetch')(function* (params, requestOptions = {}) {
135
132
  const { include, ...retryOptions } = requestOptions;
@@ -146,13 +143,35 @@ export class ExpandService extends Effect.Service()('@expandai/sdk/ExpandService
146
143
  return yield* withRetries(fetchSnapshotSearch(authedClient, params), requestOptions);
147
144
  });
148
145
  const batched = Effect.fn('ExpandService.batched')(function* (params, requestOptions = {}) {
149
- // Batched POST kicks off server-side work and the API has no idempotency-key support; a retry on
150
- // a request that succeeded server-side but failed client-side (timeout, dropped connection)
151
- // would create a duplicate batched run. Default to no retries; callers can opt in explicitly.
152
- // Destructure-with-default also handles `{ maxRetries: undefined }` correctly — falls back to 0
153
- // rather than the service-level default.
154
- const { maxRetries = 0, ...rest } = requestOptions;
155
- return yield* withRetries(generated.fetchBatched(params), { maxRetries, ...rest });
146
+ const { idempotencyKey: providedIdempotencyKey, ...retryOptions } = requestOptions;
147
+ const idempotencyKey = yield* Option.fromNullable(providedIdempotencyKey).pipe(Option.match({
148
+ onSome: Effect.succeed,
149
+ onNone: () => Effect.all([Random.nextInt, Random.nextInt, Random.nextInt]).pipe(Effect.map(([first, second, third]) => `sdk-${Math.abs(first).toString(36)}-${Math.abs(second).toString(36)}-${Math.abs(third).toString(36)}`)),
150
+ }));
151
+ // Merged after the generated payload because the generated schema drops any
152
+ // key it does not declare — silently, which is the dangerous part. See
153
+ // `BatchedRequestOptions.internalOverrides` for why it is not declared.
154
+ //
155
+ // A collision is refused rather than resolved: this hatch exists to add
156
+ // undeclared fields, and letting it win over `urls` or `include` would
157
+ // mean a request could quietly fetch something other than what the caller
158
+ // passed.
159
+ const overrides = requestOptions.internalOverrides ?? {};
160
+ // Checked against the schema's declared fields, not against the keys this
161
+ // particular call happened to set: an omitted-but-declared field like
162
+ // `include` could otherwise be supplied here and bypass the generated
163
+ // contract entirely.
164
+ const collisions = Object.keys(overrides).filter((key) => Object.hasOwn(Generated.FetchBatchedRequest.fields, key));
165
+ if (collisions.length > 0) {
166
+ return yield* new ExpandSdkError({
167
+ message: `internalOverrides may not replace declared request fields: ${collisions.join(', ')}`,
168
+ });
169
+ }
170
+ const generatedRequest = {
171
+ params: { 'x-idempotency-key': idempotencyKey },
172
+ payload: { ...params, ...overrides },
173
+ };
174
+ return yield* withRetries(generated.fetchBatched(generatedRequest), retryOptions);
156
175
  });
157
176
  const getBatched = Effect.fn('ExpandService.getBatched')(function* (id, options = {}) {
158
177
  // Pull RequestOptions out, pass everything else through as query params. Drift-resilient: any
@@ -160,7 +179,10 @@ export class ExpandService extends Effect.Service()('@expandai/sdk/ExpandService
160
179
  const { timeoutMs, maxRetries, ...params } = options;
161
180
  return yield* withRetries(generated.fetchGetBatched(id, params), { timeoutMs, maxRetries });
162
181
  });
163
- return { fetch, fetchJson, fetchSearch, batched, getBatched };
182
+ const cancelBatched = Effect.fn('ExpandService.cancelBatched')(function* (id, requestOptions = {}) {
183
+ return yield* withRetries(generated.fetchCancelBatched(id), requestOptions);
184
+ });
185
+ return { fetch, fetchJson, fetchSearch, batched, getBatched, cancelBatched };
164
186
  }),
165
187
  }) {
166
188
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/Service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/Service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EACN,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,GAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EACN,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,GAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@expandai/sdk",
3
3
  "type": "module",
4
- "version": "0.17.2",
4
+ "version": "0.19.0",
5
5
  "private": false,
6
6
  "description": "TypeScript SDK for ExpandAI",
7
7
  "author": "ExpandAI",
@@ -44,7 +44,8 @@
44
44
  "./*": {
45
45
  "types": "./build/dts/*.d.ts",
46
46
  "import": "./build/esm/*.js"
47
- }
47
+ },
48
+ "./internal/*": "./src/*.ts"
48
49
  },
49
50
  "scripts": {
50
51
  "generate": "tsx scripts/generate-client.ts",
@@ -56,7 +57,7 @@
56
57
  "format": "biome format --write",
57
58
  "format:check": "biome format",
58
59
  "test": "vitest run --exclude 'test/**/*.integration.test.ts'",
59
- "test:integration": "vitest run integration"
60
+ "test:integration": "vitest run integration --fileParallelism=false --testTimeout=30000"
60
61
  },
61
62
  "dependencies": {
62
63
  "@effect/platform": "0.96.1",
package/src/Client.ts CHANGED
@@ -2,8 +2,10 @@ import { Effect, Either, Exit, Layer } from 'effect'
2
2
  import { InternalClient } from './Internal.js'
3
3
  import {
4
4
  type BatchedParams,
5
+ type BatchedRequestOptions,
5
6
  type BatchedResponse,
6
7
  buildServiceConfig,
8
+ type CancelBatchedResponse,
7
9
  type ExpandServiceOptions,
8
10
  type FetchJsonParams,
9
11
  type FetchJsonRequestOptions,
@@ -20,7 +22,9 @@ import {
20
22
 
21
23
  export type {
22
24
  BatchedParams,
25
+ BatchedRequestOptions,
23
26
  BatchedResponse,
27
+ CancelBatchedResponse,
24
28
  FetchJsonParams,
25
29
  FetchJsonRequestOptions,
26
30
  FetchJsonResponse,
@@ -95,14 +99,16 @@ export class ExpandClient {
95
99
  * Kick off an asynchronous batched fetch over one or more URLs. Returns a batched-run ID that can
96
100
  * be polled via {@link getBatched}.
97
101
  *
98
- * Retries are disabled by default. Pass `{ maxRetries: N }` to opt in.
102
+ * When `idempotencyKey` is omitted, the client generates one and reuses it for automatic retries.
103
+ * Provide a stable key to deduplicate separate calls or calls made after a process restart. Reusing
104
+ * a key with a different payload surfaces an idempotency conflict.
99
105
  *
100
106
  * @throws {ExpandClientApiError} on 4xx/5xx responses
101
107
  * @throws {ExpandClientTimeoutError} when the request exceeds `timeoutMs`
102
108
  * @throws {ExpandClientConnectionError} on network failures
103
109
  * @throws {ExpandClientError} for any other failure
104
110
  */
105
- async batched(params: BatchedParams, options: RequestOptions = {}): Promise<BatchedResponse> {
111
+ async batched(params: BatchedParams, options: BatchedRequestOptions = {}): Promise<BatchedResponse> {
106
112
  return this.run((client) => client.batched(params, options))
107
113
  }
108
114
 
@@ -118,6 +124,13 @@ export class ExpandClient {
118
124
  return this.run((client) => client.getBatched(id, options))
119
125
  }
120
126
 
127
+ /**
128
+ * Request cancellation of a batched run. The command is idempotent and uses the configured retry policy.
129
+ */
130
+ async cancelBatched(id: string, options: RequestOptions = {}): Promise<CancelBatchedResponse> {
131
+ return this.run((client) => client.cancelBatched(id, options))
132
+ }
133
+
121
134
  private async run<A>(body: (ic: InternalClient) => Effect.Effect<A, Error>): Promise<A> {
122
135
  const exit = await Effect.runPromiseExit(InternalClient.use(body).pipe(Effect.provide(this.layer)))
123
136
  if (Exit.isSuccess(exit)) {
package/src/FetchJson.ts CHANGED
@@ -14,30 +14,22 @@ import { decodeError, unexpectedStatus } from './HttpClientHelpers.js'
14
14
 
15
15
  /** Search snippet with the extracted `json` value preserved (statejson snippets only). */
16
16
  export const FetchSearchSnippetWithJson = S.Struct({
17
- type: S.optionalWith(S.Literal('text'), { nullable: true, default: () => 'text' as const }),
18
- source: S.Literal('markdown', 'appendix', 'statejson'),
19
- text: S.String,
17
+ ...Generated.FetchSearchResult.fields.snippets.value.fields,
20
18
  json: S.optionalWith(S.Unknown, { nullable: true }),
21
- score: S.Number.pipe(S.greaterThanOrEqualTo(0), S.lessThanOrEqualTo(1)),
22
- location: S.optionalWith(Generated.FetchSearchSnippetLocation, { nullable: true }),
23
19
  })
24
20
 
25
21
  export const FetchSearchResultWithJson = S.Struct({
26
- query: S.String,
22
+ ...Generated.FetchSearchResult.fields,
27
23
  snippets: S.Array(FetchSearchSnippetWithJson),
28
- meta: S.optionalWith(Generated.FetchSearchMeta, { nullable: true }),
29
24
  })
30
25
 
31
26
  export class FetchObjectModeResultWithJson extends S.Class<FetchObjectModeResultWithJson>(
32
27
  'FetchObjectModeResultWithJson',
33
28
  )({
34
- meta: Generated.FetchObjectModeMeta,
35
- markdown: S.String,
36
- json: S.Array(Generated.FetchObjectModeEvidence),
29
+ ...Generated.FetchObjectModeResult.fields,
37
30
  data: S.optionalWith(
38
31
  S.Struct({
39
- assets: S.optionalWith(S.Array(Generated.FetchAssetReference), { nullable: true }),
40
- captureTelemetry: S.optionalWith(Generated.CaptureTelemetryInfo, { nullable: true }),
32
+ ...Generated.FetchObjectModeResult.fields.data.from.fields,
41
33
  search: S.optionalWith(FetchSearchResultWithJson, { nullable: true }),
42
34
  }),
43
35
  { nullable: true },
@@ -51,6 +43,7 @@ export class FetchSnapshotSearchResultWithJson extends S.Class<FetchSnapshotSear
51
43
  response: Generated.ResponseInfo,
52
44
  search: FetchSearchResultWithJson,
53
45
  durationMs: S.Number.pipe(S.greaterThanOrEqualTo(0)),
46
+ playground: S.String,
54
47
  }) {}
55
48
 
56
49
  /** Mirrors `Generated.Client['fetchFetchJson']` but decodes the 200 body with `json` preserved. */
@@ -75,7 +68,10 @@ export const fetchObjectModeJson = (
75
68
  '413': (response) => decodeError(response, Generated.PayloadTooLarge),
76
69
  '429': (response) => decodeError(response, Generated.TooManyRequests),
77
70
  '500': (response) => decodeError(response, Generated.InternalError),
71
+ '502': (response) => decodeError(response, Generated.FetchNavigationFailed),
78
72
  '503': (response) => decodeError(response, Generated.ServiceUnavailable),
73
+ '504': (response) => decodeError(response, Generated.FetchCaptureTimeout),
74
+ '529': (response) => decodeError(response, Generated.FetchCapacityTimeout),
79
75
  orElse: (response) => unexpectedStatus(request, response),
80
76
  }),
81
77
  ),