@gonvex/protocol 0.5.2-staging.14 → 0.5.2-staging.16

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.
Files changed (2) hide show
  1. package/dist/index.d.ts +16 -0
  2. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -392,6 +392,18 @@ export type ClientMessage = {
392
392
  trace?: MessageTrace;
393
393
  device?: BrowserTelemetryInfo;
394
394
  };
395
+ /**
396
+ * Machine-readable disposition of a failed Reducer call.
397
+ *
398
+ * - `rejected`: the Reducer refused the intent (application throw, validation,
399
+ * permission, conflict). Retrying the same call cannot succeed.
400
+ * - `transient`: infrastructure failed and the transaction rolled back. The
401
+ * same idempotency key may be retried.
402
+ * - `update_required`: the client's Reducer artifact or contract is stale.
403
+ * - `unauthenticated`: the connection has no usable tenant session. Keep the
404
+ * intent, re-authenticate, and retry.
405
+ */
406
+ export type ReducerErrorClass = "rejected" | "transient" | "update_required" | "unauthenticated";
395
407
  export type ServerMessage = {
396
408
  type: "query.batch";
397
409
  messages: ServerMessage[];
@@ -586,6 +598,10 @@ export type ServerMessage = {
586
598
  path?: string;
587
599
  error: string;
588
600
  trace?: MessageTrace;
601
+ /** Absent from runtimes before 0.5.2-staging.15; treat absence as a legacy rejection. */
602
+ class?: ReducerErrorClass;
603
+ /** True when the same call (same idempotency key) may succeed later. */
604
+ retryable?: boolean;
589
605
  } | {
590
606
  type: "action.result";
591
607
  id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gonvex/protocol",
3
- "version": "0.5.2-staging.14",
3
+ "version": "0.5.2-staging.16",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"