@econ-v1/rpc 7.5.26 → 7.5.28
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/client-update-contract.d.ts +20 -0
- package/dist/client-update-contract.d.ts.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/pairing-status-contract.d.ts +32 -0
- package/dist/pairing-status-contract.d.ts.map +1 -1
- package/dist/stage-context.d.ts +2 -0
- package/dist/stage-context.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/client-update-contract.js +57 -0
- package/src/index.js +4 -0
- package/src/pairing-status-contract.js +32 -0
- package/src/stage-context.js +2 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type Unsubscribe = import("./client.js").Unsubscribe;
|
|
2
|
+
export type ClientUpdateSnapshot = {
|
|
3
|
+
readonly running?: string;
|
|
4
|
+
readonly available?: string;
|
|
5
|
+
readonly state: "idle" | "updating" | "failed";
|
|
6
|
+
readonly error?: string;
|
|
7
|
+
readonly result?: {
|
|
8
|
+
readonly ok: boolean;
|
|
9
|
+
readonly message: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export type ClientUpdateHost = {
|
|
13
|
+
get(): ClientUpdateSnapshot;
|
|
14
|
+
subscribe(listener: (snapshot: ClientUpdateSnapshot) => void): Unsubscribe;
|
|
15
|
+
update(options?: {
|
|
16
|
+
readonly repair?: boolean;
|
|
17
|
+
}): Promise<void>;
|
|
18
|
+
refresh(): void;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=client-update-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-update-contract.d.ts","sourceRoot":"","sources":["../src/client-update-contract.js"],"names":[],"mappings":"0BAEc,OAAO,aAAa,EAAE,WAAW;mCA+BjC;IACb,QAAY,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAY,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAChC,QAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IACnD,QAAY,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAY,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CACrE;+BAUU;IACT,GAAG,IAAI,oBAAoB,CAAC;IAC5B,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,GAAG,WAAW,CAAC;IAC3E,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,IAAI,IAAI,CAAA;CAChB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -136,6 +136,8 @@ export type PickerSearchOption = import("./model-picker-contract.js").PickerSear
|
|
|
136
136
|
export type PickerStore = import("./model-picker-contract.js").PickerStore;
|
|
137
137
|
export type RouteMode = import("./model-picker-contract.js").RouteMode;
|
|
138
138
|
export type WebSearchChoice = import("./model-picker-contract.js").WebSearchChoice;
|
|
139
|
+
export type ClientUpdateHost = import("./client-update-contract.js").ClientUpdateHost;
|
|
140
|
+
export type ClientUpdateSnapshot = import("./client-update-contract.js").ClientUpdateSnapshot;
|
|
139
141
|
export type ClientServicesRetryResult = import("./client-services-contract.js").ClientServicesRetryResult;
|
|
140
142
|
export type FactoryResetPending = import("./factory-reset-contract.js").FactoryResetPending;
|
|
141
143
|
export type FactoryResetStatus = import("./factory-reset-contract.js").FactoryResetStatus;
|
|
@@ -220,7 +222,7 @@ export { HOST_CONTEXT_MAX_BYTES, validateHostContextView } from "./host-context-
|
|
|
220
222
|
export { L402_ENFORCEMENT_QUERY, L402_ENFORCEMENT_ROW_ID, L402_ENFORCEMENT_SET_COMMAND } from "./l402-enforcement-contract.js";
|
|
221
223
|
export { isRouteMode, MODEL_PICKER_CATALOG_QUERY, MODEL_PICKER_CATALOG_ROW_ID, MODEL_PICKER_RECENTS_LIMIT, MODEL_PICKER_RECENTS_SETTING, MODEL_PICKER_REFRESH_COMMAND, MODEL_PICKER_REFRESH_QUERY, MODEL_PICKER_REFRESH_ROW_ID, MODEL_PICKER_STAGE_ID, parseModelPickerRefreshPayload, ROUTE_MODES, WEB_SEARCH_AUTO } from "./model-picker-contract.js";
|
|
222
224
|
export { FACTORY_RESET_ARM_COMMAND, FACTORY_RESET_CANCEL_COMMAND, FACTORY_RESET_CHALLENGE_COMMAND, FACTORY_RESET_ROW_ID, FACTORY_RESET_STATUS_QUERY } from "./factory-reset-contract.js";
|
|
223
|
-
export { CLIENT_DEVICE_PAIRING_STATUS_QUERY, CLIENT_DEVICE_WIRE_ERROR_DEVICE_LIMIT_EXCEEDED, 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";
|
|
225
|
+
export { CLIENT_DEVICE_PAIRING_STATUS_QUERY, CLIENT_DEVICE_WIRE_ERROR_DELEGATION_REVOKED, CLIENT_DEVICE_WIRE_ERROR_DEVICE_LIMIT_EXCEEDED, 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, CLIENT_DEVICE_WIRE_ERROR_REVOKED } from "./pairing-status-contract.js";
|
|
224
226
|
export { DEVICE_CLEANUP_CANCEL_COMMAND, DEVICE_CLEANUP_QUERY, DEVICE_CLEANUP_REQUEST_COMMAND, DEVICE_CLEANUP_STATUS_COMMAND } from "./device-cleanup-contract.js";
|
|
225
227
|
export { CONNECTIVITY_STATE_QUERY, TRANSPORT_STATE_QUERY, TRANSPORT_STATE_QUERY_V2 } from "./transport-contract.js";
|
|
226
228
|
export { isStageReady, normalizeStageAvailability, STAGE_AVAILABILITY, STAGE_CATALOG_AVAILABILITY_OPT_IN, STAGE_CATALOG_ENVELOPE_OPT_IN, STAGE_CATALOG_META_QUERY, STAGE_REJECTED_QUERY } from "./stage-catalog-contract.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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":"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"}
|
|
@@ -25,6 +25,38 @@ export const CLIENT_DEVICE_WIRE_ERROR_DEVICE_NOT_REGISTERED: "device_not_registe
|
|
|
25
25
|
* @see CLIENT_DEVICE_WIRE_ERROR_NAME_TAKEN
|
|
26
26
|
*/
|
|
27
27
|
export const CLIENT_DEVICE_WIRE_ERROR_DEVICE_LIMIT_EXCEEDED: "device_limit_exceeded";
|
|
28
|
+
/**
|
|
29
|
+
* The REQUESTING device's own DID-device binding is revoked (key-safety gaps Task 1,
|
|
30
|
+
* 2026-10-08-key-safety-gaps). Travels in the envelope's `code` (HTTP 403), same convention as
|
|
31
|
+
* `CLIENT_DEVICE_WIRE_ERROR_DEVICE_LIMIT_EXCEEDED` above — `error.message` stays the node's
|
|
32
|
+
* unchanged human sentence `"Client device is revoked"`. Emitted by
|
|
33
|
+
* `adapters/auth/src/authenticator.rs::refuse` (`ClientDeviceDelegationError::RevokedDevice`,
|
|
34
|
+
* every owner-gated request carrying a delegation) and `adapters/http/src/
|
|
35
|
+
* client_devices.rs::map_error` (`ClientDevicePairingError::Revoked` on
|
|
36
|
+
* `/client-devices/session`'s delegation-issuance path). `DeviceSessionClient#request`
|
|
37
|
+
* (`client/adapters-web/src/network/device-session-client.js`) lifts it off the structured
|
|
38
|
+
* `error.code` — NEVER off `error.message` text, which could coincidentally collide with an
|
|
39
|
+
* unrelated (e.g. target-device) refusal — and is the ONLY trigger for entering the revoked
|
|
40
|
+
* state (session dropped, delegation + connection-metadata cleared, key material KEPT; see
|
|
41
|
+
* `IndexedDbIdentityStore#markRevoked`). See `CLIENT_DEVICE_WIRE_ERROR_DELEGATION_REVOKED` for
|
|
42
|
+
* the sibling code. A node that predates this code and answers `/client-devices/session` with a
|
|
43
|
+
* bare, uncoded 403 is handled as an ordinary retryable transport failure (key-safety gaps
|
|
44
|
+
* follow-up, 2026-10-08): never terminal, never destructive, since the uncoded text alone
|
|
45
|
+
* cannot be told apart from an unrelated refusal that happens to use the same words.
|
|
46
|
+
*/
|
|
47
|
+
export const CLIENT_DEVICE_WIRE_ERROR_REVOKED: "client_device_revoked";
|
|
48
|
+
/**
|
|
49
|
+
* Only the PRESENTED delegation credential is revoked; the requesting device's own binding is
|
|
50
|
+
* still active (key-safety gaps Task 1). Same wire shape as
|
|
51
|
+
* {@link CLIENT_DEVICE_WIRE_ERROR_REVOKED} (HTTP 403, `code` field, unchanged human message) —
|
|
52
|
+
* emitted ONLY by `adapters/auth/src/authenticator.rs::refuse`
|
|
53
|
+
* (`ClientDeviceDelegationError::Revoked`), never by `/client-devices/session` itself. A
|
|
54
|
+
* browser seeing this on any owner-gated request (`DeviceSessionClient#request`) drops the
|
|
55
|
+
* in-memory session and the stored delegation and lets the next attempt re-establish a session
|
|
56
|
+
* with the SAME device key — this is deliberately NOT terminal and never touches key material.
|
|
57
|
+
* @see CLIENT_DEVICE_WIRE_ERROR_REVOKED
|
|
58
|
+
*/
|
|
59
|
+
export const CLIENT_DEVICE_WIRE_ERROR_DELEGATION_REVOKED: "client_device_delegation_revoked";
|
|
28
60
|
/**
|
|
29
61
|
* Kernel-owned view of the CURRENT pairing attempt this browser has in flight (design M4,
|
|
30
62
|
* `docs/superpowers/plans/2026-08-11-pwa-trusted-devices.md`). Single-slot — there is never
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pairing-status-contract.d.ts","sourceRoot":"","sources":["../src/pairing-status-contract.js"],"names":[],"mappings":"AACA,iDAAkD,iCAAiC,CAAC;AACpF;;;;;;;;GAQG;AACH,kDAAmD,YAAY,CAAC;AAChE,+CAA+C;AAC/C,mDAAoD,aAAa,CAAC;AAClE,+CAA+C;AAC/C,6DAA8D,uBAAuB,CAAC;AACtF,+CAA+C;AAC/C,6DAA8D,uBAAuB,CAAC;AACtF;;;;;;;;GAQG;AACH,6DAA8D,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"pairing-status-contract.d.ts","sourceRoot":"","sources":["../src/pairing-status-contract.js"],"names":[],"mappings":"AACA,iDAAkD,iCAAiC,CAAC;AACpF;;;;;;;;GAQG;AACH,kDAAmD,YAAY,CAAC;AAChE,+CAA+C;AAC/C,mDAAoD,aAAa,CAAC;AAClE,+CAA+C;AAC/C,6DAA8D,uBAAuB,CAAC;AACtF,+CAA+C;AAC/C,6DAA8D,uBAAuB,CAAC;AACtF;;;;;;;;GAQG;AACH,6DAA8D,uBAAuB,CAAC;AACtF;;;;;;;;;;;;;;;;;;GAkBG;AACH,+CAAgD,uBAAuB,CAAC;AACxE;;;;;;;;;;GAUG;AACH,0DAA2D,kCAAkC,CAAC;;;;;;;;;;;;;;;;;;2CAiBjF;IAAE,QAAQ,CAAC,EAAE,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAC,SAAS,GAAC,OAAO,GAAC,UAAU,GAAC,SAAS,GAAC,SAAS,GAAC,eAAe,GAAC,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE"}
|
package/dist/stage-context.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export type EventSubscribeOptions = import("./client.js").EventSubscribeOptions;
|
|
|
5
5
|
export type EventSubscription = import("./client.js").EventSubscription;
|
|
6
6
|
export type DialogCenter = import("./dialog-contract.js").DialogCenter;
|
|
7
7
|
export type ModelPickerCenter = import("./model-picker-contract.js").ModelPickerCenter;
|
|
8
|
+
export type ClientUpdateHost = import("./client-update-contract.js").ClientUpdateHost;
|
|
8
9
|
export type SystemNoticeCenter = import("./system-notice-contract.js").SystemNoticeCenter;
|
|
9
10
|
export type JsonValue = import("@econ-v1/domain").JsonValue;
|
|
10
11
|
export type StageComposition = {
|
|
@@ -121,6 +122,7 @@ export type StageHostShared = {
|
|
|
121
122
|
};
|
|
122
123
|
readonly diagnostics?: StageDiagnosticsHost;
|
|
123
124
|
readonly panel?: AssistantPanelHost;
|
|
125
|
+
readonly clientUpdate?: ClientUpdateHost;
|
|
124
126
|
};
|
|
125
127
|
export type StageContextV1 = StageContextShared & {
|
|
126
128
|
readonly host: StageHostShared & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-context.d.ts","sourceRoot":"","sources":["../src/stage-context.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stage-context.d.ts","sourceRoot":"","sources":["../src/stage-context.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@econ-v1/rpc",
|
|
3
|
-
"version": "7.5.
|
|
3
|
+
"version": "7.5.28",
|
|
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": "7.5.
|
|
60
|
-
"@econ-v1/ports": "7.5.
|
|
59
|
+
"@econ-v1/domain": "7.5.28",
|
|
60
|
+
"@econ-v1/ports": "7.5.28"
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
/** @typedef {import("./client.js").Unsubscribe} Unsubscribe */
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* `ctx.host.clientUpdate` — the one door a stage has onto the shared client-app (PWA bundle)
|
|
7
|
+
* update/repair flow, granted only to the OTA stage host (ADR-114;
|
|
8
|
+
* `CLIENT_UPDATE_HOST_APPS` in `stage-loader.js`).
|
|
9
|
+
*
|
|
10
|
+
* Before this contract only the bottom-right system-update panel and Profile could drive a
|
|
11
|
+
* client-app update (`system-update-panel.js` -> `currentShellCacheReset().update(repair)` ->
|
|
12
|
+
* `browser-shell-update.js`); a `node` package upgrade that replaced the PWA bundle under OTA's
|
|
13
|
+
* own feet just read "Update complete" there, with no way for OTA to see the update was
|
|
14
|
+
* available or start it. This contract gives OTA exactly the same seam the panel and Profile
|
|
15
|
+
* already use, shared through ONE controller
|
|
16
|
+
* (`client/ui/src/shell/client-update-controller.js`) so an update started from any surface —
|
|
17
|
+
* OTA's own "Update app"/"Repair" actions, or the panel's — shows the same state everywhere.
|
|
18
|
+
*
|
|
19
|
+
* `running`/`available` retain the panel's own "keep the last complete pair" rule: a failed
|
|
20
|
+
* read of either half is UNKNOWN, never evidence that a known update vanished, so both are
|
|
21
|
+
* absent until a complete pair has been read at least once, and a later incomplete read never
|
|
22
|
+
* overwrites a complete pair already held. `state` is `"updating"` for the lifetime of a
|
|
23
|
+
* single-flight `update()` call — from any caller — and `"failed"` once that call's attempt
|
|
24
|
+
* ends in an error without the document having reloaded; a call that merely requested
|
|
25
|
+
* navigation (the normal success path) returns to `"idle"`, matching the existing Profile/panel
|
|
26
|
+
* behaviour, since the reload itself ends the session rather than resolving it.
|
|
27
|
+
*
|
|
28
|
+
* `result` is the one-shot post-reload receipt (`readShellUpdateResultOnce()`,
|
|
29
|
+
* `shell-cache-reset.js`): present once, on the page load that confirms (or fails to confirm) a
|
|
30
|
+
* reload a PRIOR page requested, then gone for the rest of the session — nothing re-derives it.
|
|
31
|
+
*
|
|
32
|
+
* Plan: `docs/superpowers/plans/2026-10-08-ota-stage-client-update.md`.
|
|
33
|
+
*/
|
|
34
|
+
/** @typedef {{
|
|
35
|
+
* readonly running?: string,
|
|
36
|
+
* readonly available?: string,
|
|
37
|
+
* readonly state: "idle" | "updating" | "failed",
|
|
38
|
+
* readonly error?: string,
|
|
39
|
+
* readonly result?: { readonly ok: boolean, readonly message: string }
|
|
40
|
+
* }} ClientUpdateSnapshot */
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* `update` is single-flight: a call made while one is already in progress — from this stage, the
|
|
44
|
+
* panel's own button, or any other caller of the shared controller — joins the SAME attempt
|
|
45
|
+
* rather than starting a second one, so two surfaces racing a reload cannot race each other.
|
|
46
|
+
* `refresh()` invalidates `node.about.v1` (the query the shell's own version comparison reads),
|
|
47
|
+
* so a transaction this stage just completed can recheck the client-app pair without waiting for
|
|
48
|
+
* the node's own next push.
|
|
49
|
+
*/
|
|
50
|
+
/** @typedef {{
|
|
51
|
+
* get(): ClientUpdateSnapshot,
|
|
52
|
+
* subscribe(listener: (snapshot: ClientUpdateSnapshot) => void): Unsubscribe,
|
|
53
|
+
* update(options?: { readonly repair?: boolean }): Promise<void>,
|
|
54
|
+
* refresh(): void
|
|
55
|
+
* }} ClientUpdateHost */
|
|
56
|
+
|
|
57
|
+
export {};
|
package/src/index.js
CHANGED
|
@@ -129,6 +129,8 @@
|
|
|
129
129
|
/** @typedef {import("./model-picker-contract.js").PickerStore} PickerStore */
|
|
130
130
|
/** @typedef {import("./model-picker-contract.js").RouteMode} RouteMode */
|
|
131
131
|
/** @typedef {import("./model-picker-contract.js").WebSearchChoice} WebSearchChoice */
|
|
132
|
+
/** @typedef {import("./client-update-contract.js").ClientUpdateHost} ClientUpdateHost */
|
|
133
|
+
/** @typedef {import("./client-update-contract.js").ClientUpdateSnapshot} ClientUpdateSnapshot */
|
|
132
134
|
/** @typedef {import("./client-services-contract.js").ClientServicesRetryResult} ClientServicesRetryResult */
|
|
133
135
|
/** @typedef {import("./factory-reset-contract.js").FactoryResetPending} FactoryResetPending */
|
|
134
136
|
/** @typedef {import("./factory-reset-contract.js").FactoryResetStatus} FactoryResetStatus */
|
|
@@ -228,11 +230,13 @@ export { DEVICE_BOOT_STATE_QUERY } from "./device-boot-contract.js";
|
|
|
228
230
|
export { CLIENT_DEVICE_PENDING_QUERY } from "./client-device-pending-contract.js";
|
|
229
231
|
export {
|
|
230
232
|
CLIENT_DEVICE_PAIRING_STATUS_QUERY,
|
|
233
|
+
CLIENT_DEVICE_WIRE_ERROR_DELEGATION_REVOKED,
|
|
231
234
|
CLIENT_DEVICE_WIRE_ERROR_DEVICE_LIMIT_EXCEEDED,
|
|
232
235
|
CLIENT_DEVICE_WIRE_ERROR_DEVICE_NOT_REGISTERED,
|
|
233
236
|
CLIENT_DEVICE_WIRE_ERROR_LAST_DEVICE,
|
|
234
237
|
CLIENT_DEVICE_WIRE_ERROR_LAST_DEVICE_PROTECTED,
|
|
235
238
|
CLIENT_DEVICE_WIRE_ERROR_NAME_TAKEN,
|
|
239
|
+
CLIENT_DEVICE_WIRE_ERROR_REVOKED,
|
|
236
240
|
} from "./pairing-status-contract.js";
|
|
237
241
|
export {
|
|
238
242
|
DEVICE_CLEANUP_CANCEL_COMMAND,
|
|
@@ -26,6 +26,38 @@ export const CLIENT_DEVICE_WIRE_ERROR_DEVICE_NOT_REGISTERED = "device_not_regist
|
|
|
26
26
|
* @see CLIENT_DEVICE_WIRE_ERROR_NAME_TAKEN
|
|
27
27
|
*/
|
|
28
28
|
export const CLIENT_DEVICE_WIRE_ERROR_DEVICE_LIMIT_EXCEEDED = "device_limit_exceeded";
|
|
29
|
+
/**
|
|
30
|
+
* The REQUESTING device's own DID-device binding is revoked (key-safety gaps Task 1,
|
|
31
|
+
* 2026-10-08-key-safety-gaps). Travels in the envelope's `code` (HTTP 403), same convention as
|
|
32
|
+
* `CLIENT_DEVICE_WIRE_ERROR_DEVICE_LIMIT_EXCEEDED` above — `error.message` stays the node's
|
|
33
|
+
* unchanged human sentence `"Client device is revoked"`. Emitted by
|
|
34
|
+
* `adapters/auth/src/authenticator.rs::refuse` (`ClientDeviceDelegationError::RevokedDevice`,
|
|
35
|
+
* every owner-gated request carrying a delegation) and `adapters/http/src/
|
|
36
|
+
* client_devices.rs::map_error` (`ClientDevicePairingError::Revoked` on
|
|
37
|
+
* `/client-devices/session`'s delegation-issuance path). `DeviceSessionClient#request`
|
|
38
|
+
* (`client/adapters-web/src/network/device-session-client.js`) lifts it off the structured
|
|
39
|
+
* `error.code` — NEVER off `error.message` text, which could coincidentally collide with an
|
|
40
|
+
* unrelated (e.g. target-device) refusal — and is the ONLY trigger for entering the revoked
|
|
41
|
+
* state (session dropped, delegation + connection-metadata cleared, key material KEPT; see
|
|
42
|
+
* `IndexedDbIdentityStore#markRevoked`). See `CLIENT_DEVICE_WIRE_ERROR_DELEGATION_REVOKED` for
|
|
43
|
+
* the sibling code. A node that predates this code and answers `/client-devices/session` with a
|
|
44
|
+
* bare, uncoded 403 is handled as an ordinary retryable transport failure (key-safety gaps
|
|
45
|
+
* follow-up, 2026-10-08): never terminal, never destructive, since the uncoded text alone
|
|
46
|
+
* cannot be told apart from an unrelated refusal that happens to use the same words.
|
|
47
|
+
*/
|
|
48
|
+
export const CLIENT_DEVICE_WIRE_ERROR_REVOKED = "client_device_revoked";
|
|
49
|
+
/**
|
|
50
|
+
* Only the PRESENTED delegation credential is revoked; the requesting device's own binding is
|
|
51
|
+
* still active (key-safety gaps Task 1). Same wire shape as
|
|
52
|
+
* {@link CLIENT_DEVICE_WIRE_ERROR_REVOKED} (HTTP 403, `code` field, unchanged human message) —
|
|
53
|
+
* emitted ONLY by `adapters/auth/src/authenticator.rs::refuse`
|
|
54
|
+
* (`ClientDeviceDelegationError::Revoked`), never by `/client-devices/session` itself. A
|
|
55
|
+
* browser seeing this on any owner-gated request (`DeviceSessionClient#request`) drops the
|
|
56
|
+
* in-memory session and the stored delegation and lets the next attempt re-establish a session
|
|
57
|
+
* with the SAME device key — this is deliberately NOT terminal and never touches key material.
|
|
58
|
+
* @see CLIENT_DEVICE_WIRE_ERROR_REVOKED
|
|
59
|
+
*/
|
|
60
|
+
export const CLIENT_DEVICE_WIRE_ERROR_DELEGATION_REVOKED = "client_device_delegation_revoked";
|
|
29
61
|
/**
|
|
30
62
|
* Kernel-owned view of the CURRENT pairing attempt this browser has in flight (design M4,
|
|
31
63
|
* `docs/superpowers/plans/2026-08-11-pwa-trusted-devices.md`). Single-slot — there is never
|
package/src/stage-context.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
/** @typedef {import("./client.js").EventSubscription} EventSubscription */
|
|
8
8
|
/** @typedef {import("./dialog-contract.js").DialogCenter} DialogCenter */
|
|
9
9
|
/** @typedef {import("./model-picker-contract.js").ModelPickerCenter} ModelPickerCenter */
|
|
10
|
+
/** @typedef {import("./client-update-contract.js").ClientUpdateHost} ClientUpdateHost */
|
|
10
11
|
/** @typedef {import("./system-notice-contract.js").SystemNoticeCenter} SystemNoticeCenter */
|
|
11
12
|
/** @typedef {import("@econ-v1/domain").JsonValue} JsonValue */
|
|
12
13
|
/** @typedef {{ getInput(): JsonValue, subscribeInput(listener: (input: JsonValue) => void): Unsubscribe, emit(event: JsonValue): Promise<void> }} StageComposition */
|
|
@@ -35,7 +36,7 @@
|
|
|
35
36
|
/** @typedef {{status:"excluded"|"collecting"|"ready"|"partial"|"unavailable",snapshot:unknown}} AgentPageContextResult */
|
|
36
37
|
/** @typedef {{readonly tabId:string,prepareTurn(conversationId:string):Promise<void>,executeAuthorized(name:string,args:Record<string,unknown>,target:{nodeId:string,pageId:string,navigationRevision:number},verify:()=>Promise<void>):Promise<unknown>,setConversation(selection:{conversationId:string,allowed:boolean,active:boolean}):void,subscribe(listener:(result:AgentPageContextResult)=>void):Unsubscribe,captureForSend():Promise<AgentPageContextResult>,readTarget():Promise<{nodeId:string,pageId:string,navigationRevision:number}|null>}} AgentPageContextHost */
|
|
37
38
|
/** @typedef {{read():unknown,activate(provider:()=>unknown):Unsubscribe,current(view:"stage"|"widget"):unknown,register(view:"stage"|"widget",provider:()=>unknown,releaseDraft?:(current:unknown,accepted:unknown)=>unknown):Unsubscribe,transfer(from:"stage"|"widget",to:"stage"|"widget"):boolean,cancelTransfersFrom?(from:"stage"|"widget"):void,pending(view:"stage"|"widget"):{id:number,state:unknown}|null,subscribe(view:"stage"|"widget",listener:()=>void):Unsubscribe,acknowledge(view:"stage"|"widget",id:number):boolean}} AgentViewWorkspace */
|
|
38
|
-
/** @typedef {{ readonly assistantWorkspace?: AgentViewWorkspace, readonly pageContext?: AgentPageContextHost, navigate(path: string): void, readonly root: Element, readonly context: { set(view: object): void, clear(): void }, readonly diagnostics?: StageDiagnosticsHost, readonly panel?: AssistantPanelHost }} StageHostShared */
|
|
39
|
+
/** @typedef {{ readonly assistantWorkspace?: AgentViewWorkspace, readonly pageContext?: AgentPageContextHost, navigate(path: string): void, readonly root: Element, readonly context: { set(view: object): void, clear(): void }, readonly diagnostics?: StageDiagnosticsHost, readonly panel?: AssistantPanelHost, readonly clientUpdate?: ClientUpdateHost }} StageHostShared */
|
|
39
40
|
/** @typedef {StageContextShared & { readonly host: StageHostShared & { readonly uiApi: 1 } }} StageContextV1 */
|
|
40
41
|
/** @typedef {StageContextShared & { readonly host: StageHostShared & { readonly dialogs: DialogCenter, readonly modelPicker: ModelPickerCenter, readonly systemNotices: SystemNoticeCenter, readonly uiApi: 2 } }} StageContextV2 */
|
|
41
42
|
/** @typedef {StageContextV1 | StageContextV2} StageContext */
|