@econ-v1/rpc 7.2.10 → 7.3.1
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.d.ts +26 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/describe-client-error.d.ts.map +1 -1
- package/dist/grants-contract.d.ts +7 -0
- package/dist/grants-contract.d.ts.map +1 -0
- package/dist/host-context-contract.d.ts +26 -0
- package/dist/host-context-contract.d.ts.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/message-port-client.d.ts +22 -4
- package/dist/message-port-client.d.ts.map +1 -1
- package/dist/model-picker-contract.d.ts +12 -4
- package/dist/model-picker-contract.d.ts.map +1 -1
- package/dist/protocol.d.ts +29 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/stage-context.d.ts +17 -1
- package/dist/stage-context.d.ts.map +1 -1
- package/dist/subscription-state.d.ts +35 -0
- package/dist/subscription-state.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/client.js +21 -2
- package/src/describe-client-error.js +28 -1
- package/src/grants-contract.js +8 -0
- package/src/host-context-contract.js +60 -0
- package/src/index.js +10 -0
- package/src/message-port-client.js +170 -29
- package/src/model-picker-contract.js +10 -4
- package/src/protocol.js +44 -1
- package/src/stage-context.js +6 -2
- package/src/subscription-state.js +74 -0
package/dist/client.d.ts
CHANGED
|
@@ -2,6 +2,28 @@ export type DomainEvent = import("@econ-v1/domain").DomainEvent;
|
|
|
2
2
|
export type KernelEventType = import("@econ-v1/domain").KernelEventType;
|
|
3
3
|
export type QueryName = import("@econ-v1/domain").QueryName;
|
|
4
4
|
export type Unsubscribe = () => void;
|
|
5
|
+
/**
|
|
6
|
+
* Whether an event subscription is live on the home node (ADR-039). `confirmed` is true only
|
|
7
|
+
* when the host itself confirmed it; `generation` rises by one on every `live`, so a holder
|
|
8
|
+
* reads the state it follows once per generation.
|
|
9
|
+
*/
|
|
10
|
+
export type SubscriptionState = import("@econ-v1/ports").AppEventSubscriptionState;
|
|
11
|
+
/**
|
|
12
|
+
* `onState` hears every transition of the subscription, starting with the current state.
|
|
13
|
+
*/
|
|
14
|
+
export type EventSubscribeOptions = {
|
|
15
|
+
readonly onState?: (state: SubscriptionState) => void;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* What `subscribe` returns: still the unsubscribe function, plus, on a shell that carries
|
|
19
|
+
* subscription state, `ready` (resolves once this subscription is `live`, at once when it
|
|
20
|
+
* already is, and rejects on `refused`) and the current `state`. Both are optional because
|
|
21
|
+
* an older shell returns a bare function; detect with `typeof handle.ready?.then === "function"`.
|
|
22
|
+
*/
|
|
23
|
+
export type EventSubscription = Unsubscribe & {
|
|
24
|
+
readonly ready?: Promise<SubscriptionState>;
|
|
25
|
+
readonly state?: SubscriptionState;
|
|
26
|
+
};
|
|
5
27
|
/**
|
|
6
28
|
* What `prepareStage` hands back for a stage the kernel has committed.
|
|
7
29
|
*
|
|
@@ -37,18 +59,20 @@ export type LiveQueryFailure = {
|
|
|
37
59
|
export type KernelRpcClient = {
|
|
38
60
|
command<T>(name: string, payload: unknown): Promise<T>;
|
|
39
61
|
liveQuery<T>(name: QueryName, params: unknown, listener: (diff: import("@econ-v1/domain").QueryDiff<T>) => void, onError?: (error: LiveQueryFailure) => void): Unsubscribe;
|
|
62
|
+
onUiRequest(handler: (name: string, payload: import("@econ-v1/domain").JsonValue) => Promise<import("@econ-v1/domain").JsonValue>): Unsubscribe;
|
|
40
63
|
openStageSession(appName: string, manifestSha256: string, surfaceId?: string): Promise<StageRpcSession>;
|
|
41
64
|
prepareStage(appName: string): Promise<PreparedStage>;
|
|
42
65
|
publish<T extends KernelEventType>(type: T, payload: import("@econ-v1/domain").KernelEventPayload<T>): Promise<void>;
|
|
43
66
|
query<T>(name: QueryName, params: unknown): Promise<T>;
|
|
44
|
-
subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void):
|
|
67
|
+
subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void, options?: EventSubscribeOptions): EventSubscription;
|
|
45
68
|
};
|
|
46
69
|
export type StageRpcSession = {
|
|
47
70
|
close(): void;
|
|
71
|
+
command<T>(name: string, payload: unknown): Promise<T>;
|
|
48
72
|
invokeCapability<T>(capability: string, payload: unknown): Promise<T>;
|
|
49
73
|
liveQuery<T>(name: QueryName, params: unknown, listener: (diff: import("@econ-v1/domain").QueryDiff<T>) => void, onError?: (error: LiveQueryFailure) => void): Unsubscribe;
|
|
50
74
|
publish<T extends KernelEventType>(type: T, payload: import("@econ-v1/domain").KernelEventPayload<T>): Promise<void>;
|
|
51
75
|
query<T>(name: QueryName, params: unknown): Promise<T>;
|
|
52
|
-
subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void):
|
|
76
|
+
subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void, options?: EventSubscribeOptions): EventSubscription;
|
|
53
77
|
};
|
|
54
78
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.js"],"names":[],"mappings":"0BAEc,OAAO,iBAAiB,EAAE,WAAW;8BACrC,OAAO,iBAAiB,EAAE,eAAe;wBACzC,OAAO,iBAAiB,EAAE,SAAS;0BACnC,MAAM,IAAI;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe-client-error.d.ts","sourceRoot":"","sources":["../src/describe-client-error.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"describe-client-error.d.ts","sourceRoot":"","sources":["../src/describe-client-error.js"],"names":[],"mappings":"AAkDA;;;;;;;;;;GAUG;AACH,2CAHW,OAAO,GACL,oBAAoB,CAmChC;mCA5Fa;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAA;CAAE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one grant the shell can record today: page inspection (console, network, page structure
|
|
3
|
+
* and owner-approved scripts). The kernel's grant policy and the shell's consent dialog and
|
|
4
|
+
* settings page all name it through this constant so the id cannot drift between them.
|
|
5
|
+
*/
|
|
6
|
+
export const DEVTOOLS_GRANT: "devtools.inspect";
|
|
7
|
+
//# sourceMappingURL=grants-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grants-contract.d.ts","sourceRoot":"","sources":["../src/grants-contract.js"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,6BAA8B,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one rule set for a stage-reported view. The shell checks it before reporting and the
|
|
3
|
+
* kernel checks it again on receipt, so neither trusts the other's copy. Returns a detached
|
|
4
|
+
* JSON copy on success (caller getters are read once) or the reason it was rejected.
|
|
5
|
+
* @param {unknown} value @returns {string | HostContextView}
|
|
6
|
+
*/
|
|
7
|
+
export function validateHostContextView(value: unknown): string | HostContextView;
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {{ type: string, id: string, label?: string }} HostContextRef
|
|
10
|
+
* @typedef {{ screen: string, entity?: HostContextRef, selection?: HostContextRef[], summary?: string, facts?: Record<string, string | number | boolean | null> }} HostContextView
|
|
11
|
+
*/
|
|
12
|
+
/** Serialized size limit of one `ctx.host.context.set` view (spec §4.5.2). */
|
|
13
|
+
export const HOST_CONTEXT_MAX_BYTES: 4096;
|
|
14
|
+
export type HostContextRef = {
|
|
15
|
+
type: string;
|
|
16
|
+
id: string;
|
|
17
|
+
label?: string;
|
|
18
|
+
};
|
|
19
|
+
export type HostContextView = {
|
|
20
|
+
screen: string;
|
|
21
|
+
entity?: HostContextRef;
|
|
22
|
+
selection?: HostContextRef[];
|
|
23
|
+
summary?: string;
|
|
24
|
+
facts?: Record<string, string | number | boolean | null>;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=host-context-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-context-contract.d.ts","sourceRoot":"","sources":["../src/host-context-contract.js"],"names":[],"mappings":"AA8BA;;;;;GAKG;AACH,+CAFW,OAAO,GAAkB,MAAM,GAAG,eAAe,CAyB3D;AAzDD;;;GAGG;AAEH,8EAA8E;AAC9E,qCAAsC,IAAI,CAAC;6BAL9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;8BAC5C;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAA;CAAE"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export { SubscriptionStateCell } from "./subscription-state.js";
|
|
1
2
|
export { CLIENT_SERVICES_RETRY_COMMAND } from "./client-services-contract.js";
|
|
3
|
+
export { DEVTOOLS_GRANT } from "./grants-contract.js";
|
|
2
4
|
export { DEVICE_BOOT_STATE_QUERY } from "./device-boot-contract.js";
|
|
3
5
|
export { CLIENT_DEVICE_PENDING_QUERY } from "./client-device-pending-contract.js";
|
|
4
6
|
export { SYNC_CURSORS_QUERY } from "./sync-cursors-contract.js";
|
|
@@ -11,6 +13,9 @@ export type ResponsivenessTracker = import("./node-responsiveness.js").Responsiv
|
|
|
11
13
|
export type PreparedStage = import("./client.js").PreparedStage;
|
|
12
14
|
export type StageRpcSession = import("./client.js").StageRpcSession;
|
|
13
15
|
export type Unsubscribe = import("./client.js").Unsubscribe;
|
|
16
|
+
export type EventSubscribeOptions = import("./client.js").EventSubscribeOptions;
|
|
17
|
+
export type EventSubscription = import("./client.js").EventSubscription;
|
|
18
|
+
export type SubscriptionState = import("./client.js").SubscriptionState;
|
|
14
19
|
export type ClientError = import("@econ-v1/domain").ClientError;
|
|
15
20
|
export type DomainEvent = import("@econ-v1/domain").DomainEvent;
|
|
16
21
|
export type DomainErrorCode = import("@econ-v1/domain").DomainErrorCode;
|
|
@@ -191,11 +196,16 @@ export type RpcTransportState = import("./transport.js").RpcTransportState;
|
|
|
191
196
|
export type ChildState = import("./child-state-contract.js").ChildState;
|
|
192
197
|
export type ChildStateCopy = import("./child-state-contract.js").ChildStateCopy;
|
|
193
198
|
export type ChildAction = import("./child-state-contract.js").ChildAction;
|
|
199
|
+
export type DevtoolsScriptContext = import("@econ-v1/ports").DevtoolsScriptContext;
|
|
200
|
+
export type DevtoolsScriptHostPort = import("@econ-v1/ports").DevtoolsScriptHostPort;
|
|
201
|
+
export type HostContextRef = import("./host-context-contract.js").HostContextRef;
|
|
202
|
+
export type HostContextView = import("./host-context-contract.js").HostContextView;
|
|
194
203
|
export { DOMAIN_ERROR_CODES, DomainError, SYNC_ERROR_CODES, SyncError, TRANSPORT_ERROR_CODES, TransportError } from "@econ-v1/domain";
|
|
195
204
|
export { deserializeClientError, isJsonValue, isSerializableClientError, serializeClientError } from "./errors.js";
|
|
196
205
|
export { DEFAULT_REQUEST_TIMEOUT_MS, KernelRpcTimeoutError, MessagePortKernelRpcClient } from "./message-port-client.js";
|
|
197
206
|
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";
|
|
198
207
|
export { APPS_LIFECYCLE_PIN_COMMAND, APPS_LIFECYCLE_QUERY } from "./apps-lifecycle-contract.js";
|
|
208
|
+
export { HOST_CONTEXT_MAX_BYTES, validateHostContextView } from "./host-context-contract.js";
|
|
199
209
|
export { L402_ENFORCEMENT_QUERY, L402_ENFORCEMENT_ROW_ID, L402_ENFORCEMENT_SET_COMMAND } from "./l402-enforcement-contract.js";
|
|
200
210
|
export { isRouteMode, MODEL_PICKER_CATALOG_QUERY, MODEL_PICKER_CATALOG_ROW_ID, MODEL_PICKER_RECENTS_LIMIT, MODEL_PICKER_RECENTS_SETTING, MODEL_PICKER_STAGE_ID, ROUTE_MODES, WEB_SEARCH_AUTO } from "./model-picker-contract.js";
|
|
201
211
|
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
|
|
@@ -73,9 +73,10 @@ export class MessagePortKernelRpcClient implements KernelRpcClient {
|
|
|
73
73
|
* @template {KernelEventType} T
|
|
74
74
|
* @param {T} type
|
|
75
75
|
* @param {(event: import("@econ-v1/domain").KernelEventByType<T>) => void} listener
|
|
76
|
-
* @
|
|
76
|
+
* @param {EventSubscribeOptions} [options]
|
|
77
|
+
* @returns {EventSubscription}
|
|
77
78
|
*/
|
|
78
|
-
subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void):
|
|
79
|
+
subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void, options?: EventSubscribeOptions): EventSubscription;
|
|
79
80
|
/** @param {string} sessionId */
|
|
80
81
|
closeStageSession(sessionId: string): void;
|
|
81
82
|
/**
|
|
@@ -86,6 +87,10 @@ export class MessagePortKernelRpcClient implements KernelRpcClient {
|
|
|
86
87
|
* @returns {Promise<T>}
|
|
87
88
|
*/
|
|
88
89
|
invokeStageCapability<T>(sessionId: string, capability: string, payload: unknown): Promise<T>;
|
|
90
|
+
/** @template T @param {string} sessionId @param {string} name @param {unknown} payload @returns {Promise<T>} */
|
|
91
|
+
commandStage<T>(sessionId: string, name: string, payload: unknown): Promise<T>;
|
|
92
|
+
/** @param {(name: string, payload: JsonValue) => Promise<JsonValue>} handler @returns {Unsubscribe} */
|
|
93
|
+
onUiRequest(handler: (name: string, payload: JsonValue) => Promise<JsonValue>): Unsubscribe;
|
|
89
94
|
/**
|
|
90
95
|
* @template T
|
|
91
96
|
* @param {string} sessionId
|
|
@@ -119,9 +124,10 @@ export class MessagePortKernelRpcClient implements KernelRpcClient {
|
|
|
119
124
|
* @param {string} sessionId
|
|
120
125
|
* @param {T} type
|
|
121
126
|
* @param {(event: import("@econ-v1/domain").KernelEventByType<T>) => void} listener
|
|
122
|
-
* @
|
|
127
|
+
* @param {EventSubscribeOptions} [options]
|
|
128
|
+
* @returns {EventSubscription}
|
|
123
129
|
*/
|
|
124
|
-
subscribeStage<T extends KernelEventType>(sessionId: string, type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void):
|
|
130
|
+
subscribeStage<T extends KernelEventType>(sessionId: string, type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void, options?: EventSubscribeOptions): EventSubscription;
|
|
125
131
|
#private;
|
|
126
132
|
}
|
|
127
133
|
export type DomainEvent = import("@econ-v1/domain").DomainEvent;
|
|
@@ -132,6 +138,9 @@ export type KernelRpcClient = import("./client.js").KernelRpcClient;
|
|
|
132
138
|
export type PreparedStage = import("./client.js").PreparedStage;
|
|
133
139
|
export type StageRpcSession = import("./client.js").StageRpcSession;
|
|
134
140
|
export type Unsubscribe = import("./client.js").Unsubscribe;
|
|
141
|
+
export type EventSubscribeOptions = import("./client.js").EventSubscribeOptions;
|
|
142
|
+
export type EventSubscription = import("./client.js").EventSubscription;
|
|
143
|
+
export type SubscriptionState = import("./client.js").SubscriptionState;
|
|
135
144
|
export type RpcRequest = import("./protocol.js").RpcRequest;
|
|
136
145
|
export type RpcRequestWithoutId = RpcRequest extends infer TRequest ? TRequest extends RpcRequest ? Omit<TRequest, "id"> : never : never;
|
|
137
146
|
export type RpcTransport = import("./transport.js").RpcTransport;
|
|
@@ -144,9 +153,16 @@ export type PendingRequest = {
|
|
|
144
153
|
readonly timeoutId: ReturnType<typeof globalThis.setTimeout>;
|
|
145
154
|
readonly timeoutMs: number;
|
|
146
155
|
};
|
|
156
|
+
/**
|
|
157
|
+
* `cell` counts the group's own generations rather than the kernel's, because a new kernel
|
|
158
|
+
* (a leader-tab failover replays this subscription onto it) starts its count again.
|
|
159
|
+
*/
|
|
147
160
|
export type EventGroup = {
|
|
161
|
+
readonly cell: SubscriptionStateCell;
|
|
148
162
|
readonly eventType: KernelEventType;
|
|
149
163
|
readonly listeners: Set<(event: DomainEvent) => void>;
|
|
164
|
+
readonly pendingReady: Set<(error: TransportError) => void>;
|
|
165
|
+
refusal?: unknown;
|
|
150
166
|
readonly sessionId: string | undefined;
|
|
151
167
|
readonly subscriptionId: string;
|
|
152
168
|
};
|
|
@@ -171,4 +187,6 @@ export type MessagePortKernelRpcClientOptions = {
|
|
|
171
187
|
readonly observer?: RpcResponsivenessObserver;
|
|
172
188
|
readonly requestTimeoutMs?: number;
|
|
173
189
|
};
|
|
190
|
+
import { SubscriptionStateCell } from "./subscription-state.js";
|
|
191
|
+
import { TransportError } from "@econ-v1/domain";
|
|
174
192
|
//# sourceMappingURL=message-port-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-port-client.d.ts","sourceRoot":"","sources":["../src/message-port-client.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message-port-client.d.ts","sourceRoot":"","sources":["../src/message-port-client.js"],"names":[],"mappings":"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"}
|
|
@@ -41,14 +41,20 @@ export const ROUTE_MODES: readonly ["auto", "public", "private"];
|
|
|
41
41
|
* `peerNodeId` present means the model is bought from that peer (its store),
|
|
42
42
|
* absent means this node runs it on its own key ("My Store"). */
|
|
43
43
|
/** @typedef {{ readonly name: string, readonly peerNodeId?: string }} ModelRef */
|
|
44
|
-
/** What the stage already knows, so the overlay opens on it instead of a default.
|
|
45
|
-
|
|
44
|
+
/** What the stage already knows, so the overlay opens on it instead of a default.
|
|
45
|
+
* `onSelect` hears each Select at once, while the overlay stays open for the chips:
|
|
46
|
+
* the pick carries `model` and the chips as they stand. The promise still resolves
|
|
47
|
+
* when the overlay closes, with the final pick, so a stage that applies both must
|
|
48
|
+
* treat the same model twice as one choice. A host before it ignores `onSelect`. */
|
|
49
|
+
/** @typedef {{ readonly current?: ModelRef, readonly routeMode?: RouteMode, readonly webSearch?: WebSearchChoice, readonly onSelect?: (pick: ModelPick) => void }} ModelPickRequest */
|
|
46
50
|
/** `model` is present only when the owner pressed Select on a row; absent means
|
|
47
51
|
* "keep whatever model the stage already had" — the owner changed only the
|
|
48
52
|
* web-search chip (or nothing but still closed with a chip change). `label` is
|
|
49
53
|
* the catalog's `picker_label ?? name`, so a pill or chip shows the same words
|
|
50
|
-
* the overlay did.
|
|
51
|
-
|
|
54
|
+
* the overlay did. `storeName` is the seller's store as the overlay named it
|
|
55
|
+
* (this node's own `mine.name`, or the peer's), so a chip can say whose store
|
|
56
|
+
* sells the model. */
|
|
57
|
+
/** @typedef {{ readonly model?: ModelRef, readonly label?: string, readonly storeName?: string, readonly routeMode: RouteMode, readonly webSearch: WebSearchChoice }} ModelPick */
|
|
52
58
|
/** Resolves `undefined` when the owner closes without choosing. Rejects with a
|
|
53
59
|
* `DomainError` `conflict` while another `open()` is still pending — the overlay
|
|
54
60
|
* is one surface — and `capability_unavailable` when this host has no design
|
|
@@ -144,10 +150,12 @@ export type ModelPickRequest = {
|
|
|
144
150
|
readonly current?: ModelRef;
|
|
145
151
|
readonly routeMode?: RouteMode;
|
|
146
152
|
readonly webSearch?: WebSearchChoice;
|
|
153
|
+
readonly onSelect?: (pick: ModelPick) => void;
|
|
147
154
|
};
|
|
148
155
|
export type ModelPick = {
|
|
149
156
|
readonly model?: ModelRef;
|
|
150
157
|
readonly label?: string;
|
|
158
|
+
readonly storeName?: string;
|
|
151
159
|
readonly routeMode: RouteMode;
|
|
152
160
|
readonly webSearch: WebSearchChoice;
|
|
153
161
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-picker-contract.d.ts","sourceRoot":"","sources":["../src/model-picker-contract.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model-picker-contract.d.ts","sourceRoot":"","sources":["../src/model-picker-contract.js"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -66,6 +66,24 @@ export type RpcRequest = {
|
|
|
66
66
|
readonly name: string;
|
|
67
67
|
readonly payload: JsonValue;
|
|
68
68
|
readonly type: "command";
|
|
69
|
+
} | {
|
|
70
|
+
readonly id: string;
|
|
71
|
+
readonly name: string;
|
|
72
|
+
readonly payload: JsonValue;
|
|
73
|
+
readonly sessionId: string;
|
|
74
|
+
readonly type: "stage.command";
|
|
75
|
+
} | {
|
|
76
|
+
readonly id: string;
|
|
77
|
+
readonly ok: true;
|
|
78
|
+
readonly requestId: string;
|
|
79
|
+
readonly type: "ui.response";
|
|
80
|
+
readonly value: JsonValue;
|
|
81
|
+
} | {
|
|
82
|
+
readonly error: ClientError;
|
|
83
|
+
readonly id: string;
|
|
84
|
+
readonly ok: false;
|
|
85
|
+
readonly requestId: string;
|
|
86
|
+
readonly type: "ui.response";
|
|
69
87
|
} | {
|
|
70
88
|
readonly id: string;
|
|
71
89
|
readonly name: QueryName;
|
|
@@ -162,6 +180,11 @@ export type RpcEvent = {
|
|
|
162
180
|
readonly diff: QueryDiff<JsonValue>;
|
|
163
181
|
readonly subscriptionId: string;
|
|
164
182
|
readonly type: "live-query.changed";
|
|
183
|
+
} | {
|
|
184
|
+
readonly name: string;
|
|
185
|
+
readonly payload: JsonValue;
|
|
186
|
+
readonly requestId: string;
|
|
187
|
+
readonly type: "ui.request";
|
|
165
188
|
} | {
|
|
166
189
|
readonly message: string;
|
|
167
190
|
readonly subscriptionId: string;
|
|
@@ -170,11 +193,16 @@ export type RpcEvent = {
|
|
|
170
193
|
readonly event: ProtocolDomainEvent;
|
|
171
194
|
readonly subscriptionId: string;
|
|
172
195
|
readonly type: "kernel.event";
|
|
196
|
+
} | {
|
|
197
|
+
readonly state: SubscriptionState;
|
|
198
|
+
readonly subscriptionId: string;
|
|
199
|
+
readonly type: "subscription.state";
|
|
173
200
|
};
|
|
174
201
|
import type { JsonValue } from '@econ-v1/domain';
|
|
175
202
|
import type { DomainEvent } from '@econ-v1/domain';
|
|
176
203
|
import type { CoreKernelEventType } from '@econ-v1/domain';
|
|
177
|
-
import type { QueryName } from '@econ-v1/domain';
|
|
178
204
|
import type { ClientError } from '@econ-v1/domain';
|
|
205
|
+
import type { QueryName } from '@econ-v1/domain';
|
|
179
206
|
import type { QueryDiff } from '@econ-v1/domain';
|
|
207
|
+
import type { SubscriptionState } from './client.js';
|
|
180
208
|
//# sourceMappingURL=protocol.d.ts.map
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.js"],"names":[],"mappings":"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"}
|
package/dist/stage-context.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export type KernelEventType = import("@econ-v1/domain").KernelEventType;
|
|
2
2
|
export type QueryName = import("@econ-v1/domain").QueryName;
|
|
3
3
|
export type Unsubscribe = import("./client.js").Unsubscribe;
|
|
4
|
+
export type EventSubscribeOptions = import("./client.js").EventSubscribeOptions;
|
|
5
|
+
export type EventSubscription = import("./client.js").EventSubscription;
|
|
4
6
|
export type DialogCenter = import("./dialog-contract.js").DialogCenter;
|
|
5
7
|
export type ModelPickerCenter = import("./model-picker-contract.js").ModelPickerCenter;
|
|
6
8
|
export type SystemNoticeCenter = import("./system-notice-contract.js").SystemNoticeCenter;
|
|
@@ -44,17 +46,31 @@ export type StageContextShared = {
|
|
|
44
46
|
};
|
|
45
47
|
readonly events: {
|
|
46
48
|
publish<T extends KernelEventType>(type: T, payload: import("@econ-v1/domain").KernelEventPayload<T>): Promise<void>;
|
|
47
|
-
subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void):
|
|
49
|
+
subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void, options?: EventSubscribeOptions): EventSubscription;
|
|
48
50
|
};
|
|
49
51
|
invokeCapability<T>(capability: string, payload: unknown): Promise<T>;
|
|
50
52
|
liveQuery<T>(name: QueryName, params: unknown, listener: (diff: import("@econ-v1/domain").QueryDiff<T>) => void): Unsubscribe;
|
|
53
|
+
command?: <T>(name: string, payload?: unknown) => Promise<T>;
|
|
51
54
|
query<T>(name: QueryName, params: unknown): Promise<T>;
|
|
52
55
|
readonly composition?: StageComposition;
|
|
53
56
|
readonly stage: StageHost;
|
|
54
57
|
};
|
|
58
|
+
export type AssistantPanelHost = {
|
|
59
|
+
open(): void;
|
|
60
|
+
close(): void;
|
|
61
|
+
readonly isOpen: boolean;
|
|
62
|
+
onVisibilityChange(cb: (open: boolean) => void): Unsubscribe;
|
|
63
|
+
setStatus(text: string): void;
|
|
64
|
+
setBadge(count: number): void;
|
|
65
|
+
};
|
|
55
66
|
export type StageHostShared = {
|
|
56
67
|
navigate(path: string): void;
|
|
57
68
|
readonly root: Element;
|
|
69
|
+
readonly context: {
|
|
70
|
+
set(view: object): void;
|
|
71
|
+
clear(): void;
|
|
72
|
+
};
|
|
73
|
+
readonly panel?: AssistantPanelHost;
|
|
58
74
|
};
|
|
59
75
|
export type StageContextV1 = StageContextShared & {
|
|
60
76
|
readonly host: StageHostShared & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-context.d.ts","sourceRoot":"","sources":["../src/stage-context.js"],"names":[],"mappings":"8BAEc,OAAO,iBAAiB,EAAE,eAAe;wBACzC,OAAO,iBAAiB,EAAE,SAAS;0BACnC,OAAO,aAAa,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"stage-context.d.ts","sourceRoot":"","sources":["../src/stage-context.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** @typedef {import("./client.js").SubscriptionState} SubscriptionState */
|
|
2
|
+
/** @typedef {{ readonly onState: (state: SubscriptionState) => void, told: boolean }} SubscriptionStateHolder */
|
|
3
|
+
/**
|
|
4
|
+
* One subscription's state and the holders watching it (ADR-039). Every layer that
|
|
5
|
+
* carries a subscription (a carrier, the managed client, the kernel lease, the RPC
|
|
6
|
+
* group) keeps one, so they all fold states the same way.
|
|
7
|
+
*
|
|
8
|
+
* Each `live` is the next generation, and a `live` reported as "subscribed" after an
|
|
9
|
+
* earlier one reads "resubscribed": whatever restarted below (a carrier, a kernel)
|
|
10
|
+
* counts from 1 again, but a holder never sees a generation twice. A repeated state
|
|
11
|
+
* that is not `live` is not re-sent. A holder that joins when there is a state gets
|
|
12
|
+
* it on a microtask, unless a transition reached it first.
|
|
13
|
+
*/
|
|
14
|
+
export class SubscriptionStateCell {
|
|
15
|
+
get state(): import("ports/dist/network.js").AppEventSubscriptionState | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* @param {(state: SubscriptionState) => void} onState
|
|
18
|
+
* @returns {() => void}
|
|
19
|
+
*/
|
|
20
|
+
watch(onState: (state: SubscriptionState) => void): () => void;
|
|
21
|
+
/**
|
|
22
|
+
* @param {SubscriptionState["status"]} status
|
|
23
|
+
* @param {boolean} [confirmed] ignored unless `live`
|
|
24
|
+
* @param {SubscriptionState["reason"]} [reason] ignored unless `live`
|
|
25
|
+
* @returns {void}
|
|
26
|
+
*/
|
|
27
|
+
report(status: SubscriptionState["status"], confirmed?: boolean, reason?: SubscriptionState["reason"]): void;
|
|
28
|
+
#private;
|
|
29
|
+
}
|
|
30
|
+
export type SubscriptionState = import("./client.js").SubscriptionState;
|
|
31
|
+
export type SubscriptionStateHolder = {
|
|
32
|
+
readonly onState: (state: SubscriptionState) => void;
|
|
33
|
+
told: boolean;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=subscription-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription-state.d.ts","sourceRoot":"","sources":["../src/subscription-state.js"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,iHAAiH;AAEjH;;;;;;;;;;GAUG;AACH;IAMI,mFAEC;IACD;;;OAGG;IACH,eAHW,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAChC,MAAM,IAAI,CAatB;IACD;;;;;OAKG;IACH,eALW,iBAAiB,CAAC,QAAQ,CAAC,cAC3B,OAAO,WACP,iBAAiB,CAAC,QAAQ,CAAC,GACzB,IAAI,CAgBhB;;CACJ;gCA5Da,OAAO,aAAa,EAAE,iBAAiB;sCACvC;IAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@econ-v1/rpc",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.3.1",
|
|
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.
|
|
60
|
-
"@econ-v1/ports": "7.
|
|
59
|
+
"@econ-v1/domain": "7.3.1",
|
|
60
|
+
"@econ-v1/ports": "7.3.1"
|
|
61
61
|
}
|
|
62
62
|
}
|
package/src/client.js
CHANGED
|
@@ -4,6 +4,23 @@
|
|
|
4
4
|
/** @typedef {import("@econ-v1/domain").KernelEventType} KernelEventType */
|
|
5
5
|
/** @typedef {import("@econ-v1/domain").QueryName} QueryName */
|
|
6
6
|
/** @typedef {() => void} Unsubscribe */
|
|
7
|
+
/**
|
|
8
|
+
* Whether an event subscription is live on the home node (ADR-039). `confirmed` is true only
|
|
9
|
+
* when the host itself confirmed it; `generation` rises by one on every `live`, so a holder
|
|
10
|
+
* reads the state it follows once per generation.
|
|
11
|
+
* @typedef {import("@econ-v1/ports").AppEventSubscriptionState} SubscriptionState
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* `onState` hears every transition of the subscription, starting with the current state.
|
|
15
|
+
* @typedef {{ readonly onState?: (state: SubscriptionState) => void }} EventSubscribeOptions
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* What `subscribe` returns: still the unsubscribe function, plus, on a shell that carries
|
|
19
|
+
* subscription state, `ready` (resolves once this subscription is `live`, at once when it
|
|
20
|
+
* already is, and rejects on `refused`) and the current `state`. Both are optional because
|
|
21
|
+
* an older shell returns a bare function; detect with `typeof handle.ready?.then === "function"`.
|
|
22
|
+
* @typedef {Unsubscribe & { readonly ready?: Promise<SubscriptionState>, readonly state?: SubscriptionState }} EventSubscription
|
|
23
|
+
*/
|
|
7
24
|
/**
|
|
8
25
|
* What `prepareStage` hands back for a stage the kernel has committed.
|
|
9
26
|
*
|
|
@@ -31,19 +48,21 @@
|
|
|
31
48
|
/** @typedef {{
|
|
32
49
|
* command<T>(name: string, payload: unknown): Promise<T>,
|
|
33
50
|
* liveQuery<T>(name: QueryName, params: unknown, listener: (diff: import("@econ-v1/domain").QueryDiff<T>) => void, onError?: (error: LiveQueryFailure) => void): Unsubscribe,
|
|
51
|
+
* onUiRequest(handler: (name: string, payload: import("@econ-v1/domain").JsonValue) => Promise<import("@econ-v1/domain").JsonValue>): Unsubscribe,
|
|
34
52
|
* openStageSession(appName: string, manifestSha256: string, surfaceId?: string): Promise<StageRpcSession>,
|
|
35
53
|
* prepareStage(appName: string): Promise<PreparedStage>,
|
|
36
54
|
* publish<T extends KernelEventType>(type: T, payload: import("@econ-v1/domain").KernelEventPayload<T>): Promise<void>,
|
|
37
55
|
* query<T>(name: QueryName, params: unknown): Promise<T>,
|
|
38
|
-
* subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void):
|
|
56
|
+
* subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void, options?: EventSubscribeOptions): EventSubscription
|
|
39
57
|
* }} KernelRpcClient */
|
|
40
58
|
/** @typedef {{
|
|
41
59
|
* close(): void,
|
|
60
|
+
* command<T>(name: string, payload: unknown): Promise<T>,
|
|
42
61
|
* invokeCapability<T>(capability: string, payload: unknown): Promise<T>,
|
|
43
62
|
* liveQuery<T>(name: QueryName, params: unknown, listener: (diff: import("@econ-v1/domain").QueryDiff<T>) => void, onError?: (error: LiveQueryFailure) => void): Unsubscribe,
|
|
44
63
|
* publish<T extends KernelEventType>(type: T, payload: import("@econ-v1/domain").KernelEventPayload<T>): Promise<void>,
|
|
45
64
|
* query<T>(name: QueryName, params: unknown): Promise<T>,
|
|
46
|
-
* subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void):
|
|
65
|
+
* subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void, options?: EventSubscribeOptions): EventSubscription
|
|
47
66
|
* }} StageRpcSession */
|
|
48
67
|
|
|
49
68
|
export {};
|