@agentdock/sdk 0.0.22 → 0.0.24
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 +4 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +10 -9
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/logAdapter.d.ts +13 -0
- package/dist/logAdapter.d.ts.map +1 -0
- package/dist/logAdapter.js +7 -0
- package/dist/logAdapter.js.map +1 -0
- package/dist/rpc.d.ts +2 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +9 -8
- package/dist/rpc.js.map +1 -1
- package/package.json +3 -5
package/dist/client.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* with auto-reconnection, status tracking, and event handling.
|
|
6
6
|
*/
|
|
7
7
|
import { type Socket } from 'socket.io-client';
|
|
8
|
+
import type { LogAdapter } from './logAdapter.js';
|
|
8
9
|
/** Connection status for the client. */
|
|
9
10
|
export type ConnectionStatus = 'disconnected' | 'connecting' | 'connected' | 'error';
|
|
10
11
|
/** Client scope type for auth. */
|
|
@@ -43,6 +44,8 @@ export interface ClientConfig {
|
|
|
43
44
|
readonly onUpgradeRequired?: () => void;
|
|
44
45
|
/** Internal: socket factory for testing. */
|
|
45
46
|
readonly _socketFactory?: SocketFactory;
|
|
47
|
+
/** Optional logger (default: NOOP). */
|
|
48
|
+
readonly logger?: LogAdapter;
|
|
46
49
|
}
|
|
47
50
|
/** AgentDock client interface. */
|
|
48
51
|
export interface AgentdockClient {
|
|
@@ -57,7 +60,7 @@ export interface AgentdockClient {
|
|
|
57
60
|
/** Listen for server update events. Returns unsubscribe function. */
|
|
58
61
|
onUpdate(listener: UpdateListener): Unsubscribe;
|
|
59
62
|
/** Emit an event with acknowledgement (RPC-style). */
|
|
60
|
-
emitWithAck<T>(event: string, data: unknown): Promise<T>;
|
|
63
|
+
emitWithAck<T>(event: string, data: unknown, timeoutMs?: number): Promise<T>;
|
|
61
64
|
/** Subscribe to a raw socket event. Returns unsubscribe function. */
|
|
62
65
|
on(event: string, handler: (...args: unknown[]) => void): Unsubscribe;
|
|
63
66
|
/** Emit a raw socket event (fire-and-forget). */
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAKlD,wCAAwC;AACxC,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;AAErF,kCAAkC;AAClC,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAE7E,8BAA8B;AAC9B,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEhE,4BAA4B;AAC5B,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAErD,2DAA2D;AAC3D,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;AAExF,4BAA4B;AAC5B,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,gDAAgD;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,oDAAoD;IACpD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,wEAAwE;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,gFAAgF;IAChF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,4CAA4C;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IACxC,uCAAuC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;CAC9B;AAED,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,OAAO,IAAI,IAAI,CAAC;IAChB,kCAAkC;IAClC,UAAU,IAAI,IAAI,CAAC;IACnB,yCAAyC;IACzC,SAAS,IAAI,gBAAgB,CAAC;IAC9B,+DAA+D;IAC/D,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,WAAW,CAAC;IACtD,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,WAAW,CAAC;IAChD,sDAAsD;IACtD,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7E,qEAAqE;IACrE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,WAAW,CAAC;IACtE,iDAAiD;IACjD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC/C;AAYD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,CAgLlE"}
|
package/dist/client.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* with auto-reconnection, status tracking, and event handling.
|
|
6
6
|
*/
|
|
7
7
|
import { io } from 'socket.io-client';
|
|
8
|
-
import
|
|
8
|
+
import { NOOP_LOG_ADAPTER } from './logAdapter.js';
|
|
9
9
|
// ── Factory ─────────────────────────────────────────────────────────
|
|
10
10
|
/**
|
|
11
11
|
* Create an AgentDock client instance.
|
|
@@ -13,10 +13,11 @@ import createDebug from 'debug';
|
|
|
13
13
|
* @param config - Client configuration.
|
|
14
14
|
* @returns An AgentdockClient ready to be connected.
|
|
15
15
|
*/
|
|
16
|
-
const
|
|
16
|
+
const MODULE = 'sdk:client';
|
|
17
17
|
export function createClient(config) {
|
|
18
18
|
let status = 'disconnected';
|
|
19
19
|
let socket = null;
|
|
20
|
+
const log = config.logger ?? NOOP_LOG_ADAPTER;
|
|
20
21
|
const statusListeners = new Set();
|
|
21
22
|
const updateListeners = new Set();
|
|
22
23
|
const createSocket = config._socketFactory ?? io;
|
|
@@ -66,18 +67,18 @@ export function createClient(config) {
|
|
|
66
67
|
autoConnect: false,
|
|
67
68
|
});
|
|
68
69
|
socket.on('connect', () => {
|
|
69
|
-
log(
|
|
70
|
+
log.info({ endpoint: config.endpoint, module: MODULE }, 'connected');
|
|
70
71
|
setStatus('connected');
|
|
71
72
|
});
|
|
72
73
|
socket.on('disconnect', (reason) => {
|
|
73
|
-
log(
|
|
74
|
+
log.info({ reason, module: MODULE }, 'disconnected');
|
|
74
75
|
setStatus('disconnected');
|
|
75
76
|
});
|
|
76
77
|
socket.on('connect_error', (err) => {
|
|
77
78
|
const error = err instanceof Error ? err : new Error(String(err));
|
|
78
79
|
const msg = error.message.toLowerCase();
|
|
79
80
|
if (error.message === 'upgrade-required') {
|
|
80
|
-
log('upgrade-required
|
|
81
|
+
log.warn({ data: error.data, module: MODULE }, 'upgrade-required');
|
|
81
82
|
socket?.disconnect();
|
|
82
83
|
config.onUpgradeRequired?.();
|
|
83
84
|
}
|
|
@@ -87,12 +88,12 @@ export function createClient(config) {
|
|
|
87
88
|
msg.includes('403') ||
|
|
88
89
|
msg.includes('auth-invalid-token') ||
|
|
89
90
|
msg.includes('auth-missing-token')) {
|
|
90
|
-
log('auth error
|
|
91
|
+
log.error({ reason: error.message, module: MODULE }, 'auth error — stopping reconnection');
|
|
91
92
|
socket?.disconnect();
|
|
92
93
|
config.onAuthError?.();
|
|
93
94
|
}
|
|
94
95
|
else {
|
|
95
|
-
log(
|
|
96
|
+
log.warn({ reason: error.message, module: MODULE }, 'connect_error');
|
|
96
97
|
}
|
|
97
98
|
setStatus('error');
|
|
98
99
|
});
|
|
@@ -134,11 +135,11 @@ export function createClient(config) {
|
|
|
134
135
|
updateListeners.delete(listener);
|
|
135
136
|
};
|
|
136
137
|
},
|
|
137
|
-
async emitWithAck(event, data) {
|
|
138
|
+
async emitWithAck(event, data, timeoutMs) {
|
|
138
139
|
if (!socket || !socket.connected) {
|
|
139
140
|
throw new Error('Not connected');
|
|
140
141
|
}
|
|
141
|
-
return socket.timeout(30_000).emitWithAck(event, data);
|
|
142
|
+
return socket.timeout(timeoutMs ?? 30_000).emitWithAck(event, data);
|
|
142
143
|
},
|
|
143
144
|
on(event, handler) {
|
|
144
145
|
if (socket) {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,EAAE,EAAe,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,4 +2,6 @@ export { createClient } from './client.js';
|
|
|
2
2
|
export type { AgentdockClient, ClientConfig, ClientType, ConnectionStatus, StatusListener, UpdateListener, Unsubscribe, } from './client.js';
|
|
3
3
|
export { createRpcClient } from './rpc.js';
|
|
4
4
|
export type { RpcClient, RpcTransport, RpcResult } from './rpc.js';
|
|
5
|
+
export type { LogAdapter } from './logAdapter.js';
|
|
6
|
+
export { NOOP_LOG_ADAPTER } from './logAdapter.js';
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAU3C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAU3C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Dependency-injection logging interface for SDK consumers. */
|
|
2
|
+
export interface LogAdapter {
|
|
3
|
+
debug(msg: string): void;
|
|
4
|
+
debug(obj: Record<string, unknown>, msg: string): void;
|
|
5
|
+
info(msg: string): void;
|
|
6
|
+
info(obj: Record<string, unknown>, msg: string): void;
|
|
7
|
+
warn(msg: string): void;
|
|
8
|
+
warn(obj: Record<string, unknown>, msg: string): void;
|
|
9
|
+
error(msg: string): void;
|
|
10
|
+
error(obj: Record<string, unknown>, msg: string): void;
|
|
11
|
+
}
|
|
12
|
+
export declare const NOOP_LOG_ADAPTER: LogAdapter;
|
|
13
|
+
//# sourceMappingURL=logAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logAdapter.d.ts","sourceRoot":"","sources":["../src/logAdapter.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACvD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACxD;AAED,eAAO,MAAM,gBAAgB,EAAE,UAK9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logAdapter.js","sourceRoot":"","sources":["../src/logAdapter.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,gBAAgB,GAAe;IAC1C,KAAK,KAAI,CAAC;IACV,IAAI,KAAI,CAAC;IACT,IAAI,KAAI,CAAC;IACT,KAAK,KAAI,CAAC;CACX,CAAC"}
|
package/dist/rpc.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* When disconnected, calls are queued and automatically flushed
|
|
5
5
|
* when the transport reconnects.
|
|
6
6
|
*/
|
|
7
|
+
import type { LogAdapter } from './logAdapter.js';
|
|
7
8
|
/** RPC call result. */
|
|
8
9
|
export interface RpcResult<T = unknown> {
|
|
9
10
|
readonly ok: boolean;
|
|
@@ -32,5 +33,5 @@ export interface RpcClient {
|
|
|
32
33
|
* @param transport - Transport layer for sending RPC calls.
|
|
33
34
|
* @returns An RpcClient instance.
|
|
34
35
|
*/
|
|
35
|
-
export declare function createRpcClient(transport: RpcTransport): RpcClient;
|
|
36
|
+
export declare function createRpcClient(transport: RpcTransport, logger?: LogAdapter): RpcClient;
|
|
36
37
|
//# sourceMappingURL=rpc.d.ts.map
|
package/dist/rpc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQlD,uBAAuB;AACvB,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO;IACpC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzD,oDAAoD;IACpD,WAAW,IAAI,OAAO,CAAC;CACxB;AAUD,4BAA4B;AAC5B,MAAM,WAAW,SAAS;IACxB,kDAAkD;IAClD,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,gDAAgD;IAChD,YAAY,IAAI,MAAM,CAAC;IACvB,oDAAoD;IACpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAkEvF"}
|
package/dist/rpc.js
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* When disconnected, calls are queued and automatically flushed
|
|
5
5
|
* when the transport reconnects.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
8
|
-
const
|
|
7
|
+
import { NOOP_LOG_ADAPTER } from './logAdapter.js';
|
|
8
|
+
const MODULE = 'sdk:rpc';
|
|
9
9
|
/** Max queued offline calls before rejecting new ones. */
|
|
10
10
|
const MAX_QUEUE_SIZE = 500;
|
|
11
11
|
// ── Factory ─────────────────────────────────────────────────────────
|
|
@@ -15,7 +15,8 @@ const MAX_QUEUE_SIZE = 500;
|
|
|
15
15
|
* @param transport - Transport layer for sending RPC calls.
|
|
16
16
|
* @returns An RpcClient instance.
|
|
17
17
|
*/
|
|
18
|
-
export function createRpcClient(transport) {
|
|
18
|
+
export function createRpcClient(transport, logger) {
|
|
19
|
+
const log = logger ?? NOOP_LOG_ADAPTER;
|
|
19
20
|
const queue = [];
|
|
20
21
|
let isFlushing = false;
|
|
21
22
|
async function executeCall(method, params) {
|
|
@@ -27,14 +28,14 @@ export function createRpcClient(transport) {
|
|
|
27
28
|
return {
|
|
28
29
|
call(method, params) {
|
|
29
30
|
if (transport.isConnected()) {
|
|
30
|
-
log('call
|
|
31
|
+
log.debug({ method, module: MODULE }, 'rpc call');
|
|
31
32
|
return executeCall(method, params);
|
|
32
33
|
}
|
|
33
34
|
if (queue.length >= MAX_QUEUE_SIZE) {
|
|
34
|
-
log(
|
|
35
|
+
log.warn({ queueSize: queue.length, method, module: MODULE }, 'rpc queue full, rejecting');
|
|
35
36
|
return Promise.reject(new Error(`RPC offline queue full (max ${MAX_QUEUE_SIZE})`));
|
|
36
37
|
}
|
|
37
|
-
log(
|
|
38
|
+
log.debug({ method, queueSize: queue.length + 1, module: MODULE }, 'rpc call queued (offline)');
|
|
38
39
|
return new Promise((resolve, reject) => {
|
|
39
40
|
queue.push({
|
|
40
41
|
method,
|
|
@@ -53,7 +54,7 @@ export function createRpcClient(transport) {
|
|
|
53
54
|
if (isFlushing)
|
|
54
55
|
return;
|
|
55
56
|
isFlushing = true;
|
|
56
|
-
log('flushing
|
|
57
|
+
log.debug({ count: queue.length, module: MODULE }, 'flushing queued calls');
|
|
57
58
|
try {
|
|
58
59
|
while (queue.length > 0) {
|
|
59
60
|
const item = queue.shift();
|
|
@@ -64,7 +65,7 @@ export function createRpcClient(transport) {
|
|
|
64
65
|
item.resolve(result);
|
|
65
66
|
}
|
|
66
67
|
catch (err) {
|
|
67
|
-
log(
|
|
68
|
+
log.error({ method: item.method, err, module: MODULE }, 'flush failed');
|
|
68
69
|
item.reject(err instanceof Error ? err : new Error(String(err)));
|
|
69
70
|
}
|
|
70
71
|
}
|
package/dist/rpc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentdock/sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.24",
|
|
4
4
|
"description": "Client SDK for AgentDock — Socket.IO, RPC, offline queue",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "kevin8536945",
|
|
@@ -22,13 +22,11 @@
|
|
|
22
22
|
"registry": "https://registry.npmjs.org"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"debug": "^4.4.3",
|
|
26
25
|
"socket.io-client": "^4.8.3",
|
|
27
|
-
"@agentdock/crypto": "0.0.
|
|
28
|
-
"@agentdock/wire": "0.0.
|
|
26
|
+
"@agentdock/crypto": "0.0.24",
|
|
27
|
+
"@agentdock/wire": "0.0.24"
|
|
29
28
|
},
|
|
30
29
|
"devDependencies": {
|
|
31
|
-
"@types/debug": "^4.1.12",
|
|
32
30
|
"@vitest/coverage-v8": "^3.0.0",
|
|
33
31
|
"typescript": "^5.7.0",
|
|
34
32
|
"vitest": "^3.0.0"
|