@agentunion/fastaun 0.4.7 → 0.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/_packed_docs/CHANGELOG.md +41 -0
  3. package/_packed_docs/INDEX.md +61 -31
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +18 -13
  5. package/_packed_docs/design/AUNClient/346/213/206/345/210/206/351/207/215/346/236/204/346/211/247/350/241/214/346/226/271/346/241/210.md +859 -0
  6. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +5 -4
  7. package/_packed_docs/sdk/INDEX.md +15 -9
  8. package/_packed_docs/sdk/README.md +3 -2
  9. package/dist/agent-md.d.ts +1 -1
  10. package/dist/agent-md.js +12 -5
  11. package/dist/agent-md.js.map +1 -1
  12. package/dist/aid-store.d.ts +0 -1
  13. package/dist/aid-store.js +26 -13
  14. package/dist/aid-store.js.map +1 -1
  15. package/dist/aid.d.ts +1 -0
  16. package/dist/aid.js +8 -3
  17. package/dist/aid.js.map +1 -1
  18. package/dist/cert-utils.d.ts +5 -1
  19. package/dist/cert-utils.js +47 -9
  20. package/dist/cert-utils.js.map +1 -1
  21. package/dist/client/delivery.d.ts +50 -0
  22. package/dist/client/delivery.js +1147 -0
  23. package/dist/client/delivery.js.map +1 -0
  24. package/dist/client/group-state.d.ts +31 -0
  25. package/dist/client/group-state.js +845 -0
  26. package/dist/client/group-state.js.map +1 -0
  27. package/dist/client/identity.d.ts +7 -0
  28. package/dist/client/identity.js +29 -0
  29. package/dist/client/identity.js.map +1 -0
  30. package/dist/client/lifecycle.d.ts +11 -0
  31. package/dist/client/lifecycle.js +292 -0
  32. package/dist/client/lifecycle.js.map +1 -0
  33. package/dist/client/peers.d.ts +10 -0
  34. package/dist/client/peers.js +42 -0
  35. package/dist/client/peers.js.map +1 -0
  36. package/dist/client/rpc-pipeline.d.ts +37 -0
  37. package/dist/client/rpc-pipeline.js +614 -0
  38. package/dist/client/rpc-pipeline.js.map +1 -0
  39. package/dist/client/runtime.d.ts +89 -0
  40. package/dist/client/runtime.js +241 -0
  41. package/dist/client/runtime.js.map +1 -0
  42. package/dist/client/v2-e2ee.d.ts +109 -0
  43. package/dist/client/v2-e2ee.js +1633 -0
  44. package/dist/client/v2-e2ee.js.map +1 -0
  45. package/dist/client.d.ts +22 -77
  46. package/dist/client.js +313 -4114
  47. package/dist/client.js.map +1 -1
  48. package/dist/config.js +9 -8
  49. package/dist/config.js.map +1 -1
  50. package/dist/discovery.js +56 -6
  51. package/dist/discovery.js.map +1 -1
  52. package/dist/tools/cross-sdk-agent.js +2 -2
  53. package/dist/tools/cross-sdk-agent.js.map +1 -1
  54. package/dist/version.d.ts +1 -1
  55. package/dist/version.js +1 -1
  56. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-state.js","sourceRoot":"","sources":["../../src/client/group-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { AID } from '../aid.js';
2
+ import { ClientRuntime } from './runtime.js';
3
+ export declare class IdentityRuntimeManager {
4
+ private readonly runtime;
5
+ constructor(runtime: ClientRuntime);
6
+ loadIdentity(aid: AID): void;
7
+ }
@@ -0,0 +1,29 @@
1
+ import { StateError } from '../errors.js';
2
+ import { ConnectionState } from '../types.js';
3
+ export class IdentityRuntimeManager {
4
+ runtime;
5
+ constructor(runtime) {
6
+ this.runtime = runtime;
7
+ }
8
+ loadIdentity(aid) {
9
+ const client = this.runtime.client;
10
+ if (!aid?.isPrivateKeyValid()) {
11
+ throw new StateError('loadIdentity requires an AID with a valid private key');
12
+ }
13
+ const publicState = client.state;
14
+ if (publicState !== ConnectionState.NO_IDENTITY && publicState !== ConnectionState.CLOSED) {
15
+ throw new StateError(`loadIdentity not allowed in state ${publicState}`);
16
+ }
17
+ client._applyAidRuntimeContext(aid);
18
+ this.runtime.identity.setLoadedIdentity(aid, {
19
+ aid: aid.aid,
20
+ private_key_pem: aid.privateKeyPem,
21
+ public_key_der_b64: aid.publicKey,
22
+ cert: aid.certPem,
23
+ });
24
+ this.runtime.lifecycle.setState('standby');
25
+ this.runtime.lifecycle.setClosing(false);
26
+ this.runtime.lifecycle.clearRetryState();
27
+ }
28
+ }
29
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/client/identity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,OAAO,sBAAsB;IACJ;IAA7B,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEvD,YAAY,CAAC,GAAQ;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,UAAU,CAAC,uDAAuD,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAwB,CAAC;QACpD,IAAI,WAAW,KAAK,eAAe,CAAC,WAAW,IAAI,WAAW,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;YAC1F,MAAM,IAAI,UAAU,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE;YAC3C,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,eAAe,EAAE,GAAG,CAAC,aAAa;YAClC,kBAAkB,EAAE,GAAG,CAAC,SAAS;YACjC,IAAI,EAAE,GAAG,CAAC,OAAO;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { type RpcParams } from '../types.js';
2
+ import type { ConnectionOptions } from '../client.js';
3
+ import { ClientRuntime } from './runtime.js';
4
+ export declare class LifecycleController {
5
+ private readonly runtime;
6
+ constructor(runtime: ClientRuntime);
7
+ authenticate(options?: RpcParams): Promise<Record<string, unknown>>;
8
+ connect(opts?: ConnectionOptions): Promise<void>;
9
+ close(): Promise<void>;
10
+ disconnect(): Promise<void>;
11
+ }
@@ -0,0 +1,292 @@
1
+ import { StateError, ValidationError } from '../errors.js';
2
+ import { ConnectionState } from '../types.js';
3
+ const PUBLIC_CONNECTION_OPTION_KEYS = new Set([
4
+ 'auto_reconnect',
5
+ 'connect_timeout',
6
+ 'retry',
7
+ 'retry_initial_delay',
8
+ 'retry_max_delay',
9
+ 'retry_max_attempts',
10
+ 'heartbeat_interval',
11
+ 'call_timeout',
12
+ 'connection_kind',
13
+ 'short_ttl_ms',
14
+ 'delivery_mode',
15
+ 'extra_info',
16
+ 'background_sync',
17
+ ]);
18
+ function formatCaughtError(error) {
19
+ return error instanceof Error ? error : String(error);
20
+ }
21
+ function isRecord(value) {
22
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
23
+ }
24
+ function gatewayFromAuthResult(result, fallback) {
25
+ if (!isRecord(result))
26
+ return fallback;
27
+ return String(result.gateway ?? result.gateway_url ?? fallback).trim();
28
+ }
29
+ function accessTokenFromAuthResult(result) {
30
+ if (!isRecord(result))
31
+ return '';
32
+ return String(result.access_token ?? result.token ?? result.kite_token ?? '').trim();
33
+ }
34
+ function identityFromAuthResult(client, result, target) {
35
+ const base = isRecord(client._identity) ? { ...client._identity } : {};
36
+ const aid = String(base.aid ?? target ?? '').trim();
37
+ if (!aid)
38
+ return null;
39
+ const identity = { ...base, aid };
40
+ if (isRecord(result)) {
41
+ const accessToken = accessTokenFromAuthResult(result);
42
+ const refreshToken = String(result.refresh_token ?? '').trim();
43
+ if (accessToken)
44
+ identity.access_token = accessToken;
45
+ if (typeof result.token === 'string' && result.token.trim())
46
+ identity.token = result.token.trim();
47
+ if (typeof result.kite_token === 'string' && result.kite_token.trim())
48
+ identity.kite_token = result.kite_token.trim();
49
+ if (refreshToken)
50
+ identity.refresh_token = refreshToken;
51
+ if (typeof result.access_token_expires_at === 'number') {
52
+ identity.access_token_expires_at = result.access_token_expires_at;
53
+ }
54
+ else if (typeof result.expires_at === 'number') {
55
+ identity.access_token_expires_at = result.expires_at;
56
+ }
57
+ }
58
+ return identity;
59
+ }
60
+ function cachedAccessToken(client) {
61
+ if (isRecord(client._identity)) {
62
+ const token = String(client._identity.access_token ?? '').trim();
63
+ if (token)
64
+ return token;
65
+ }
66
+ if (isRecord(client._sessionParams)) {
67
+ return String(client._sessionParams.access_token ?? '').trim();
68
+ }
69
+ return '';
70
+ }
71
+ export class LifecycleController {
72
+ runtime;
73
+ constructor(runtime) {
74
+ this.runtime = runtime;
75
+ }
76
+ async authenticate(options = {}) {
77
+ const client = this.runtime.client;
78
+ const tStart = Date.now();
79
+ const target = client._currentAid?.aid ?? client._aid ?? '';
80
+ if (!target || !client._currentAid?.isPrivateKeyValid()) {
81
+ throw new StateError('authenticate requires a loaded AID with a valid private key');
82
+ }
83
+ const publicState = client.state;
84
+ if (publicState !== ConnectionState.STANDBY) {
85
+ throw new StateError(`authenticate not allowed in state ${publicState}`);
86
+ }
87
+ if ('gateway' in options || 'gateways' in options) {
88
+ throw new ValidationError('gateway must be resolved by discovery and cannot be supplied externally');
89
+ }
90
+ if ('aid' in options || 'access_token' in options || 'token' in options || 'kite_token' in options) {
91
+ throw new ValidationError('authenticate options must not include aid or token fields; load an AID object first');
92
+ }
93
+ this.runtime.lifecycle.setState('connecting');
94
+ try {
95
+ const gateway = String(client._gatewayUrl ?? await client._resolveGatewayForAid(target)).trim();
96
+ const result = await client._auth.authenticate(gateway, { aid: target });
97
+ this.runtime.lifecycle.setGatewayUrl(gatewayFromAuthResult(result, gateway));
98
+ let loadedIdentity = null;
99
+ try {
100
+ loadedIdentity = client._auth.loadIdentityOrNone(target);
101
+ }
102
+ catch (exc) {
103
+ client._clientLog.debug(`authenticate identity reload skipped: ${exc instanceof Error ? exc.message : String(exc)}`);
104
+ }
105
+ this.runtime.identity.setIdentity(loadedIdentity ?? identityFromAuthResult(client, result, target));
106
+ this.runtime.lifecycle.setState('authenticated');
107
+ this.runtime.lifecycle.setError(null, null);
108
+ client._clientLog.debug(`authenticate exit: elapsed=${Date.now() - tStart}ms aid=${target}`);
109
+ return result;
110
+ }
111
+ catch (err) {
112
+ this.runtime.lifecycle.setState('standby');
113
+ this.runtime.lifecycle.setError(err instanceof Error ? err : new Error(String(err)), 'AUTHENTICATE_FAILED');
114
+ client._clientLog.debug(`authenticate exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
115
+ throw err;
116
+ }
117
+ }
118
+ async connect(opts) {
119
+ const client = this.runtime.client;
120
+ const tStart = Date.now();
121
+ if (opts !== undefined && opts !== null && typeof opts === 'object') {
122
+ const raw = opts;
123
+ const invalid = Object.keys(raw).filter((key) => !PUBLIC_CONNECTION_OPTION_KEYS.has(key)).sort();
124
+ if (invalid.length > 0) {
125
+ throw new ValidationError(`connect options contain unsupported field(s): ${invalid.join(', ')}`);
126
+ }
127
+ }
128
+ const target = client._currentAid?.aid ?? client._aid ?? '';
129
+ if (!target || !client._currentAid?.isPrivateKeyValid()) {
130
+ throw new StateError('connect requires a loaded AID with a valid private key');
131
+ }
132
+ const options = {};
133
+ if (opts?.auto_reconnect !== undefined)
134
+ options.auto_reconnect = opts.auto_reconnect;
135
+ if (opts?.heartbeat_interval !== undefined)
136
+ options.heartbeat_interval = opts.heartbeat_interval;
137
+ if (opts?.connect_timeout !== undefined || opts?.call_timeout !== undefined) {
138
+ options.timeouts = {
139
+ ...(opts.connect_timeout !== undefined ? { connect: opts.connect_timeout } : {}),
140
+ ...(opts.call_timeout !== undefined ? { call: opts.call_timeout } : {}),
141
+ };
142
+ }
143
+ if (opts?.retry !== undefined)
144
+ options.retry = opts.retry;
145
+ if (opts?.retry_initial_delay !== undefined || opts?.retry_max_delay !== undefined || opts?.retry_max_attempts !== undefined) {
146
+ const baseRetry = isRecord(options.retry)
147
+ ? { ...options.retry }
148
+ : { initial_delay: 1, max_delay: 64, max_attempts: 0 };
149
+ options.retry = {
150
+ ...baseRetry,
151
+ ...(opts.retry_initial_delay !== undefined ? { initial_delay: opts.retry_initial_delay } : {}),
152
+ ...(opts.retry_max_delay !== undefined ? { max_delay: opts.retry_max_delay } : {}),
153
+ ...(opts.retry_max_attempts !== undefined ? { max_attempts: opts.retry_max_attempts } : {}),
154
+ };
155
+ }
156
+ if (opts?.connection_kind !== undefined)
157
+ options.connection_kind = opts.connection_kind;
158
+ if (opts?.short_ttl_ms !== undefined)
159
+ options.short_ttl_ms = opts.short_ttl_ms;
160
+ if (opts?.delivery_mode !== undefined)
161
+ options.delivery_mode = opts.delivery_mode;
162
+ if (opts?.extra_info !== undefined)
163
+ options.extra_info = opts.extra_info;
164
+ if (opts?.background_sync !== undefined)
165
+ options.background_sync = opts.background_sync;
166
+ const publicState = client.state;
167
+ const allowed = new Set([
168
+ ConnectionState.STANDBY,
169
+ ConnectionState.AUTHENTICATED,
170
+ ConnectionState.RETRY_BACKOFF,
171
+ ConnectionState.CONNECTION_FAILED,
172
+ ]);
173
+ if (!allowed.has(publicState)) {
174
+ throw new StateError(`connect not allowed in state ${publicState}`);
175
+ }
176
+ if (publicState === ConnectionState.RETRY_BACKOFF) {
177
+ client._stopReconnect();
178
+ }
179
+ if (publicState === ConnectionState.CONNECTION_FAILED) {
180
+ this.runtime.lifecycle.setRetryAttempt(0);
181
+ this.runtime.lifecycle.setError(null, null);
182
+ }
183
+ this.runtime.lifecycle.setNextRetryAt(null);
184
+ let authResult = null;
185
+ if (!client._gatewayUrl) {
186
+ authResult = await client.authenticate();
187
+ }
188
+ this.runtime.lifecycle.setState('connecting');
189
+ const gateway = String(client._gatewayUrl ?? '').trim();
190
+ const accessToken = accessTokenFromAuthResult(authResult) || cachedAccessToken(client);
191
+ const params = { ...options, gateway, ...(accessToken ? { access_token: accessToken } : {}) };
192
+ const normalized = client._normalizeConnectParams(params);
193
+ client._captureCapabilitiesFromConnect(normalized);
194
+ this.runtime.lifecycle.setSession(normalized, client._buildSessionOptions(normalized));
195
+ const callTimeoutSec = client._sessionOptions.timeouts.call;
196
+ client._transport.setTimeout(callTimeoutSec != null ? callTimeoutSec * 1000 : 35_000);
197
+ this.runtime.lifecycle.setClosing(false);
198
+ client._clientLog.debug(`connect enter: gateway=${String(normalized.gateway ?? '')}, device_id=${client._deviceId}`);
199
+ const gateways = client._resolveGateways(normalized);
200
+ let lastErr = null;
201
+ for (const gw of gateways) {
202
+ try {
203
+ const gwParams = { ...normalized, gateway: gw };
204
+ await client._connectOnce(gwParams, true);
205
+ this.runtime.lifecycle.setError(null, null);
206
+ client._clientLog.debug(`connect exit: elapsed=${Date.now() - tStart}ms aid=${client._aid ?? ''}, state=${client._state}`);
207
+ return;
208
+ }
209
+ catch (err) {
210
+ lastErr = err;
211
+ if (gateways.length > 1) {
212
+ client._clientLog.warn(`connect: gateway ${gw} failed, trying next: ${formatCaughtError(err)}`);
213
+ }
214
+ if (client._state !== 'closed')
215
+ this.runtime.lifecycle.setState('connecting');
216
+ }
217
+ }
218
+ if (client._state === 'connecting' || client._state === 'authenticating') {
219
+ this.runtime.lifecycle.setState(client._currentAid || client._aid ? 'standby' : 'no_identity');
220
+ }
221
+ this.runtime.lifecycle.setError(lastErr instanceof Error ? lastErr : new Error(String(lastErr)), 'CONNECT_FAILED');
222
+ client._clientLog.error(`connect failed: ${formatCaughtError(lastErr)}`, lastErr instanceof Error ? lastErr : undefined);
223
+ client._clientLog.debug(`connect exit (error): elapsed=${Date.now() - tStart}ms err=${lastErr instanceof Error ? lastErr.message : String(lastErr)}`);
224
+ throw lastErr;
225
+ }
226
+ async close() {
227
+ const client = this.runtime.client;
228
+ const tStart = Date.now();
229
+ client._clientLog.debug(`close enter: state=${client._state}, aid=${client._aid ?? ''}`);
230
+ try {
231
+ this.runtime.lifecycle.setClosing(true);
232
+ client._saveSeqTrackerState();
233
+ client._stopBackgroundTasks();
234
+ client._stopReconnect();
235
+ if (client.state === ConnectionState.NO_IDENTITY || client.state === ConnectionState.CLOSED) {
236
+ const closableStore = client._tokenStore;
237
+ closableStore.close?.();
238
+ this.runtime.lifecycle.setState('closed');
239
+ client._logger.close();
240
+ client._resetSeqTrackingState();
241
+ client._clientLog.debug(`close exit: elapsed=${Date.now() - tStart}ms (was no_identity/closed)`);
242
+ return;
243
+ }
244
+ await client._transport.close();
245
+ const closableStore = client._tokenStore;
246
+ closableStore.close?.();
247
+ this.runtime.lifecycle.setState('closed');
248
+ client._logger.close();
249
+ await client._dispatcher.publish('state_change', { state: client._publicState(client._state) });
250
+ client._resetSeqTrackingState();
251
+ client._clientLog.debug(`close exit: elapsed=${Date.now() - tStart}ms`);
252
+ }
253
+ catch (err) {
254
+ client._clientLog.debug(`close exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
255
+ throw err;
256
+ }
257
+ }
258
+ async disconnect() {
259
+ const client = this.runtime.client;
260
+ const tStart = Date.now();
261
+ client._clientLog.debug(`disconnect enter: state=${client._state}, aid=${client._aid ?? ''}, closing=${client._closing}`);
262
+ try {
263
+ if (client._closing) {
264
+ client._clientLog.debug(`disconnect exit: elapsed=${Date.now() - tStart}ms (closing)`);
265
+ return;
266
+ }
267
+ if (![
268
+ ConnectionState.AUTHENTICATED,
269
+ ConnectionState.CONNECTING,
270
+ ConnectionState.READY,
271
+ ConnectionState.RETRY_BACKOFF,
272
+ ConnectionState.RECONNECTING,
273
+ ConnectionState.CONNECTION_FAILED,
274
+ ].includes(client.state)) {
275
+ client._clientLog.debug(`disconnect exit: elapsed=${Date.now() - tStart}ms (state=${client._state})`);
276
+ return;
277
+ }
278
+ client._saveSeqTrackerState();
279
+ client._stopBackgroundTasks();
280
+ client._stopReconnect();
281
+ await client._transport.close();
282
+ this.runtime.lifecycle.resetForDisconnect('standby');
283
+ await client._dispatcher.publish('state_change', { state: client._publicState(client._state) });
284
+ client._clientLog.debug(`disconnect exit: elapsed=${Date.now() - tStart}ms`);
285
+ }
286
+ catch (err) {
287
+ client._clientLog.debug(`disconnect exit (error): elapsed=${Date.now() - tStart}ms err=${err instanceof Error ? err.message : String(err)}`);
288
+ throw err;
289
+ }
290
+ }
291
+ }
292
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/client/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { AID } from '../aid.js';
2
+ import { ClientRuntime } from './runtime.js';
3
+ export declare class PeerDirectory {
4
+ private readonly runtime;
5
+ constructor(runtime: ClientRuntime);
6
+ cachePeer(aid: AID): AID;
7
+ getPeer(aid: string): AID | null;
8
+ lookupPeer(aid: string): Promise<AID>;
9
+ peers(): AID[];
10
+ }
@@ -0,0 +1,42 @@
1
+ import { NotFoundError, StateError, ValidationError } from '../errors.js';
2
+ export class PeerDirectory {
3
+ runtime;
4
+ constructor(runtime) {
5
+ this.runtime = runtime;
6
+ }
7
+ cachePeer(aid) {
8
+ const client = this.runtime.client;
9
+ if (!client.hasIdentity)
10
+ throw new StateError('cachePeer requires a loaded identity');
11
+ if (!aid.isCertValid())
12
+ throw new ValidationError('cachePeer requires an AID with a valid certificate');
13
+ client._peerCache.set(aid.aid, aid);
14
+ return aid;
15
+ }
16
+ getPeer(aid) {
17
+ const client = this.runtime.client;
18
+ if (!client.hasIdentity)
19
+ throw new StateError('getPeer requires a loaded identity');
20
+ return client._peerCache.get(String(aid ?? '').trim()) ?? null;
21
+ }
22
+ async lookupPeer(aid) {
23
+ const client = this.runtime.client;
24
+ if (!client.hasIdentity)
25
+ throw new StateError('lookupPeer requires a loaded identity');
26
+ const target = String(aid ?? '').trim();
27
+ if (!target)
28
+ throw new ValidationError('lookupPeer requires non-empty aid');
29
+ const cached = client._peerCache.get(target);
30
+ if (cached)
31
+ return cached;
32
+ throw new NotFoundError(`peer not found in cache: ${target}`);
33
+ }
34
+ peers() {
35
+ const client = this.runtime.client;
36
+ if (!client.hasIdentity)
37
+ throw new StateError('peers requires a loaded identity');
38
+ const entries = Array.from(client._peerCache.entries());
39
+ return entries.sort(([a], [b]) => a.localeCompare(b)).map(([, value]) => value);
40
+ }
41
+ }
42
+ //# sourceMappingURL=peers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../src/client/peers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG1E,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEvD,SAAS,CAAC,GAAQ;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;QACtF,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,eAAe,CAAC,oDAAoD,CAAC,CAAC;QACxG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,MAAM,IAAI,UAAU,CAAC,uCAAuC,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,eAAe,CAAC,mCAAmC,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,IAAI,aAAa,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAE,MAAM,CAAC,UAA+B,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;CACF"}
@@ -0,0 +1,37 @@
1
+ import { type JsonValue, type RpcParams, type RpcResult } from '../types.js';
2
+ import type { ClientRuntime } from './runtime.js';
3
+ export interface RpcPreflightResult {
4
+ params: RpcParams;
5
+ rpcBackground: boolean;
6
+ }
7
+ export declare class RpcPipeline {
8
+ private readonly runtime;
9
+ constructor(runtime: ClientRuntime);
10
+ call(method: string, params?: RpcParams): Promise<RpcResult>;
11
+ preflight(method: string, params?: RpcParams): RpcPreflightResult;
12
+ mergeInstanceProtectedHeaders(method: string, params: RpcParams): void;
13
+ normalizeOutboundMessagePayload(params: RpcParams, method?: string): void;
14
+ validateOutboundCall(method: string, params: RpcParams): void;
15
+ injectMessageCursorContext(method: string, params: RpcParams): void;
16
+ applyClientSignature(method: string, params: RpcParams): void;
17
+ shouldSkipClientSignature(method: string, params: RpcParams): boolean;
18
+ signClientOperation(method: string, params: RpcParams): void;
19
+ pullGateKeyForCall(method: string, params: RpcParams): string;
20
+ isPullResponseProcessing(key: string): boolean;
21
+ tryAcquirePullGate(key: string): number | null;
22
+ releasePullGate(key: string, token: number | null): void;
23
+ runPullSerialized<T>(key: string, operation: () => Promise<T> | T): Promise<T>;
24
+ rawCall(method: string, params?: RpcParams, opts?: {
25
+ timeout?: number;
26
+ trace?: string;
27
+ signed?: boolean;
28
+ background?: boolean;
29
+ }): Promise<unknown>;
30
+ postprocessResult(method: string, params: RpcParams, result: unknown): Promise<unknown>;
31
+ private postprocessMessagePull;
32
+ private postprocessGroupPull;
33
+ private captureGroupCursorParams;
34
+ private normalizeGroupCallContext;
35
+ private groupCursorParams;
36
+ validateMessageRecipient(toAid: JsonValue | object | undefined): void;
37
+ }