@stigmer/sdk 3.0.8-dev.20260612122433 → 3.0.8-dev.20260613051837
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/__tests__/errors.test.js +31 -1
- package/__tests__/errors.test.js.map +1 -1
- package/errors.d.ts +15 -0
- package/errors.d.ts.map +1 -1
- package/errors.js +37 -0
- package/errors.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/errors.test.ts +43 -0
- package/src/errors.ts +36 -0
- package/src/index.ts +1 -0
package/__tests__/errors.test.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
2
|
import { ConnectError, Code } from "@connectrpc/connect";
|
|
3
3
|
import { StigmerError } from "../gen/errors";
|
|
4
|
-
import { classifyError, isRetryableError, getUserMessage, annotateRpcError, getRpcMetadata, } from "../errors";
|
|
4
|
+
import { classifyError, isRetryableError, isTransientStreamError, getUserMessage, annotateRpcError, getRpcMetadata, } from "../errors";
|
|
5
5
|
describe("classifyError", () => {
|
|
6
6
|
const stigmerMappings = [
|
|
7
7
|
["unauthenticated", "auth"],
|
|
@@ -69,6 +69,33 @@ describe("isRetryableError", () => {
|
|
|
69
69
|
expect(isRetryableError(new Error("oops"))).toBe(false);
|
|
70
70
|
});
|
|
71
71
|
});
|
|
72
|
+
describe("isTransientStreamError", () => {
|
|
73
|
+
it("is true for retryable category errors (server / unavailable)", () => {
|
|
74
|
+
expect(isTransientStreamError(new StigmerError("unavailable", "down", Code.Unavailable))).toBe(true);
|
|
75
|
+
expect(isTransientStreamError(new ConnectError("boom", Code.Internal))).toBe(true);
|
|
76
|
+
});
|
|
77
|
+
// The crux of #174: WebKit (Safari / WKWebView) phrases a failed fetch as a
|
|
78
|
+
// bare `TypeError: Load failed`, which classifies as `unknown` (not
|
|
79
|
+
// retryable) — yet it is exactly the transient drop we must auto-reconnect.
|
|
80
|
+
it.each([
|
|
81
|
+
"Load failed",
|
|
82
|
+
"TypeError: Load failed",
|
|
83
|
+
"Failed to fetch",
|
|
84
|
+
"fetch failed",
|
|
85
|
+
"read ECONNRESET",
|
|
86
|
+
"connect ETIMEDOUT",
|
|
87
|
+
])("is true for transport noise %j (even as a bare TypeError)", (message) => {
|
|
88
|
+
expect(isTransientStreamError(new TypeError(message))).toBe(true);
|
|
89
|
+
});
|
|
90
|
+
it.each([
|
|
91
|
+
new StigmerError("not-found", "gone", Code.NotFound),
|
|
92
|
+
new StigmerError("invalid-argument", "bad", Code.InvalidArgument),
|
|
93
|
+
new StigmerError("unauthenticated", "no token", Code.Unauthenticated),
|
|
94
|
+
new Error("some deterministic application error"),
|
|
95
|
+
])("is false for deterministic / unknown errors", (error) => {
|
|
96
|
+
expect(isTransientStreamError(error)).toBe(false);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
72
99
|
describe("getUserMessage", () => {
|
|
73
100
|
it("extracts message from StigmerError", () => {
|
|
74
101
|
const err = new StigmerError("not-found", "Agent not found", Code.NotFound);
|
|
@@ -94,6 +121,9 @@ describe("getUserMessage", () => {
|
|
|
94
121
|
it("sanitizes 'fetch failed'", () => {
|
|
95
122
|
expect(getUserMessage(new Error("fetch failed"))).toBe("Unable to reach the server. Check your connection.");
|
|
96
123
|
});
|
|
124
|
+
it("sanitizes WebKit's 'Load failed' (Safari / WKWebView)", () => {
|
|
125
|
+
expect(getUserMessage(new TypeError("Load failed"))).toBe("The connection to the server was lost.");
|
|
126
|
+
});
|
|
97
127
|
it("uses category fallback when message is empty", () => {
|
|
98
128
|
const err = new StigmerError("not-found", "", Code.NotFound);
|
|
99
129
|
expect(getUserMessage(err)).toBe("The requested resource was not found.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../src/__tests__/errors.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../src/__tests__/errors.test.ts"],"names":[],"mappings":"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"}
|
package/errors.d.ts
CHANGED
|
@@ -38,6 +38,21 @@ export declare function classifyError(error: unknown): ErrorCategory;
|
|
|
38
38
|
* will produce the same failure.
|
|
39
39
|
*/
|
|
40
40
|
export declare function isRetryableError(error: unknown): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Whether an error from a long-lived streaming subscription should be
|
|
43
|
+
* treated as a transient transport hiccup worth auto-reconnecting.
|
|
44
|
+
*
|
|
45
|
+
* Broader than {@link isRetryableError}: in addition to the retryable
|
|
46
|
+
* `server`/`unavailable` categories, it recognizes raw transport noise
|
|
47
|
+
* (WebKit's "Load failed", Chrome's "Failed to fetch", Node's "fetch
|
|
48
|
+
* failed", `ECONNRESET`, …) that surfaces as a bare `TypeError` and would
|
|
49
|
+
* otherwise classify as `unknown` (non-retryable). Those are precisely the
|
|
50
|
+
* drops a stream hits on laptop sleep, network blips, and idle timeouts —
|
|
51
|
+
* an infrastructure event, never a user-actionable one. Deterministic
|
|
52
|
+
* failures (not-found, invalid-argument, auth) remain non-transient: the
|
|
53
|
+
* same request would fail the same way, so retrying only hammers.
|
|
54
|
+
*/
|
|
55
|
+
export declare function isTransientStreamError(error: unknown): boolean;
|
|
41
56
|
/**
|
|
42
57
|
* Extract a clean, user-appropriate error message from any thrown value.
|
|
43
58
|
*
|
package/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAQ,MAAM,qBAAqB,CAAC;AAIzD,OAAO,EACL,YAAY,EACZ,KAAK,SAAS,EACd,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,aAAa,GACb,WAAW,GACX,SAAS,CAAC;AAmCd;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAQ3D;AAOD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAExD;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAQ,MAAM,qBAAqB,CAAC;AAIzD,OAAO,EACL,YAAY,EACZ,KAAK,SAAS,EACd,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,aAAa,GACb,WAAW,GACX,SAAS,CAAC;AAmCd;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAQ3D;AAOD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAExD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG9D;AAiED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAOxE;AA0CD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,gBAAgB,GACzB,IAAI,CAEN;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAK3E"}
|
package/errors.js
CHANGED
|
@@ -73,6 +73,25 @@ const RETRYABLE_CATEGORIES = new Set([
|
|
|
73
73
|
export function isRetryableError(error) {
|
|
74
74
|
return RETRYABLE_CATEGORIES.has(classifyError(error));
|
|
75
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Whether an error from a long-lived streaming subscription should be
|
|
78
|
+
* treated as a transient transport hiccup worth auto-reconnecting.
|
|
79
|
+
*
|
|
80
|
+
* Broader than {@link isRetryableError}: in addition to the retryable
|
|
81
|
+
* `server`/`unavailable` categories, it recognizes raw transport noise
|
|
82
|
+
* (WebKit's "Load failed", Chrome's "Failed to fetch", Node's "fetch
|
|
83
|
+
* failed", `ECONNRESET`, …) that surfaces as a bare `TypeError` and would
|
|
84
|
+
* otherwise classify as `unknown` (non-retryable). Those are precisely the
|
|
85
|
+
* drops a stream hits on laptop sleep, network blips, and idle timeouts —
|
|
86
|
+
* an infrastructure event, never a user-actionable one. Deterministic
|
|
87
|
+
* failures (not-found, invalid-argument, auth) remain non-transient: the
|
|
88
|
+
* same request would fail the same way, so retrying only hammers.
|
|
89
|
+
*/
|
|
90
|
+
export function isTransientStreamError(error) {
|
|
91
|
+
if (isRetryableError(error))
|
|
92
|
+
return true;
|
|
93
|
+
return matchesInfraNoise(extractRawMessage(error));
|
|
94
|
+
}
|
|
76
95
|
const CATEGORY_FALLBACKS = {
|
|
77
96
|
auth: "Your session has expired. Please sign in again.",
|
|
78
97
|
permission: "You do not have permission to perform this action.",
|
|
@@ -124,6 +143,10 @@ const INFRA_NOISE_PATTERNS = [
|
|
|
124
143
|
[/fetch failed/i, "Unable to reach the server. Check your connection."],
|
|
125
144
|
[/network error/i, "A network error occurred. Check your connection."],
|
|
126
145
|
[/failed to fetch/i, "Unable to reach the server. Check your connection."],
|
|
146
|
+
// WebKit (Safari / WKWebView, e.g. Tauri on macOS) phrases a failed
|
|
147
|
+
// `fetch` as a bare `TypeError: Load failed` — the WebKit analogue of
|
|
148
|
+
// Chrome's "Failed to fetch" and Node's "fetch failed" above.
|
|
149
|
+
[/load failed/i, "The connection to the server was lost."],
|
|
127
150
|
[/load balancer/i, "The server is temporarily unavailable."],
|
|
128
151
|
[/illegal invocation/i, "A browser API call failed. Please try again."],
|
|
129
152
|
[/can only call .+ on instances of/i, "A browser API call failed. Please try again."],
|
|
@@ -177,6 +200,20 @@ function sanitizeMessage(message) {
|
|
|
177
200
|
}
|
|
178
201
|
return message;
|
|
179
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Whether a message matches a known infrastructure-noise pattern — the
|
|
205
|
+
* single source of truth shared by {@link getUserMessage} (which rewrites
|
|
206
|
+
* it for display) and {@link isTransientStreamError} (which retries it).
|
|
207
|
+
*/
|
|
208
|
+
function matchesInfraNoise(message) {
|
|
209
|
+
if (!message)
|
|
210
|
+
return false;
|
|
211
|
+
for (const [pattern] of INFRA_NOISE_PATTERNS) {
|
|
212
|
+
if (pattern.test(message))
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
180
217
|
const rpcMetadataStore = new WeakMap();
|
|
181
218
|
/**
|
|
182
219
|
* Attach RPC call metadata to an error object.
|
package/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { Stigmer } from "./stigmer";
|
|
2
2
|
export { type RunnerAdapter, type RunnerWorkerHost, createRunnerAdapter, } from "./runner-adapter";
|
|
3
3
|
export { type StigmerConfig, type TokenProvider } from "./config";
|
|
4
|
-
export { StigmerError, type ErrorCode, isNotFound, isUnauthenticated, isPermissionDenied, isRetryable, type ErrorCategory, isConnectError, classifyError, isRetryableError, getUserMessage, type RpcErrorMetadata, annotateRpcError, getRpcMetadata, } from "./errors";
|
|
4
|
+
export { StigmerError, type ErrorCode, isNotFound, isUnauthenticated, isPermissionDenied, isRetryable, type ErrorCategory, isConnectError, classifyError, isRetryableError, isTransientStreamError, getUserMessage, type RpcErrorMetadata, annotateRpcError, getRpcMetadata, } from "./errors";
|
|
5
5
|
export { type DeploymentMode, isResourceAvailable, } from "./resource-availability";
|
|
6
6
|
export { getGrantableRoles, hasGrantableRoles, isRoleGrantable, } from "./authorization-config";
|
|
7
7
|
export { iamRoleToString, iamRoleFromString, iamRoleDisplayName, iamRoleDescription, } from "./iam-role";
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,EACL,YAAY,EACZ,KAAK,SAAS,EACd,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,KAAK,aAAa,EAClB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,KAAK,cAAc,EACnB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAGpE,OAAO,EACL,cAAc,EACd,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,GAChC,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGlF,OAAO,EACL,aAAa,EACb,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,GACnC,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,eAAe,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,YAAY,EACZ,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,cAAc,EACd,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,EACd,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EACL,QAAQ,EACR,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export { Stigmer } from "./stigmer";
|
|
|
4
4
|
// Runner adapter
|
|
5
5
|
export { createRunnerAdapter, } from "./runner-adapter";
|
|
6
6
|
// Error handling
|
|
7
|
-
export { StigmerError, isNotFound, isUnauthenticated, isPermissionDenied, isRetryable, isConnectError, classifyError, isRetryableError, getUserMessage, annotateRpcError, getRpcMetadata, } from "./errors";
|
|
7
|
+
export { StigmerError, isNotFound, isUnauthenticated, isPermissionDenied, isRetryable, isConnectError, classifyError, isRetryableError, isTransientStreamError, getUserMessage, annotateRpcError, getRpcMetadata, } from "./errors";
|
|
8
8
|
// Resource availability
|
|
9
9
|
export { isResourceAvailable, } from "./resource-availability";
|
|
10
10
|
// Authorization config and IAM role utilities
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,iBAAiB;AACjB,OAAO,EAGL,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAK1B,iBAAiB;AACjB,OAAO,EACL,YAAY,EAEZ,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAEX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EAEd,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EAEL,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAEjC,8CAA8C;AAC9C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAEpE,oCAAoC;AACpC,OAAO,EACL,cAAc,GAGf,MAAM,YAAY,CAAC;AAGpB,iBAAiB;AACjB,OAAO,EACL,aAAa,GAOd,MAAM,WAAW,CAAC;AAEnB,gBAAgB;AAChB,OAAO,EACL,YAAY,EAGZ,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,sBAAsB;AACtB,OAAO,EACL,YAAY,GAKb,MAAM,UAAU,CAAC;AAElB,oDAAoD;AACpD,OAAO,EACL,cAAc,GAEf,MAAM,YAAY,CAAC;AAapB,wDAAwD;AACxD,OAAO,EACL,WAAW,GAMZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,GAKrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,iBAAiB,GAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,GAGhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,GAKhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAqB,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,aAAa,GAMd,MAAM,eAAe,CAAC;AAEvB,mCAAmC;AACnC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE7D,uFAAuF;AACvF,OAAO,EACL,QAAQ,EACR,eAAe,EACf,qBAAqB,EACrB,mBAAmB,GAIpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,cAAc,GAMf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,iBAAiB;AACjB,OAAO,EAGL,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAK1B,iBAAiB;AACjB,OAAO,EACL,YAAY,EAEZ,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAEX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EAEd,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EAEL,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAEjC,8CAA8C;AAC9C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAEpE,oCAAoC;AACpC,OAAO,EACL,cAAc,GAGf,MAAM,YAAY,CAAC;AAGpB,iBAAiB;AACjB,OAAO,EACL,aAAa,GAOd,MAAM,WAAW,CAAC;AAEnB,gBAAgB;AAChB,OAAO,EACL,YAAY,EAGZ,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,sBAAsB;AACtB,OAAO,EACL,YAAY,GAKb,MAAM,UAAU,CAAC;AAElB,oDAAoD;AACpD,OAAO,EACL,cAAc,GAEf,MAAM,YAAY,CAAC;AAapB,wDAAwD;AACxD,OAAO,EACL,WAAW,GAMZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,GAKrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,iBAAiB,GAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,GAGhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,GAKhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAqB,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,aAAa,GAMd,MAAM,eAAe,CAAC;AAEvB,mCAAmC;AACnC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE7D,uFAAuF;AACvF,OAAO,EACL,QAAQ,EACR,eAAe,EACf,qBAAqB,EACrB,mBAAmB,GAIpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,cAAc,GAMf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/sdk",
|
|
3
|
-
"version": "3.0.8-dev.
|
|
3
|
+
"version": "3.0.8-dev.20260613051837",
|
|
4
4
|
"description": "Stigmer TypeScript SDK — typed API client for all Stigmer platform resources",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -40,6 +40,6 @@
|
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"@bufbuild/protobuf": "^2.0.0",
|
|
42
42
|
"@connectrpc/connect-node": "^2.0.0",
|
|
43
|
-
"@stigmer/protos": "3.0.8-dev.
|
|
43
|
+
"@stigmer/protos": "3.0.8-dev.20260613051837"
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -4,6 +4,7 @@ import { StigmerError, type ErrorCode } from "../gen/errors";
|
|
|
4
4
|
import {
|
|
5
5
|
classifyError,
|
|
6
6
|
isRetryableError,
|
|
7
|
+
isTransientStreamError,
|
|
7
8
|
getUserMessage,
|
|
8
9
|
annotateRpcError,
|
|
9
10
|
getRpcMetadata,
|
|
@@ -111,6 +112,42 @@ describe("isRetryableError", () => {
|
|
|
111
112
|
});
|
|
112
113
|
});
|
|
113
114
|
|
|
115
|
+
describe("isTransientStreamError", () => {
|
|
116
|
+
it("is true for retryable category errors (server / unavailable)", () => {
|
|
117
|
+
expect(
|
|
118
|
+
isTransientStreamError(
|
|
119
|
+
new StigmerError("unavailable", "down", Code.Unavailable),
|
|
120
|
+
),
|
|
121
|
+
).toBe(true);
|
|
122
|
+
expect(
|
|
123
|
+
isTransientStreamError(new ConnectError("boom", Code.Internal)),
|
|
124
|
+
).toBe(true);
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// The crux of #174: WebKit (Safari / WKWebView) phrases a failed fetch as a
|
|
128
|
+
// bare `TypeError: Load failed`, which classifies as `unknown` (not
|
|
129
|
+
// retryable) — yet it is exactly the transient drop we must auto-reconnect.
|
|
130
|
+
it.each([
|
|
131
|
+
"Load failed",
|
|
132
|
+
"TypeError: Load failed",
|
|
133
|
+
"Failed to fetch",
|
|
134
|
+
"fetch failed",
|
|
135
|
+
"read ECONNRESET",
|
|
136
|
+
"connect ETIMEDOUT",
|
|
137
|
+
])("is true for transport noise %j (even as a bare TypeError)", (message) => {
|
|
138
|
+
expect(isTransientStreamError(new TypeError(message))).toBe(true);
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
it.each([
|
|
142
|
+
new StigmerError("not-found", "gone", Code.NotFound),
|
|
143
|
+
new StigmerError("invalid-argument", "bad", Code.InvalidArgument),
|
|
144
|
+
new StigmerError("unauthenticated", "no token", Code.Unauthenticated),
|
|
145
|
+
new Error("some deterministic application error"),
|
|
146
|
+
])("is false for deterministic / unknown errors", (error) => {
|
|
147
|
+
expect(isTransientStreamError(error)).toBe(false);
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
|
|
114
151
|
describe("getUserMessage", () => {
|
|
115
152
|
it("extracts message from StigmerError", () => {
|
|
116
153
|
const err = new StigmerError("not-found", "Agent not found", Code.NotFound);
|
|
@@ -153,6 +190,12 @@ describe("getUserMessage", () => {
|
|
|
153
190
|
);
|
|
154
191
|
});
|
|
155
192
|
|
|
193
|
+
it("sanitizes WebKit's 'Load failed' (Safari / WKWebView)", () => {
|
|
194
|
+
expect(getUserMessage(new TypeError("Load failed"))).toBe(
|
|
195
|
+
"The connection to the server was lost.",
|
|
196
|
+
);
|
|
197
|
+
});
|
|
198
|
+
|
|
156
199
|
it("uses category fallback when message is empty", () => {
|
|
157
200
|
const err = new StigmerError("not-found", "", Code.NotFound);
|
|
158
201
|
expect(getUserMessage(err)).toBe("The requested resource was not found.");
|
package/src/errors.ts
CHANGED
|
@@ -112,6 +112,25 @@ export function isRetryableError(error: unknown): boolean {
|
|
|
112
112
|
return RETRYABLE_CATEGORIES.has(classifyError(error));
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
/**
|
|
116
|
+
* Whether an error from a long-lived streaming subscription should be
|
|
117
|
+
* treated as a transient transport hiccup worth auto-reconnecting.
|
|
118
|
+
*
|
|
119
|
+
* Broader than {@link isRetryableError}: in addition to the retryable
|
|
120
|
+
* `server`/`unavailable` categories, it recognizes raw transport noise
|
|
121
|
+
* (WebKit's "Load failed", Chrome's "Failed to fetch", Node's "fetch
|
|
122
|
+
* failed", `ECONNRESET`, …) that surfaces as a bare `TypeError` and would
|
|
123
|
+
* otherwise classify as `unknown` (non-retryable). Those are precisely the
|
|
124
|
+
* drops a stream hits on laptop sleep, network blips, and idle timeouts —
|
|
125
|
+
* an infrastructure event, never a user-actionable one. Deterministic
|
|
126
|
+
* failures (not-found, invalid-argument, auth) remain non-transient: the
|
|
127
|
+
* same request would fail the same way, so retrying only hammers.
|
|
128
|
+
*/
|
|
129
|
+
export function isTransientStreamError(error: unknown): boolean {
|
|
130
|
+
if (isRetryableError(error)) return true;
|
|
131
|
+
return matchesInfraNoise(extractRawMessage(error));
|
|
132
|
+
}
|
|
133
|
+
|
|
115
134
|
const CATEGORY_FALLBACKS: Record<ErrorCategory, string> = {
|
|
116
135
|
auth: "Your session has expired. Please sign in again.",
|
|
117
136
|
permission: "You do not have permission to perform this action.",
|
|
@@ -166,6 +185,10 @@ const INFRA_NOISE_PATTERNS: ReadonlyArray<readonly [RegExp, string]> = [
|
|
|
166
185
|
[/fetch failed/i, "Unable to reach the server. Check your connection."],
|
|
167
186
|
[/network error/i, "A network error occurred. Check your connection."],
|
|
168
187
|
[/failed to fetch/i, "Unable to reach the server. Check your connection."],
|
|
188
|
+
// WebKit (Safari / WKWebView, e.g. Tauri on macOS) phrases a failed
|
|
189
|
+
// `fetch` as a bare `TypeError: Load failed` — the WebKit analogue of
|
|
190
|
+
// Chrome's "Failed to fetch" and Node's "fetch failed" above.
|
|
191
|
+
[/load failed/i, "The connection to the server was lost."],
|
|
169
192
|
[/load balancer/i, "The server is temporarily unavailable."],
|
|
170
193
|
[/illegal invocation/i, "A browser API call failed. Please try again."],
|
|
171
194
|
[/can only call .+ on instances of/i, "A browser API call failed. Please try again."],
|
|
@@ -220,6 +243,19 @@ function sanitizeMessage(message: string): string {
|
|
|
220
243
|
return message;
|
|
221
244
|
}
|
|
222
245
|
|
|
246
|
+
/**
|
|
247
|
+
* Whether a message matches a known infrastructure-noise pattern — the
|
|
248
|
+
* single source of truth shared by {@link getUserMessage} (which rewrites
|
|
249
|
+
* it for display) and {@link isTransientStreamError} (which retries it).
|
|
250
|
+
*/
|
|
251
|
+
function matchesInfraNoise(message: string): boolean {
|
|
252
|
+
if (!message) return false;
|
|
253
|
+
for (const [pattern] of INFRA_NOISE_PATTERNS) {
|
|
254
|
+
if (pattern.test(message)) return true;
|
|
255
|
+
}
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
|
|
223
259
|
/**
|
|
224
260
|
* Metadata about the RPC call that produced an error. Attached by the
|
|
225
261
|
* SDK's metadata interceptor and readable via {@link getRpcMetadata}.
|