@econ-v1/rpc 6.15.0 → 7.0.2

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/dist/index.d.ts CHANGED
@@ -54,6 +54,7 @@ export type ShellVersionReport = import("@econ-v1/ports").ShellVersionReport;
54
54
  export type InstallEnvironmentPort = import("@econ-v1/ports").InstallEnvironmentPort;
55
55
  export type InstallInstructionMode = import("@econ-v1/ports").InstallInstructionMode;
56
56
  export type MediaPreferencesPort = import("@econ-v1/ports").MediaPreferencesPort;
57
+ export type StageAvailability = import("@econ-v1/ports").StageAvailability;
57
58
  export type StageCatalogEntry = import("@econ-v1/ports").StageCatalogEntry;
58
59
  export type StagePerformanceSignal = import("@econ-v1/ports").StagePerformanceSignal;
59
60
  export type StagePerformanceViolationKind = import("@econ-v1/ports").StagePerformanceViolationKind;
@@ -141,13 +142,14 @@ export type RpcTransportState = import("./transport.js").RpcTransportState;
141
142
  export { DOMAIN_ERROR_CODES, DomainError, SYNC_ERROR_CODES, SyncError, TRANSPORT_ERROR_CODES, TransportError } from "@econ-v1/domain";
142
143
  export { deserializeClientError, isJsonValue, isSerializableClientError, serializeClientError } from "./errors.js";
143
144
  export { KernelRpcTimeoutError, MessagePortKernelRpcClient } from "./message-port-client.js";
144
- export { NODE_APP_MEMORY_CAPTURE_COMMAND, NODE_APP_MEMORY_DETAIL_QUERY, NODE_APP_MEMORY_DOWNLOAD_COMMAND, NODE_APP_MEMORY_LIST_QUERY, NODE_APP_MEMORY_OVERVIEW_QUERY, NODE_APP_MEMORY_STATUS_COMMAND } from "./node-app-memory-contract.js";
145
+ export { NODE_APP_LIFECYCLE_COMMAND, NODE_APP_MEMORY_CAPTURE_COMMAND, NODE_APP_MEMORY_DETAIL_QUERY, NODE_APP_MEMORY_DOWNLOAD_COMMAND, NODE_APP_MEMORY_LIST_QUERY, NODE_APP_MEMORY_OVERVIEW_QUERY, NODE_APP_MEMORY_STATUS_COMMAND } from "./node-app-memory-contract.js";
145
146
  export { CLIENT_DEVICE_PAIRING_STATUS_QUERY, CLIENT_DEVICE_WIRE_ERROR_DEVICE_NOT_REGISTERED, CLIENT_DEVICE_WIRE_ERROR_LAST_DEVICE, CLIENT_DEVICE_WIRE_ERROR_LAST_DEVICE_PROTECTED, CLIENT_DEVICE_WIRE_ERROR_NAME_TAKEN } from "./pairing-status-contract.js";
146
147
  export { DEVICE_CLEANUP_CANCEL_COMMAND, DEVICE_CLEANUP_QUERY, DEVICE_CLEANUP_REQUEST_COMMAND, DEVICE_CLEANUP_STATUS_COMMAND } from "./device-cleanup-contract.js";
147
148
  export { CONNECTIVITY_STATE_QUERY, TRANSPORT_STATE_QUERY, TRANSPORT_STATE_QUERY_V2 } from "./transport-contract.js";
149
+ export { isStageReady, normalizeStageAvailability, STAGE_AVAILABILITY, STAGE_CATALOG_AVAILABILITY_OPT_IN } from "./stage-catalog-contract.js";
148
150
  export { DISCOVER_NODE_COMMAND, DISCOVERY_PROBE_COMMAND, DISCOVERY_PROMOTE_COMMAND, DISCOVERY_QUERY, isDiscoverNodePayload, isProbeCandidatesPayload, isPromoteCandidatePayload } from "./onboarding/discovery-contract.js";
149
151
  export { isOnboardingCommand, ONBOARDING_COMMAND, ONBOARDING_EVENTS, ONBOARDING_FLOW_QUERY, ONBOARDING_LCD_SCREEN_QUERY, ONBOARDING_STATUS_QUERY, ONBOARDING_STEP_IDS } from "./onboarding/onboarding-contract.js";
150
152
  export { TRUST_INSTALL_RESTART_COMMAND, TRUST_SKIP_COMMAND, TRUST_STATUS_QUERY, TRUST_VERIFY_COMMAND, isTrustInstallRestartPayload, isTrustSkipPayload, isTrustVerifyPayload } from "./trust-contract.js";
151
153
  export { isOwnerClaimCompletePayload, OWNER_CLAIM_COMPLETE_COMMAND, OWNER_CLAIM_PREPARE_COMMAND } from "./onboarding/owner-claim-contract.js";
152
- export { deserializeRpcEvent, deserializeRpcRequest, deserializeRpcResponse, serializeRpcEvent, serializeRpcRequest, serializeRpcResponse } from "./protocol.js";
154
+ export { deserializeRpcEvent, deserializeRpcRequest, deserializeRpcResponse, ipPoolHealthChangedEvent, serializeRpcEvent, serializeRpcRequest, serializeRpcResponse } from "./protocol.js";
153
155
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":";;;8BAEc,OAAO,aAAa,EAAE,eAAe;4BACrC,OAAO,aAAa,EAAE,aAAa;8BACnC,OAAO,aAAa,EAAE,eAAe;0BACrC,OAAO,aAAa,EAAE,WAAW;0BACjC,OAAO,iBAAiB,EAAE,WAAW;0BACrC,OAAO,iBAAiB,EAAE,WAAW;8BACrC,OAAO,iBAAiB,EAAE,eAAe;8BACvB,CAAC,SAAlB,eAAgB,IAAa,OAAO,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC;+BAC1D,CAAC,SAAlB,eAAgB,IAAa,OAAO,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC;8BAC7E,OAAO,iBAAiB,EAAE,eAAe;2BACzC,OAAO,iBAAiB,EAAE,YAAY;sBACtC,CAAC,IAAW,OAAO,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC;wBAClD,OAAO,iBAAiB,EAAE,SAAS;sCACnC,OAAO,iBAAiB,EAAE,uBAAuB;4BACjD,OAAO,iBAAiB,EAAE,aAAa;6BACvC,OAAO,iBAAiB,EAAE,cAAc;qCACxC,OAAO,iBAAiB,EAAE,sBAAsB;iCAChD,OAAO,iBAAiB,EAAE,kBAAkB;+BAC5C,OAAO,yBAAyB,EAAE,gBAAgB;yCAClD,OAAO,gBAAgB,EAAE,0BAA0B;8BACnD,OAAO,gBAAgB,EAAE,eAAe;mCACxC,OAAO,gBAAgB,EAAE,oBAAoB;sCAC7C,OAAO,gBAAgB,EAAE,uBAAuB;+BAChD,OAAO,gBAAgB,EAAE,gBAAgB;uCACzC,OAAO,gBAAgB,EAAE,wBAAwB;gCACjD,OAAO,gBAAgB,EAAE,iBAAiB;8BAC1C,OAAO,gBAAgB,EAAE,eAAe;gCACxC,OAAO,gBAAgB,EAAE,iBAAiB;6BAC1C,OAAO,gBAAgB,EAAE,cAAc;qCACvC,OAAO,gBAAgB,EAAE,sBAAsB;4BAC/C,OAAO,gBAAgB,EAAE,aAAa;kDACtC,OAAO,gBAAgB,EAAE,mCAAmC;0CAC5D,OAAO,gBAAgB,EAAE,2BAA2B;uCACpD,OAAO,gBAAgB,EAAE,wBAAwB;0CACjD,OAAO,gBAAgB,EAAE,2BAA2B;oCACpD,OAAO,gBAAgB,EAAE,qBAAqB;wCAC9C,OAAO,gBAAgB,EAAE,yBAAyB;qCAClD,OAAO,gBAAgB,EAAE,sBAAsB;+BAC/C,OAAO,gBAAgB,EAAE,gBAAgB;mCACzC,OAAO,gBAAgB,EAAE,oBAAoB;mCAC7C,OAAO,gBAAgB,EAAE,oBAAoB;kCAC7C,OAAO,gBAAgB,EAAE,mBAAmB;iCAC5C,OAAO,gBAAgB,EAAE,kBAAkB;kCAC3C,OAAO,gBAAgB,EAAE,mBAAmB;8BAC5C,OAAO,gBAAgB,EAAE,eAAe;oCACxC,OAAO,gBAAgB,EAAE,qBAAqB;uCAC9C,OAAO,gBAAgB,EAAE,wBAAwB;kCACjD,OAAO,gBAAgB,EAAE,mBAAmB;+BAC5C,OAAO,gBAAgB,EAAE,gBAAgB;iCACzC,OAAO,gBAAgB,EAAE,kBAAkB;qCAC3C,OAAO,gBAAgB,EAAE,sBAAsB;qCAC/C,OAAO,gBAAgB,EAAE,sBAAsB;mCAC/C,OAAO,gBAAgB,EAAE,oBAAoB;gCAC7C,OAAO,gBAAgB,EAAE,iBAAiB;gCAC1C,OAAO,gBAAgB,EAAE,iBAAiB;qCAC1C,OAAO,gBAAgB,EAAE,sBAAsB;4CAC/C,OAAO,gBAAgB,EAAE,6BAA6B;wCACtD,OAAO,gBAAgB,EAAE,yBAAyB;kCAClD,OAAO,gBAAgB,EAAE,mBAAmB;kCAC5C,OAAO,gBAAgB,EAAE,mBAAmB;mCAC5C,OAAO,gBAAgB,EAAE,oBAAoB;mCAC7C,OAAO,gBAAgB,EAAE,oBAAoB;8BAC7C,OAAO,gBAAgB,EAAE,eAAe;gDACxC,OAAO,0BAA0B,EAAE,iCAAiC;uCACpE,OAAO,oCAAoC,EAAE,wBAAwB;qCACrE,OAAO,oCAAoC,EAAE,sBAAsB;iCACnE,OAAO,oCAAoC,EAAE,kBAAkB;kCAC/D,OAAO,oCAAoC,EAAE,mBAAmB;qCAChE,OAAO,oCAAoC,EAAE,sBAAsB;kCACnE,OAAO,oCAAoC,EAAE,mBAAmB;qCAChE,OAAO,oCAAoC,EAAE,sBAAsB;sCACnE,OAAO,oCAAoC,EAAE,uBAAuB;sCACpE,OAAO,qCAAqC,EAAE,uBAAuB;gCACrE,OAAO,qCAAqC,EAAE,iBAAiB;2CAC/D,OAAO,qCAAqC,EAAE,4BAA4B;8BAC1E,OAAO,qCAAqC,EAAE,eAAe;uCAC7D,OAAO,qCAAqC,EAAE,wBAAwB;wCACtE,OAAO,qCAAqC,EAAE,yBAAyB;8BACvE,OAAO,qCAAqC,EAAE,eAAe;iCAC7D,OAAO,qCAAqC,EAAE,kBAAkB;+BAChE,OAAO,qCAAqC,EAAE,gBAAgB;6BAC9D,OAAO,qCAAqC,EAAE,cAAc;6CAC5D,OAAO,+BAA+B,EAAE,8BAA8B;2BACtE,OAAO,sBAAsB,EAAE,YAAY;2BAC3C,OAAO,sBAAsB,EAAE,YAAY;2BAC3C,OAAO,sBAAsB,EAAE,YAAY;4BAC3C,OAAO,sBAAsB,EAAE,aAAa;qCAC5C,OAAO,qCAAqC,EAAE,sBAAsB;2CACpE,OAAO,8BAA8B,EAAE,4BAA4B;iCACnE,OAAO,2BAA2B,EAAE,kBAAkB;2BACtD,OAAO,8BAA8B,EAAE,YAAY;yCACnD,OAAO,8BAA8B,EAAE,0BAA0B;+BACjE,OAAO,8BAA8B,EAAE,gBAAgB;wCACvD,OAAO,8BAA8B,EAAE,yBAAyB;6BAChE,OAAO,4BAA4B,EAAE,cAAc;iCACnD,OAAO,qCAAqC,EAAE,kBAAkB;iCAChE,OAAO,qCAAqC,EAAE,kBAAkB;sCAChE,OAAO,qCAAqC,EAAE,uBAAuB;oCACrE,OAAO,qCAAqC,EAAE,qBAAqB;uCACnE,OAAO,qCAAqC,EAAE,wBAAwB;sCACtE,OAAO,qCAAqC,EAAE,uBAAuB;sCACrE,OAAO,qCAAqC,EAAE,uBAAuB;6CACrE,OAAO,qCAAqC,EAAE,8BAA8B;gCAC5E,OAAO,qCAAqC,EAAE,iBAAiB;mCAC/D,OAAO,qCAAqC,EAAE,oBAAoB;+BAClE,OAAO,qCAAqC,EAAE,gBAAgB;qCAC9D,OAAO,qCAAqC,EAAE,sBAAsB;wCACpE,OAAO,sCAAsC,EAAE,yBAAyB;wCACxE,OAAO,sCAAsC,EAAE,yBAAyB;uCACxE,OAAO,sCAAsC,EAAE,wBAAwB;sCACvE,OAAO,sCAAsC,EAAE,uBAAuB;8BACtE,OAAO,qBAAqB,EAAE,eAAe;6BAC7C,OAAO,oBAAoB,EAAE,cAAc;6BAC3C,OAAO,oBAAoB,EAAE,cAAc;2BAC3C,OAAO,6BAA6B,EAAE,YAAY;iCAClD,OAAO,6BAA6B,EAAE,kBAAkB;qCACxD,OAAO,6BAA6B,EAAE,sBAAsB;qCAC5D,OAAO,6BAA6B,EAAE,sBAAsB;+BAC5D,OAAO,6BAA6B,EAAE,gBAAgB;iCACtD,OAAO,6BAA6B,EAAE,kBAAkB;kCACxD,OAAO,6BAA6B,EAAE,mBAAmB;iCACzD,OAAO,6BAA6B,EAAE,kBAAkB;4CACxD,OAAO,6BAA6B,EAAE,6BAA6B;qCACnE,OAAO,6BAA6B,EAAE,sBAAsB;iCAC5D,OAAO,6BAA6B,EAAE,kBAAkB;gCACxD,OAAO,6BAA6B,EAAE,iBAAiB;mCACvD,OAAO,6BAA6B,EAAE,oBAAoB;gCAC1D,OAAO,6BAA6B,EAAE,iBAAiB;mCACvD,OAAO,6BAA6B,EAAE,oBAAoB;gCAC1D,OAAO,6BAA6B,EAAE,iBAAiB;uBACvD,OAAO,eAAe,EAAE,QAAQ;yBAChC,OAAO,eAAe,EAAE,UAAU;0BAClC,OAAO,eAAe,EAAE,WAAW;2BACnC,OAAO,oBAAoB,EAAE,YAAY;2BACzC,OAAO,oBAAoB,EAAE,YAAY;0BACzC,OAAO,oBAAoB,EAAE,WAAW;2BACxC,OAAO,gBAAgB,EAAE,YAAY;gCACrC,OAAO,gBAAgB,EAAE,iBAAiB"}
@@ -4,7 +4,17 @@ export const NODE_APP_MEMORY_OVERVIEW_QUERY: "node-app-memory.overview.v1";
4
4
  export const NODE_APP_MEMORY_CAPTURE_COMMAND: "node-app-memory.capture.v1";
5
5
  export const NODE_APP_MEMORY_STATUS_COMMAND: "node-app-memory.status.v1";
6
6
  export const NODE_APP_MEMORY_DOWNLOAD_COMMAND: "node-app-memory.download.v1";
7
+ /** Start/stop the whole app, not anything about its memory — but it rides this contract because
8
+ * it is the same `/api/v2/node-apps/{id}` resource the rows above read, reached through the same
9
+ * repository, and rendered on the same Profile app row. A separate one-command contract would add
10
+ * a package surface, an adapter and a kernel branch to say the same thing. */
11
+ export const NODE_APP_LIFECYCLE_COMMAND: "node-app.lifecycle.v1";
7
12
  export type NodeAppMemoryDetailQueryParams = {
8
13
  readonly id: string;
9
14
  };
15
+ export type NodeAppLifecycleAction = "start" | "stop";
16
+ export type NodeAppLifecycleCommandPayload = {
17
+ readonly action: NodeAppLifecycleAction;
18
+ readonly appId: string;
19
+ };
10
20
  //# sourceMappingURL=node-app-memory-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-app-memory-contract.d.ts","sourceRoot":"","sources":["../src/node-app-memory-contract.js"],"names":[],"mappings":"AAEA,yCAA0C,yBAAyB,CAAC;AACpE,2CAA4C,2BAA2B,CAAC;AACxE,6CAA8C,6BAA6B,CAAC;AAC5E,8CAA+C,4BAA4B,CAAC;AAC5E,6CAA8C,2BAA2B,CAAC;AAC1E,+CAAgD,6BAA6B,CAAC;6CAEhE;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE"}
1
+ {"version":3,"file":"node-app-memory-contract.d.ts","sourceRoot":"","sources":["../src/node-app-memory-contract.js"],"names":[],"mappings":"AAEA,yCAA0C,yBAAyB,CAAC;AACpE,2CAA4C,2BAA2B,CAAC;AACxE,6CAA8C,6BAA6B,CAAC;AAC5E,8CAA+C,4BAA4B,CAAC;AAC5E,6CAA8C,2BAA2B,CAAC;AAC1E,+CAAgD,6BAA6B,CAAC;AAC9E;;;8EAG8E;AAC9E,yCAA0C,uBAAuB,CAAC;6CAEpD;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE;qCACvB,OAAO,GAAG,MAAM;6CAChB;IAAE,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE"}
@@ -67,6 +67,7 @@ export type OnboardingFlowBase = {
67
67
  };
68
68
  export type OnboardingFlowView = (OnboardingFlowBase & {
69
69
  readonly networks: readonly OnboardingNetwork[];
70
+ readonly probing: boolean;
70
71
  readonly scanning: boolean;
71
72
  readonly stepId: "choose-network";
72
73
  }) | (OnboardingFlowBase & {
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding-contract.d.ts","sourceRoot":"","sources":["../../src/onboarding/onboarding-contract.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onboarding-contract.d.ts","sourceRoot":"","sources":["../../src/onboarding/onboarding-contract.js"],"names":[],"mappings":"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"}
@@ -28,6 +28,30 @@ export function serializeRpcEvent(event: RpcEvent): string;
28
28
  * @returns {RpcEvent}
29
29
  */
30
30
  export function deserializeRpcEvent(serialized: string): RpcEvent;
31
+ /**
32
+ * Bridge the raw `data` of a node WebSocket frame whose wire `type` is
33
+ * `IP_POOL_HEALTH_CHANGED_FRAME` (`"ip_pool:health_changed"`) into an
34
+ * `ip-pool.health-changed` kernel event. This is the single validated mapping from the
35
+ * node's snake_case frame shape to the kernel's camelCase payload.
36
+ *
37
+ * Defensive decoder: malformed frames return `undefined` (skip the frame) rather than
38
+ * throwing, mirroring `parseWebSocketEventMessage`. Required fields (`ip_entry_id`,
39
+ * `is_healthy`, `consecutive_failures`, and a string `connection_state`) that violate their
40
+ * contract drop the frame. A `connection_state` outside the closed set is NORMALISED to
41
+ * `"unknown"` — the health flag still matters, so the event is still produced.
42
+ * `latency_ms` is optional: `null`/absent (serde `Option::None` serialises as `null`) or an
43
+ * invalid value is omitted from the payload.
44
+ * @param {JsonValue} data
45
+ * @param {string} occurredAt
46
+ * @returns {DomainEvent | undefined}
47
+ */
48
+ export function ipPoolHealthChangedEvent(data: JsonValue, occurredAt: string): DomainEvent | undefined;
49
+ /**
50
+ * Wire `type` tag of the node WebSocket frame carrying an IP-pool peer health change.
51
+ * Colon form (serde `#[serde(rename = "ip_pool:health_changed")]`), distinct from the
52
+ * dot-namespaced kernel event literal `ip-pool.health-changed` produced from its `data`.
53
+ */
54
+ export const IP_POOL_HEALTH_CHANGED_FRAME: "ip_pool:health_changed";
31
55
  export type DeviceCleanupDomainEvent = {
32
56
  readonly occurredAt: string;
33
57
  readonly payload: {
@@ -142,9 +166,9 @@ export type RpcEvent = {
142
166
  readonly subscriptionId: string;
143
167
  readonly type: "kernel.event";
144
168
  };
169
+ import type { JsonValue } from '@econ-v1/domain';
145
170
  import type { DomainEvent } from '@econ-v1/domain';
146
171
  import type { CoreKernelEventType } from '@econ-v1/domain';
147
- import type { JsonValue } from '@econ-v1/domain';
148
172
  import type { QueryName } from '@econ-v1/domain';
149
173
  import type { ClientError } from '@econ-v1/domain';
150
174
  import type { QueryDiff } from '@econ-v1/domain';
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * The single place a wire `availability` value becomes something this build may act on.
3
+ *
4
+ * Two DIFFERENT defaults, and the asymmetry is deliberate — do not "simplify" it into one:
5
+ *
6
+ * - **Absent** -> `ready`. A daemon that never sends the field is an older daemon serving
7
+ * exactly today's `Ready`-only population, so every entry it returns genuinely is ready.
8
+ * Fail OPEN: treating those as blocked would empty the nav on every pre-upgrade node.
9
+ * - **Present but unrecognised** -> `blocked`. A value this build does not know is a state it
10
+ * cannot safely act on. A sibling change adds a `Broken` variant, and defaulting that to
11
+ * `ready` would re-enable asset prefetch for a bundle guaranteed to 404 — which writes the
12
+ * durable `failed` readiness row, and the permanent unactionable warning notice, that stage
13
+ * availability exists to remove. Fail CLOSED.
14
+ *
15
+ * Never throws. A single entry that threw would abort the whole catalog refresh and blank the
16
+ * user's nav, so an unusable value degrades to the safe state instead.
17
+ *
18
+ * @param {unknown} value
19
+ * @returns {StageAvailability}
20
+ */
21
+ export function normalizeStageAvailability(value: unknown): StageAvailability;
22
+ /**
23
+ * Whether a catalog entry is one the node can serve right now.
24
+ *
25
+ * The predicate every "may I fetch this stage's assets / may this stage count towards offline
26
+ * readiness" decision reads, so all of them share one interpretation of the field.
27
+ *
28
+ * @param {{ readonly availability?: unknown }} entry
29
+ * @returns {boolean}
30
+ */
31
+ export function isStageReady(entry: {
32
+ readonly availability?: unknown;
33
+ }): boolean;
34
+ /** @import { StageAvailability } from "@econ-v1/ports" */
35
+ /**
36
+ * What the node says about a stage it advertises, from the `availability` field the daemon
37
+ * puts on every `GET /api/v2/node-apps/ui-stages` entry.
38
+ *
39
+ * - `ready` — running and servable. The only population an old daemon ever returned.
40
+ * - `dormant` — not running, but startable on demand. Renders normally; opening it wakes it.
41
+ * - `blocked` — cannot be started right now. Renders with an indicator and a reason.
42
+ *
43
+ * It lives here, in `@econ-v1/rpc`, for the reason `CONNECTIVITY_STATE_QUERY` does: both
44
+ * `client/kernel` (the readiness coordinator and the readiness query) and `client/ui` (the
45
+ * nav badge) need the same vocabulary, and `@econ-v1/rpc` is the ONLY package `client/ui`
46
+ * may import (`docs/development/CLIENT_NODE_CONVENTIONS.md` rule B2). The typedef itself is
47
+ * declared in `@econ-v1/ports` because the persisted `StageCatalogEntry` shape carries it and
48
+ * `client/ports` may import nothing; this module owns the runtime half and re-exports the type.
49
+ *
50
+ * @type {Readonly<Record<"BLOCKED" | "DORMANT" | "READY", StageAvailability>>}
51
+ */
52
+ export const STAGE_AVAILABILITY: Readonly<Record<"BLOCKED" | "DORMANT" | "READY", StageAvailability>>;
53
+ /**
54
+ * The value the client sends on the catalog request to opt into the expanded population.
55
+ *
56
+ * Without it the daemon serves exactly the `Ready`-only set it always has, so a stale cached
57
+ * shell that predates this build is bit-for-bit unaffected. Both shapes carry `availability`
58
+ * on every entry, which is how a new client tells a new daemon from an old one.
59
+ */
60
+ export const STAGE_CATALOG_AVAILABILITY_OPT_IN: "availability=v1";
61
+ import type { StageAvailability } from "@econ-v1/ports";
62
+ //# sourceMappingURL=stage-catalog-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-catalog-contract.d.ts","sourceRoot":"","sources":["../src/stage-catalog-contract.js"],"names":[],"mappings":"AAoCA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,kDAHW,OAAO,GACL,iBAAiB,CAQ7B;AAED;;;;;;;;GAQG;AACH,oCAHW;IAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAInB;AAzED,0DAA0D;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,iCAFU,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,GAAG,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAM3E;AAEH;;;;;;GAMG;AACH,gDAAuE,iBAAiB,CAAE;uCAhCnD,gBAAgB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@econ-v1/rpc",
3
- "version": "6.15.0",
3
+ "version": "7.0.2",
4
4
  "description": "Typed runtime and contracts for Node client stage-to-kernel RPC",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "author": "Node contributors",
@@ -56,7 +56,7 @@
56
56
  "access": "public"
57
57
  },
58
58
  "dependencies": {
59
- "@econ-v1/domain": "6.15.0",
60
- "@econ-v1/ports": "6.15.0"
59
+ "@econ-v1/domain": "7.0.2",
60
+ "@econ-v1/ports": "7.0.2"
61
61
  }
62
62
  }
package/src/index.js CHANGED
@@ -53,6 +53,7 @@
53
53
  /** @typedef {import("@econ-v1/ports").InstallEnvironmentPort} InstallEnvironmentPort */
54
54
  /** @typedef {import("@econ-v1/ports").InstallInstructionMode} InstallInstructionMode */
55
55
  /** @typedef {import("@econ-v1/ports").MediaPreferencesPort} MediaPreferencesPort */
56
+ /** @typedef {import("@econ-v1/ports").StageAvailability} StageAvailability */
56
57
  /** @typedef {import("@econ-v1/ports").StageCatalogEntry} StageCatalogEntry */
57
58
  /** @typedef {import("@econ-v1/ports").StagePerformanceSignal} StagePerformanceSignal */
58
59
  /** @typedef {import("@econ-v1/ports").StagePerformanceViolationKind} StagePerformanceViolationKind */
@@ -153,7 +154,7 @@ export {
153
154
  serializeClientError,
154
155
  } from "./errors.js";
155
156
  export { KernelRpcTimeoutError, MessagePortKernelRpcClient } from "./message-port-client.js";
156
- export { NODE_APP_MEMORY_CAPTURE_COMMAND, NODE_APP_MEMORY_DETAIL_QUERY, NODE_APP_MEMORY_DOWNLOAD_COMMAND, NODE_APP_MEMORY_LIST_QUERY, NODE_APP_MEMORY_OVERVIEW_QUERY, NODE_APP_MEMORY_STATUS_COMMAND } from "./node-app-memory-contract.js";
157
+ export { NODE_APP_LIFECYCLE_COMMAND, NODE_APP_MEMORY_CAPTURE_COMMAND, NODE_APP_MEMORY_DETAIL_QUERY, NODE_APP_MEMORY_DOWNLOAD_COMMAND, NODE_APP_MEMORY_LIST_QUERY, NODE_APP_MEMORY_OVERVIEW_QUERY, NODE_APP_MEMORY_STATUS_COMMAND } from "./node-app-memory-contract.js";
157
158
  export { DEVICE_BOOT_STATE_QUERY } from "./device-boot-contract.js";
158
159
  export { CLIENT_DEVICE_PENDING_QUERY } from "./client-device-pending-contract.js";
159
160
  export {
@@ -171,6 +172,12 @@ export {
171
172
  } from "./device-cleanup-contract.js";
172
173
  export { SYNC_CURSORS_QUERY } from "./sync-cursors-contract.js";
173
174
  export { CONNECTIVITY_STATE_QUERY, TRANSPORT_STATE_QUERY, TRANSPORT_STATE_QUERY_V2 } from "./transport-contract.js";
175
+ export {
176
+ isStageReady,
177
+ normalizeStageAvailability,
178
+ STAGE_AVAILABILITY,
179
+ STAGE_CATALOG_AVAILABILITY_OPT_IN,
180
+ } from "./stage-catalog-contract.js";
174
181
  export {
175
182
  DISCOVER_NODE_COMMAND,
176
183
  DISCOVERY_PROBE_COMMAND,
@@ -195,6 +202,7 @@ export {
195
202
  deserializeRpcEvent,
196
203
  deserializeRpcRequest,
197
204
  deserializeRpcResponse,
205
+ ipPoolHealthChangedEvent,
198
206
  serializeRpcEvent,
199
207
  serializeRpcRequest,
200
208
  serializeRpcResponse,
@@ -6,5 +6,12 @@ export const NODE_APP_MEMORY_OVERVIEW_QUERY = "node-app-memory.overview.v1";
6
6
  export const NODE_APP_MEMORY_CAPTURE_COMMAND = "node-app-memory.capture.v1";
7
7
  export const NODE_APP_MEMORY_STATUS_COMMAND = "node-app-memory.status.v1";
8
8
  export const NODE_APP_MEMORY_DOWNLOAD_COMMAND = "node-app-memory.download.v1";
9
+ /** Start/stop the whole app, not anything about its memory — but it rides this contract because
10
+ * it is the same `/api/v2/node-apps/{id}` resource the rows above read, reached through the same
11
+ * repository, and rendered on the same Profile app row. A separate one-command contract would add
12
+ * a package surface, an adapter and a kernel branch to say the same thing. */
13
+ export const NODE_APP_LIFECYCLE_COMMAND = "node-app.lifecycle.v1";
9
14
 
10
15
  /** @typedef {{ readonly id: string }} NodeAppMemoryDetailQueryParams */
16
+ /** @typedef {"start" | "stop"} NodeAppLifecycleAction */
17
+ /** @typedef {{ readonly action: NodeAppLifecycleAction; readonly appId: string }} NodeAppLifecycleCommandPayload */
@@ -20,7 +20,7 @@
20
20
  */
21
21
  /** @typedef {{ readonly security: OnboardingWifiSecurity; readonly signal: number; readonly ssid: string; }} OnboardingNetwork */
22
22
  /** @typedef {{ readonly lcdScreenId: OnboardingLcdScreenId; readonly phase: OnboardingPhase; readonly reasonCode?: OnboardingReasonCode; readonly stepIndex: number; readonly totalSteps: number; }} OnboardingFlowBase */
23
- /** @typedef {| (OnboardingFlowBase & { readonly networks: readonly OnboardingNetwork[]; readonly scanning: boolean; readonly stepId: "choose-network"; }) | (OnboardingFlowBase & { readonly security: OnboardingWifiSecurity; readonly ssid: string; readonly stepId: "network-password"; }) | (OnboardingFlowBase & { readonly approvalState: OnboardingApprovalState; readonly digits: readonly string[]; readonly remainingSeconds: number; readonly stepId: "match-code"; }) | (OnboardingFlowBase & { readonly stepId: "invitation" }) | (OnboardingFlowBase & { readonly displayName: string; readonly displayNameLocked: boolean; readonly stepId: "identity"; readonly submitting: boolean; }) | (OnboardingFlowBase & { readonly sessionEstablished: boolean; readonly stepId: "trusted"; }) | (OnboardingFlowBase & { readonly ssid: string; readonly stepId: "handoff"; }) | (OnboardingFlowBase & { readonly stepId: Exclude< OnboardingStepId, | "choose-network" | "handoff" | "identity" | "invitation" | "match-code" | "network-password" | "trusted" >; })} OnboardingFlowView */
23
+ /** @typedef {| (OnboardingFlowBase & { readonly networks: readonly OnboardingNetwork[]; readonly probing: boolean; readonly scanning: boolean; readonly stepId: "choose-network"; }) | (OnboardingFlowBase & { readonly security: OnboardingWifiSecurity; readonly ssid: string; readonly stepId: "network-password"; }) | (OnboardingFlowBase & { readonly approvalState: OnboardingApprovalState; readonly digits: readonly string[]; readonly remainingSeconds: number; readonly stepId: "match-code"; }) | (OnboardingFlowBase & { readonly stepId: "invitation" }) | (OnboardingFlowBase & { readonly displayName: string; readonly displayNameLocked: boolean; readonly stepId: "identity"; readonly submitting: boolean; }) | (OnboardingFlowBase & { readonly sessionEstablished: boolean; readonly stepId: "trusted"; }) | (OnboardingFlowBase & { readonly ssid: string; readonly stepId: "handoff"; }) | (OnboardingFlowBase & { readonly stepId: Exclude< OnboardingStepId, | "choose-network" | "handoff" | "identity" | "invitation" | "match-code" | "network-password" | "trusted" >; })} OnboardingFlowView */
24
24
  /** @typedef {{ readonly children?: readonly OnboardingLcdScreenTree[]; readonly id: string; readonly type: string; readonly [extra: string]: unknown; }} OnboardingLcdScreenTree */
25
25
  /** @typedef {Readonly<Record<string, number | string>>} OnboardingLcdScreenState */
26
26
  /** @typedef {"not-registered" | "unreachable"} OnboardingLcdUnavailableReason */
package/src/protocol.js CHANGED
@@ -7,6 +7,12 @@
7
7
  /** @typedef {CoreKernelEventType | "device-cleanup.changed"} ProtocolCoreKernelEventType */
8
8
  import { appEventInstance, appEventScope, isCoreKernelEventType, isKernelEventType, isQueryName, } from "@econ-v1/domain";
9
9
  import { deserializeClientError, isJsonObject, isSerializableClientError, serializeClientError, } from "./errors.js";
10
+ /**
11
+ * Wire `type` tag of the node WebSocket frame carrying an IP-pool peer health change.
12
+ * Colon form (serde `#[serde(rename = "ip_pool:health_changed")]`), distinct from the
13
+ * dot-namespaced kernel event literal `ip-pool.health-changed` produced from its `data`.
14
+ */
15
+ export const IP_POOL_HEALTH_CHANGED_FRAME = "ip_pool:health_changed";
10
16
  /**
11
17
  * @param {RpcRequest} request
12
18
  * @returns {string}
@@ -249,6 +255,8 @@ function domainEventField(value) {
249
255
  return { occurredAt, payload: roomJobStreamPayload(event), type: coreType };
250
256
  case "connectivity.changed":
251
257
  return { occurredAt, payload: connectivityChangedPayload(event), type: coreType };
258
+ case "ip-pool.health-changed":
259
+ return { occurredAt, payload: ipPoolHealthChangedPayload(event), type: coreType };
252
260
  }
253
261
  }
254
262
  /**
@@ -533,6 +541,98 @@ function connectivityChangedPayload(event) {
533
541
  }
534
542
  return { reachability };
535
543
  }
544
+ /**
545
+ * Decode an `ip-pool.health-changed` kernel event payload off the kernel↔UI RPC wire.
546
+ *
547
+ * Strict decoder (throws `TypeError` on any malformation): the kernel only ever emits
548
+ * normalised values, so an out-of-set `connectionState` here signals a corrupted wire
549
+ * rather than a peer report and is rejected at the boundary — mirroring
550
+ * `connectivityChangedPayload`. The frame bridge `ipPoolHealthChangedEvent` is the lenient
551
+ * counterpart that normalises raw node frames before they reach this seam.
552
+ * @param {JsonObject} event
553
+ * @returns {KernelEventPayload<"ip-pool.health-changed">}
554
+ */
555
+ function ipPoolHealthChangedPayload(event) {
556
+ const payload = objectField(event, "payload");
557
+ const ipEntryId = stringField(payload, "ipEntryId");
558
+ if (ipEntryId.length === 0)
559
+ throw new TypeError("Expected ipEntryId to be a non-empty string");
560
+ const connectionState = stringField(payload, "connectionState");
561
+ if (connectionState !== "closed"
562
+ && connectionState !== "filtered"
563
+ && connectionState !== "open"
564
+ && connectionState !== "unknown") {
565
+ throw new TypeError("Expected a known ip-pool connection state");
566
+ }
567
+ const consecutiveFailures = numberField(payload, "consecutiveFailures");
568
+ const isHealthy = payload["isHealthy"];
569
+ if (typeof isHealthy !== "boolean")
570
+ throw new TypeError("Expected isHealthy to be a boolean");
571
+ const latencyMs = payload["latencyMs"];
572
+ if (latencyMs !== undefined && (typeof latencyMs !== "number" || !Number.isFinite(latencyMs)))
573
+ throw new TypeError("Expected latencyMs to be a finite number");
574
+ return {
575
+ connectionState,
576
+ consecutiveFailures,
577
+ ipEntryId,
578
+ isHealthy,
579
+ ...(latencyMs === undefined ? {} : { latencyMs }),
580
+ };
581
+ }
582
+ /**
583
+ * Bridge the raw `data` of a node WebSocket frame whose wire `type` is
584
+ * `IP_POOL_HEALTH_CHANGED_FRAME` (`"ip_pool:health_changed"`) into an
585
+ * `ip-pool.health-changed` kernel event. This is the single validated mapping from the
586
+ * node's snake_case frame shape to the kernel's camelCase payload.
587
+ *
588
+ * Defensive decoder: malformed frames return `undefined` (skip the frame) rather than
589
+ * throwing, mirroring `parseWebSocketEventMessage`. Required fields (`ip_entry_id`,
590
+ * `is_healthy`, `consecutive_failures`, and a string `connection_state`) that violate their
591
+ * contract drop the frame. A `connection_state` outside the closed set is NORMALISED to
592
+ * `"unknown"` — the health flag still matters, so the event is still produced.
593
+ * `latency_ms` is optional: `null`/absent (serde `Option::None` serialises as `null`) or an
594
+ * invalid value is omitted from the payload.
595
+ * @param {JsonValue} data
596
+ * @param {string} occurredAt
597
+ * @returns {DomainEvent | undefined}
598
+ */
599
+ export function ipPoolHealthChangedEvent(data, occurredAt) {
600
+ if (!isJsonObject(data))
601
+ return undefined;
602
+ const ipEntryId = data["ip_entry_id"];
603
+ if (typeof ipEntryId !== "string" || ipEntryId.length === 0)
604
+ return undefined;
605
+ const isHealthy = data["is_healthy"];
606
+ if (typeof isHealthy !== "boolean")
607
+ return undefined;
608
+ const consecutiveFailures = data["consecutive_failures"];
609
+ if (typeof consecutiveFailures !== "number" || !Number.isFinite(consecutiveFailures))
610
+ return undefined;
611
+ const rawState = data["connection_state"];
612
+ if (typeof rawState !== "string")
613
+ return undefined;
614
+ const connectionState = rawState === "closed"
615
+ || rawState === "filtered"
616
+ || rawState === "open"
617
+ || rawState === "unknown"
618
+ ? rawState
619
+ : "unknown";
620
+ const rawLatency = data["latency_ms"];
621
+ const latencyMs = typeof rawLatency === "number" && Number.isFinite(rawLatency) && rawLatency >= 0
622
+ ? rawLatency
623
+ : undefined;
624
+ return {
625
+ occurredAt,
626
+ payload: {
627
+ connectionState,
628
+ consecutiveFailures,
629
+ ipEntryId,
630
+ isHealthy,
631
+ ...(latencyMs === undefined ? {} : { latencyMs }),
632
+ },
633
+ type: "ip-pool.health-changed",
634
+ };
635
+ }
536
636
  /**
537
637
  * @param {JsonObject} value
538
638
  * @returns {QueryDiff<JsonValue>}
@@ -0,0 +1,76 @@
1
+ // @ts-check
2
+
3
+ /** @import { StageAvailability } from "@econ-v1/ports" */
4
+
5
+ /**
6
+ * What the node says about a stage it advertises, from the `availability` field the daemon
7
+ * puts on every `GET /api/v2/node-apps/ui-stages` entry.
8
+ *
9
+ * - `ready` — running and servable. The only population an old daemon ever returned.
10
+ * - `dormant` — not running, but startable on demand. Renders normally; opening it wakes it.
11
+ * - `blocked` — cannot be started right now. Renders with an indicator and a reason.
12
+ *
13
+ * It lives here, in `@econ-v1/rpc`, for the reason `CONNECTIVITY_STATE_QUERY` does: both
14
+ * `client/kernel` (the readiness coordinator and the readiness query) and `client/ui` (the
15
+ * nav badge) need the same vocabulary, and `@econ-v1/rpc` is the ONLY package `client/ui`
16
+ * may import (`docs/development/CLIENT_NODE_CONVENTIONS.md` rule B2). The typedef itself is
17
+ * declared in `@econ-v1/ports` because the persisted `StageCatalogEntry` shape carries it and
18
+ * `client/ports` may import nothing; this module owns the runtime half and re-exports the type.
19
+ *
20
+ * @type {Readonly<Record<"BLOCKED" | "DORMANT" | "READY", StageAvailability>>}
21
+ */
22
+ export const STAGE_AVAILABILITY = Object.freeze({
23
+ BLOCKED: /** @type {const} */ ("blocked"),
24
+ DORMANT: /** @type {const} */ ("dormant"),
25
+ READY: /** @type {const} */ ("ready"),
26
+ });
27
+
28
+ /**
29
+ * The value the client sends on the catalog request to opt into the expanded population.
30
+ *
31
+ * Without it the daemon serves exactly the `Ready`-only set it always has, so a stale cached
32
+ * shell that predates this build is bit-for-bit unaffected. Both shapes carry `availability`
33
+ * on every entry, which is how a new client tells a new daemon from an old one.
34
+ */
35
+ export const STAGE_CATALOG_AVAILABILITY_OPT_IN = /** @type {const} */ ("availability=v1");
36
+
37
+ /**
38
+ * The single place a wire `availability` value becomes something this build may act on.
39
+ *
40
+ * Two DIFFERENT defaults, and the asymmetry is deliberate — do not "simplify" it into one:
41
+ *
42
+ * - **Absent** -> `ready`. A daemon that never sends the field is an older daemon serving
43
+ * exactly today's `Ready`-only population, so every entry it returns genuinely is ready.
44
+ * Fail OPEN: treating those as blocked would empty the nav on every pre-upgrade node.
45
+ * - **Present but unrecognised** -> `blocked`. A value this build does not know is a state it
46
+ * cannot safely act on. A sibling change adds a `Broken` variant, and defaulting that to
47
+ * `ready` would re-enable asset prefetch for a bundle guaranteed to 404 — which writes the
48
+ * durable `failed` readiness row, and the permanent unactionable warning notice, that stage
49
+ * availability exists to remove. Fail CLOSED.
50
+ *
51
+ * Never throws. A single entry that threw would abort the whole catalog refresh and blank the
52
+ * user's nav, so an unusable value degrades to the safe state instead.
53
+ *
54
+ * @param {unknown} value
55
+ * @returns {StageAvailability}
56
+ */
57
+ export function normalizeStageAvailability(value) {
58
+ if (value === undefined || value === null)
59
+ return STAGE_AVAILABILITY.READY;
60
+ if (value === STAGE_AVAILABILITY.READY || value === STAGE_AVAILABILITY.DORMANT || value === STAGE_AVAILABILITY.BLOCKED)
61
+ return /** @type {StageAvailability} */ (value);
62
+ return STAGE_AVAILABILITY.BLOCKED;
63
+ }
64
+
65
+ /**
66
+ * Whether a catalog entry is one the node can serve right now.
67
+ *
68
+ * The predicate every "may I fetch this stage's assets / may this stage count towards offline
69
+ * readiness" decision reads, so all of them share one interpretation of the field.
70
+ *
71
+ * @param {{ readonly availability?: unknown }} entry
72
+ * @returns {boolean}
73
+ */
74
+ export function isStageReady(entry) {
75
+ return normalizeStageAvailability(entry.availability) === STAGE_AVAILABILITY.READY;
76
+ }