@procwire/transport 0.1.3 → 0.3.0

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 (142) hide show
  1. package/README.md +130 -4
  2. package/dist/channel/builder.d.ts +17 -0
  3. package/dist/channel/builder.d.ts.map +1 -1
  4. package/dist/channel/builder.js +34 -0
  5. package/dist/channel/builder.js.map +1 -1
  6. package/dist/channel/index.d.ts +1 -1
  7. package/dist/channel/index.d.ts.map +1 -1
  8. package/dist/channel/index.js +1 -1
  9. package/dist/channel/index.js.map +1 -1
  10. package/dist/channel/quickstart.d.ts.map +1 -1
  11. package/dist/channel/quickstart.js +16 -10
  12. package/dist/channel/quickstart.js.map +1 -1
  13. package/dist/channel/request-channel.d.ts +6 -1
  14. package/dist/channel/request-channel.d.ts.map +1 -1
  15. package/dist/channel/request-channel.js +138 -34
  16. package/dist/channel/request-channel.js.map +1 -1
  17. package/dist/channel/types.d.ts +129 -7
  18. package/dist/channel/types.d.ts.map +1 -1
  19. package/dist/framing/length-prefixed.d.ts +5 -1
  20. package/dist/framing/length-prefixed.d.ts.map +1 -1
  21. package/dist/framing/length-prefixed.js +94 -15
  22. package/dist/framing/length-prefixed.js.map +1 -1
  23. package/dist/framing/line-delimited.d.ts +4 -1
  24. package/dist/framing/line-delimited.d.ts.map +1 -1
  25. package/dist/framing/line-delimited.js +89 -23
  26. package/dist/framing/line-delimited.js.map +1 -1
  27. package/dist/heartbeat/constants.d.ts +12 -0
  28. package/dist/heartbeat/constants.d.ts.map +1 -0
  29. package/dist/heartbeat/constants.js +17 -0
  30. package/dist/heartbeat/constants.js.map +1 -0
  31. package/dist/heartbeat/index.d.ts +10 -0
  32. package/dist/heartbeat/index.d.ts.map +1 -0
  33. package/dist/heartbeat/index.js +10 -0
  34. package/dist/heartbeat/index.js.map +1 -0
  35. package/dist/heartbeat/manager.d.ts +107 -0
  36. package/dist/heartbeat/manager.d.ts.map +1 -0
  37. package/dist/heartbeat/manager.js +252 -0
  38. package/dist/heartbeat/manager.js.map +1 -0
  39. package/dist/heartbeat/types.d.ts +99 -0
  40. package/dist/heartbeat/types.d.ts.map +1 -0
  41. package/dist/heartbeat/types.js +8 -0
  42. package/dist/heartbeat/types.js.map +1 -0
  43. package/dist/index.d.ts +4 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +5 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/process/handle.d.ts.map +1 -1
  48. package/dist/process/handle.js.map +1 -1
  49. package/dist/process/manager.d.ts +16 -0
  50. package/dist/process/manager.d.ts.map +1 -1
  51. package/dist/process/manager.js +133 -82
  52. package/dist/process/manager.js.map +1 -1
  53. package/dist/process/types.d.ts +110 -1
  54. package/dist/process/types.d.ts.map +1 -1
  55. package/dist/protocol/index.d.ts +2 -0
  56. package/dist/protocol/index.d.ts.map +1 -1
  57. package/dist/protocol/index.js +3 -0
  58. package/dist/protocol/index.js.map +1 -1
  59. package/dist/protocol/jsonrpc.d.ts.map +1 -1
  60. package/dist/protocol/jsonrpc.js.map +1 -1
  61. package/dist/protocol/reserved-methods.d.ts +90 -0
  62. package/dist/protocol/reserved-methods.d.ts.map +1 -0
  63. package/dist/protocol/reserved-methods.js +99 -0
  64. package/dist/protocol/reserved-methods.js.map +1 -0
  65. package/dist/protocol/reserved-types.d.ts +231 -0
  66. package/dist/protocol/reserved-types.d.ts.map +1 -0
  67. package/dist/protocol/reserved-types.js +10 -0
  68. package/dist/protocol/reserved-types.js.map +1 -0
  69. package/dist/protocol/simple.d.ts.map +1 -1
  70. package/dist/protocol/simple.js.map +1 -1
  71. package/dist/reconnect/constants.d.ts +12 -0
  72. package/dist/reconnect/constants.d.ts.map +1 -0
  73. package/dist/reconnect/constants.js +21 -0
  74. package/dist/reconnect/constants.js.map +1 -0
  75. package/dist/reconnect/index.d.ts +10 -0
  76. package/dist/reconnect/index.d.ts.map +1 -0
  77. package/dist/reconnect/index.js +10 -0
  78. package/dist/reconnect/index.js.map +1 -0
  79. package/dist/reconnect/manager.d.ts +110 -0
  80. package/dist/reconnect/manager.d.ts.map +1 -0
  81. package/dist/reconnect/manager.js +264 -0
  82. package/dist/reconnect/manager.js.map +1 -0
  83. package/dist/reconnect/types.d.ts +137 -0
  84. package/dist/reconnect/types.d.ts.map +1 -0
  85. package/dist/reconnect/types.js +8 -0
  86. package/dist/reconnect/types.js.map +1 -0
  87. package/dist/resilience/handle.d.ts +112 -0
  88. package/dist/resilience/handle.d.ts.map +1 -0
  89. package/dist/resilience/handle.js +371 -0
  90. package/dist/resilience/handle.js.map +1 -0
  91. package/dist/resilience/index.d.ts +9 -0
  92. package/dist/resilience/index.d.ts.map +1 -0
  93. package/dist/resilience/index.js +9 -0
  94. package/dist/resilience/index.js.map +1 -0
  95. package/dist/resilience/types.d.ts +191 -0
  96. package/dist/resilience/types.d.ts.map +1 -0
  97. package/dist/resilience/types.js +8 -0
  98. package/dist/resilience/types.js.map +1 -0
  99. package/dist/serialization/json.d.ts.map +1 -1
  100. package/dist/serialization/json.js.map +1 -1
  101. package/dist/shutdown/constants.d.ts +12 -0
  102. package/dist/shutdown/constants.d.ts.map +1 -0
  103. package/dist/shutdown/constants.js +15 -0
  104. package/dist/shutdown/constants.js.map +1 -0
  105. package/dist/shutdown/index.d.ts +10 -0
  106. package/dist/shutdown/index.d.ts.map +1 -0
  107. package/dist/shutdown/index.js +10 -0
  108. package/dist/shutdown/index.js.map +1 -0
  109. package/dist/shutdown/manager.d.ts +102 -0
  110. package/dist/shutdown/manager.d.ts.map +1 -0
  111. package/dist/shutdown/manager.js +252 -0
  112. package/dist/shutdown/manager.js.map +1 -0
  113. package/dist/shutdown/types.d.ts +133 -0
  114. package/dist/shutdown/types.d.ts.map +1 -0
  115. package/dist/shutdown/types.js +8 -0
  116. package/dist/shutdown/types.js.map +1 -0
  117. package/dist/transport/socket-server.d.ts.map +1 -1
  118. package/dist/transport/socket-server.js.map +1 -1
  119. package/dist/transport/socket-transport.d.ts +11 -13
  120. package/dist/transport/socket-transport.d.ts.map +1 -1
  121. package/dist/transport/socket-transport.js +57 -26
  122. package/dist/transport/socket-transport.js.map +1 -1
  123. package/dist/transport/stdio-transport.d.ts +12 -19
  124. package/dist/transport/stdio-transport.d.ts.map +1 -1
  125. package/dist/transport/stdio-transport.js +54 -33
  126. package/dist/transport/stdio-transport.js.map +1 -1
  127. package/dist/utils/index.d.ts +1 -0
  128. package/dist/utils/index.d.ts.map +1 -1
  129. package/dist/utils/index.js +1 -0
  130. package/dist/utils/index.js.map +1 -1
  131. package/dist/utils/metrics.d.ts +6 -0
  132. package/dist/utils/metrics.d.ts.map +1 -0
  133. package/dist/utils/metrics.js +2 -0
  134. package/dist/utils/metrics.js.map +1 -0
  135. package/dist/utils/pipe-path.d.ts +8 -2
  136. package/dist/utils/pipe-path.d.ts.map +1 -1
  137. package/dist/utils/pipe-path.js +27 -4
  138. package/dist/utils/pipe-path.js.map +1 -1
  139. package/dist/utils/platform.d.ts.map +1 -1
  140. package/dist/utils/platform.js +1 -1
  141. package/dist/utils/platform.js.map +1 -1
  142. package/package.json +1 -1
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Reserved protocol methods as defined in Wire Protocol Specification v1.0.
3
+ *
4
+ * Reserved methods handle protocol-level concerns (handshake, heartbeat, etc.)
5
+ * and MUST NOT be used by application code.
6
+ *
7
+ * @packageDocumentation
8
+ * @module Protocol
9
+ */
10
+ /**
11
+ * Prefix for all reserved protocol methods.
12
+ */
13
+ export declare const RESERVED_PREFIX = "__";
14
+ /**
15
+ * Suffix for all reserved protocol methods.
16
+ */
17
+ export declare const RESERVED_SUFFIX = "__";
18
+ /**
19
+ * All reserved method names as defined in Wire Protocol Spec v1.0.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * import { ReservedMethods } from '@procwire/transport';
24
+ *
25
+ * // Send heartbeat ping
26
+ * await channel.notify(ReservedMethods.HEARTBEAT_PING, { timestamp: Date.now(), seq: 1 });
27
+ * ```
28
+ */
29
+ export declare const ReservedMethods: {
30
+ /** Initialize connection, negotiate capabilities */
31
+ readonly HANDSHAKE: "__handshake__";
32
+ /** Manager -> Worker: Check if worker is alive */
33
+ readonly HEARTBEAT_PING: "__heartbeat_ping__";
34
+ /** Worker -> Manager: Respond to ping with optional load metrics */
35
+ readonly HEARTBEAT_PONG: "__heartbeat_pong__";
36
+ /** Worker -> Manager: Signal that data channel server is listening */
37
+ readonly DATA_CHANNEL_READY: "__data_channel_ready__";
38
+ /** Worker -> Manager: Report data channel error */
39
+ readonly DATA_CHANNEL_ERROR: "__data_channel_error__";
40
+ /** Manager -> Worker: Request graceful shutdown */
41
+ readonly SHUTDOWN: "__shutdown__";
42
+ /** Worker -> Manager: Confirm shutdown complete (sent just before exit) */
43
+ readonly SHUTDOWN_COMPLETE: "__shutdown_complete__";
44
+ /** Open a new stream */
45
+ readonly STREAM_OPEN: "__stream_open__";
46
+ /** Send stream data frame */
47
+ readonly STREAM_DATA: "__stream_data__";
48
+ /** Signal end of stream */
49
+ readonly STREAM_END: "__stream_end__";
50
+ /** Close stream and get final result */
51
+ readonly STREAM_CLOSE: "__stream_close__";
52
+ /** Abort stream due to error */
53
+ readonly STREAM_ABORT: "__stream_abort__";
54
+ /** Grant permission to send N frames */
55
+ readonly CREDIT_GRANT: "__credit_grant__";
56
+ /** Notify that producer is waiting for credits */
57
+ readonly CREDIT_EXHAUSTED: "__credit_exhausted__";
58
+ };
59
+ /**
60
+ * Type representing any reserved method name.
61
+ */
62
+ export type ReservedMethod = (typeof ReservedMethods)[keyof typeof ReservedMethods];
63
+ /**
64
+ * Check if a method name is reserved (starts and ends with __).
65
+ *
66
+ * @param method - Method name to check
67
+ * @returns true if the method is reserved
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * isReservedMethod('__handshake__'); // true
72
+ * isReservedMethod('myMethod'); // false
73
+ * isReservedMethod('__partial'); // false (no suffix)
74
+ * ```
75
+ */
76
+ export declare function isReservedMethod(method: string): boolean;
77
+ /**
78
+ * Validate that a user method name is not reserved.
79
+ *
80
+ * @param method - Method name to validate
81
+ * @throws {Error} if method name is reserved
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * validateUserMethod('myMethod'); // OK
86
+ * validateUserMethod('__handshake__'); // throws Error
87
+ * ```
88
+ */
89
+ export declare function validateUserMethod(method: string): void;
90
+ //# sourceMappingURL=reserved-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-methods.d.ts","sourceRoot":"","sources":["../../src/protocol/reserved-methods.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe;IAE1B,oDAAoD;;IAIpD,kDAAkD;;IAElD,oEAAoE;;IAIpE,sEAAsE;;IAEtE,mDAAmD;;IAInD,mDAAmD;;IAEnD,2EAA2E;;IAI3E,wBAAwB;;IAExB,6BAA6B;;IAE7B,2BAA2B;;IAE3B,wCAAwC;;IAExC,gCAAgC;;IAIhC,wCAAwC;;IAExC,kDAAkD;;CAE1C,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEpF;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAOvD"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Reserved protocol methods as defined in Wire Protocol Specification v1.0.
3
+ *
4
+ * Reserved methods handle protocol-level concerns (handshake, heartbeat, etc.)
5
+ * and MUST NOT be used by application code.
6
+ *
7
+ * @packageDocumentation
8
+ * @module Protocol
9
+ */
10
+ /**
11
+ * Prefix for all reserved protocol methods.
12
+ */
13
+ export const RESERVED_PREFIX = "__";
14
+ /**
15
+ * Suffix for all reserved protocol methods.
16
+ */
17
+ export const RESERVED_SUFFIX = "__";
18
+ /**
19
+ * All reserved method names as defined in Wire Protocol Spec v1.0.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * import { ReservedMethods } from '@procwire/transport';
24
+ *
25
+ * // Send heartbeat ping
26
+ * await channel.notify(ReservedMethods.HEARTBEAT_PING, { timestamp: Date.now(), seq: 1 });
27
+ * ```
28
+ */
29
+ export const ReservedMethods = {
30
+ // Handshake
31
+ /** Initialize connection, negotiate capabilities */
32
+ HANDSHAKE: "__handshake__",
33
+ // Heartbeat
34
+ /** Manager -> Worker: Check if worker is alive */
35
+ HEARTBEAT_PING: "__heartbeat_ping__",
36
+ /** Worker -> Manager: Respond to ping with optional load metrics */
37
+ HEARTBEAT_PONG: "__heartbeat_pong__",
38
+ // Data Channel Lifecycle
39
+ /** Worker -> Manager: Signal that data channel server is listening */
40
+ DATA_CHANNEL_READY: "__data_channel_ready__",
41
+ /** Worker -> Manager: Report data channel error */
42
+ DATA_CHANNEL_ERROR: "__data_channel_error__",
43
+ // Shutdown
44
+ /** Manager -> Worker: Request graceful shutdown */
45
+ SHUTDOWN: "__shutdown__",
46
+ /** Worker -> Manager: Confirm shutdown complete (sent just before exit) */
47
+ SHUTDOWN_COMPLETE: "__shutdown_complete__",
48
+ // Streaming (future)
49
+ /** Open a new stream */
50
+ STREAM_OPEN: "__stream_open__",
51
+ /** Send stream data frame */
52
+ STREAM_DATA: "__stream_data__",
53
+ /** Signal end of stream */
54
+ STREAM_END: "__stream_end__",
55
+ /** Close stream and get final result */
56
+ STREAM_CLOSE: "__stream_close__",
57
+ /** Abort stream due to error */
58
+ STREAM_ABORT: "__stream_abort__",
59
+ // Flow Control (future)
60
+ /** Grant permission to send N frames */
61
+ CREDIT_GRANT: "__credit_grant__",
62
+ /** Notify that producer is waiting for credits */
63
+ CREDIT_EXHAUSTED: "__credit_exhausted__",
64
+ };
65
+ /**
66
+ * Check if a method name is reserved (starts and ends with __).
67
+ *
68
+ * @param method - Method name to check
69
+ * @returns true if the method is reserved
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * isReservedMethod('__handshake__'); // true
74
+ * isReservedMethod('myMethod'); // false
75
+ * isReservedMethod('__partial'); // false (no suffix)
76
+ * ```
77
+ */
78
+ export function isReservedMethod(method) {
79
+ return method.startsWith(RESERVED_PREFIX) && method.endsWith(RESERVED_SUFFIX);
80
+ }
81
+ /**
82
+ * Validate that a user method name is not reserved.
83
+ *
84
+ * @param method - Method name to validate
85
+ * @throws {Error} if method name is reserved
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * validateUserMethod('myMethod'); // OK
90
+ * validateUserMethod('__handshake__'); // throws Error
91
+ * ```
92
+ */
93
+ export function validateUserMethod(method) {
94
+ if (isReservedMethod(method)) {
95
+ throw new Error(`Method '${method}' is reserved for protocol use. ` +
96
+ `User methods cannot start and end with '__'.`);
97
+ }
98
+ }
99
+ //# sourceMappingURL=reserved-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-methods.js","sourceRoot":"","sources":["../../src/protocol/reserved-methods.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAEpC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY;IACZ,oDAAoD;IACpD,SAAS,EAAE,eAAe;IAE1B,YAAY;IACZ,kDAAkD;IAClD,cAAc,EAAE,oBAAoB;IACpC,oEAAoE;IACpE,cAAc,EAAE,oBAAoB;IAEpC,yBAAyB;IACzB,sEAAsE;IACtE,kBAAkB,EAAE,wBAAwB;IAC5C,mDAAmD;IACnD,kBAAkB,EAAE,wBAAwB;IAE5C,WAAW;IACX,mDAAmD;IACnD,QAAQ,EAAE,cAAc;IACxB,2EAA2E;IAC3E,iBAAiB,EAAE,uBAAuB;IAE1C,qBAAqB;IACrB,wBAAwB;IACxB,WAAW,EAAE,iBAAiB;IAC9B,6BAA6B;IAC7B,WAAW,EAAE,iBAAiB;IAC9B,2BAA2B;IAC3B,UAAU,EAAE,gBAAgB;IAC5B,wCAAwC;IACxC,YAAY,EAAE,kBAAkB;IAChC,gCAAgC;IAChC,YAAY,EAAE,kBAAkB;IAEhC,wBAAwB;IACxB,wCAAwC;IACxC,YAAY,EAAE,kBAAkB;IAChC,kDAAkD;IAClD,gBAAgB,EAAE,sBAAsB;CAChC,CAAC;AAOX;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,OAAO,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,WAAW,MAAM,kCAAkC;YACjD,8CAA8C,CACjD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Type definitions for reserved protocol method parameters and results.
3
+ *
4
+ * These types correspond to the Wire Protocol Specification v1.0 reserved methods.
5
+ *
6
+ * @packageDocumentation
7
+ * @module Protocol
8
+ */
9
+ /**
10
+ * Parameters for `__handshake__` request (Manager -> Worker).
11
+ */
12
+ export interface HandshakeParams {
13
+ /** Protocol version (e.g., "1.0") */
14
+ version: string;
15
+ /** Capabilities supported by the manager */
16
+ capabilities: string[];
17
+ /** Data channel configuration (if data_channel capability is enabled) */
18
+ data_channel?: {
19
+ /** Path to named pipe/unix socket */
20
+ path: string;
21
+ /** Serialization codec name (e.g., "msgpack", "json") */
22
+ serialization: string;
23
+ };
24
+ }
25
+ /**
26
+ * Result from `__handshake__` response (Worker -> Manager).
27
+ */
28
+ export interface HandshakeResult {
29
+ /** Protocol version (e.g., "1.0") */
30
+ version: string;
31
+ /** Capabilities supported by the worker */
32
+ capabilities: string[];
33
+ /** Optional worker information */
34
+ worker_info?: {
35
+ /** Worker name/identifier */
36
+ name: string;
37
+ /** Implementation language (e.g., "rust", "node", "python") */
38
+ language: string;
39
+ /** Worker process ID */
40
+ pid: number;
41
+ };
42
+ }
43
+ /**
44
+ * Parameters for `__heartbeat_ping__` notification (Manager -> Worker).
45
+ */
46
+ export interface HeartbeatPingParams {
47
+ /** Unix timestamp (milliseconds) when ping was sent */
48
+ timestamp: number;
49
+ /** Sequence number for ping/pong matching */
50
+ seq: number;
51
+ }
52
+ /**
53
+ * Parameters for `__heartbeat_pong__` notification (Worker -> Manager).
54
+ */
55
+ export interface HeartbeatPongParams {
56
+ /** Unix timestamp (milliseconds) from the ping */
57
+ timestamp: number;
58
+ /** Sequence number (must match ping seq) */
59
+ seq: number;
60
+ /** Optional worker load metrics */
61
+ load?: WorkerLoad;
62
+ }
63
+ /**
64
+ * Worker load metrics included in heartbeat pong.
65
+ */
66
+ export interface WorkerLoad {
67
+ /** CPU usage percentage (0-100) */
68
+ cpu_percent?: number;
69
+ /** Memory usage in megabytes */
70
+ memory_mb?: number;
71
+ /** Number of pending requests */
72
+ pending_requests?: number;
73
+ /** Custom application-specific metrics */
74
+ custom?: Record<string, unknown>;
75
+ }
76
+ /**
77
+ * Parameters for `__shutdown__` request (Manager -> Worker).
78
+ */
79
+ export interface ShutdownParams {
80
+ /** Timeout for graceful shutdown in milliseconds */
81
+ timeout_ms: number;
82
+ /** Reason for shutdown */
83
+ reason: ShutdownReason;
84
+ }
85
+ /**
86
+ * Result from `__shutdown__` response (Worker -> Manager).
87
+ */
88
+ export interface ShutdownResult {
89
+ /** Acknowledgment status */
90
+ status: "shutting_down";
91
+ /** Number of pending requests that will be drained */
92
+ pending_requests: number;
93
+ }
94
+ /**
95
+ * Parameters for `__shutdown_complete__` notification (Worker -> Manager).
96
+ * Sent just before the worker process exits.
97
+ */
98
+ export interface ShutdownCompleteParams {
99
+ /** Exit code the worker will use */
100
+ exit_code: number;
101
+ }
102
+ /**
103
+ * Shutdown reasons as defined in Wire Protocol Spec.
104
+ */
105
+ export type ShutdownReason = "user_requested" | "manager_shutdown" | "idle_timeout" | "error_threshold" | "restart" | "heartbeat_dead";
106
+ /**
107
+ * Parameters for `__data_channel_ready__` notification (Worker -> Manager).
108
+ */
109
+ export interface DataChannelReadyParams {
110
+ /** Path to the named pipe/unix socket that is now listening */
111
+ path: string;
112
+ }
113
+ /**
114
+ * Parameters for `__data_channel_error__` notification (Worker -> Manager).
115
+ */
116
+ export interface DataChannelErrorParams {
117
+ /** Error code (e.g., "EADDRINUSE") */
118
+ error: string;
119
+ /** Human-readable error message */
120
+ message: string;
121
+ /** Path that failed */
122
+ path: string;
123
+ }
124
+ /**
125
+ * Direction of stream data flow.
126
+ */
127
+ export type StreamDirection = "push" | "pull";
128
+ /**
129
+ * Parameters for `__stream_open__` request.
130
+ */
131
+ export interface StreamOpenParams {
132
+ /** Unique stream identifier */
133
+ stream_id: string;
134
+ /** Method name for the stream operation */
135
+ method: string;
136
+ /** Stream direction */
137
+ direction: StreamDirection;
138
+ /** Method-specific parameters */
139
+ params?: unknown;
140
+ /** Initial credits to grant */
141
+ initial_credits?: number;
142
+ }
143
+ /**
144
+ * Result from `__stream_open__` response.
145
+ */
146
+ export interface StreamOpenResult {
147
+ /** Stream identifier (echoed back) */
148
+ stream_id: string;
149
+ /** Whether the stream was accepted */
150
+ accepted: boolean;
151
+ /** Credits granted (if accepted) */
152
+ initial_credits?: number;
153
+ /** Rejection reason (if not accepted) */
154
+ reason?: string;
155
+ }
156
+ /**
157
+ * Parameters for `__stream_data__` notification.
158
+ */
159
+ export interface StreamDataParams {
160
+ /** Stream identifier */
161
+ stream_id: string;
162
+ /** Sequence number */
163
+ seq: number;
164
+ /** Payload data (unless Arrow payload) */
165
+ payload?: unknown;
166
+ /** Arrow IPC offset in frame (for hybrid serialization) */
167
+ _arrow_offset?: number;
168
+ /** Arrow IPC length in bytes (for hybrid serialization) */
169
+ _arrow_length?: number;
170
+ }
171
+ /**
172
+ * Parameters for `__stream_end__` notification.
173
+ */
174
+ export interface StreamEndParams {
175
+ /** Stream identifier */
176
+ stream_id: string;
177
+ /** Final sequence number */
178
+ final_seq: number;
179
+ /** Optional checksum for verification */
180
+ checksum?: string;
181
+ }
182
+ /**
183
+ * Parameters for `__stream_close__` request.
184
+ */
185
+ export interface StreamCloseParams {
186
+ /** Stream identifier */
187
+ stream_id: string;
188
+ }
189
+ /**
190
+ * Result from `__stream_close__` response.
191
+ */
192
+ export interface StreamCloseResult {
193
+ /** Stream identifier (echoed back) */
194
+ stream_id: string;
195
+ /** Number of frames sent */
196
+ frames_sent: number;
197
+ /** Number of frames received */
198
+ frames_received: number;
199
+ /** Final result from the stream operation */
200
+ result?: unknown;
201
+ }
202
+ /**
203
+ * Parameters for `__stream_abort__` notification.
204
+ */
205
+ export interface StreamAbortParams {
206
+ /** Stream identifier */
207
+ stream_id: string;
208
+ /** Abort reason */
209
+ reason: string;
210
+ /** Human-readable message */
211
+ message?: string;
212
+ }
213
+ /**
214
+ * Parameters for `__credit_grant__` notification.
215
+ */
216
+ export interface CreditGrantParams {
217
+ /** Stream identifier */
218
+ stream_id: string;
219
+ /** Number of credits (frames) granted */
220
+ credits: number;
221
+ }
222
+ /**
223
+ * Parameters for `__credit_exhausted__` notification.
224
+ */
225
+ export interface CreditExhaustedParams {
226
+ /** Stream identifier */
227
+ stream_id: string;
228
+ /** Number of frames waiting to be sent */
229
+ pending_frames: number;
230
+ }
231
+ //# sourceMappingURL=reserved-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-types.d.ts","sourceRoot":"","sources":["../../src/protocol/reserved-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Type definitions for reserved protocol method parameters and results.
3
+ *
4
+ * These types correspond to the Wire Protocol Specification v1.0 reserved methods.
5
+ *
6
+ * @packageDocumentation
7
+ * @module Protocol
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=reserved-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-types.js","sourceRoot":"","sources":["../../src/protocol/reserved-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -1 +1 @@
1
- {"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../src/protocol/simple.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC;IACd,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,mBAAmB,CAAC;AAEzE;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cACX,YAAW,QAAQ,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC;IAE7E,SAAgB,IAAI,YAAY;IAChC,SAAgB,OAAO,SAAS;IAEhC,OAAO,CAAC,SAAS,CAAK;IAEtB;;;;;;;;OAQG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,SAAS,GAAG,aAAa;IAoB9E;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,cAAc;IAQ9D;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,GAAG,mBAAmB;IAQjF;;;;;;;OAOG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,kBAAkB;IAiBxE;;;;;;OAMG;IACH,YAAY,CACV,IAAI,EAAE,OAAO,GACZ,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC;IA4C1E;;OAEG;IACH,SAAS,CACP,GAAG,EAAE,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,GAC3E,GAAG,IAAI,OAAO,CACf,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EACvE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CACpB;IAID;;OAEG;IACH,UAAU,CACR,GAAG,EAAE,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,GAC3E,GAAG,IAAI,OAAO,CACf,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EACvE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CACrB;IAID;;OAEG;IACH,cAAc,CACZ,GAAG,EAAE,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,GAC3E,GAAG,IAAI,OAAO,CACf,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EACvE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,CACzB;IAID;;OAEG;IACH,OAAO,CAAC,YAAY;IA6CpB;;OAEG;IACH,OAAO,CAAC,aAAa;IA6CrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../src/protocol/simple.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC;IACd,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,mBAAmB,CAAC;AAEzE;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAe,YAAW,QAAQ,CAC7C,aAAa,EACb,qBAAqB,EACrB,kBAAkB,CACnB;IACC,SAAgB,IAAI,YAAY;IAChC,SAAgB,OAAO,SAAS;IAEhC,OAAO,CAAC,SAAS,CAAK;IAEtB;;;;;;;;OAQG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,SAAS,GAAG,aAAa;IAoB9E;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,cAAc;IAQ9D;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,GAAG,mBAAmB;IAQjF;;;;;;;OAOG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,kBAAkB;IAiBxE;;;;;;OAMG;IACH,YAAY,CACV,IAAI,EAAE,OAAO,GACZ,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC;IA4C1E;;OAEG;IACH,SAAS,CACP,GAAG,EAAE,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,GAC3E,GAAG,IAAI,OAAO,CACf,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EACvE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CACpB;IAID;;OAEG;IACH,UAAU,CACR,GAAG,EAAE,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,GAC3E,GAAG,IAAI,OAAO,CACf,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EACvE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CACrB;IAID;;OAEG;IACH,cAAc,CACZ,GAAG,EAAE,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,GAC3E,GAAG,IAAI,OAAO,CACf,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EACvE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,CACzB;IAID;;OAEG;IACH,OAAO,CAAC,YAAY;IA6CpB;;OAEG;IACH,OAAO,CAAC,aAAa;IA6CrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"simple.js","sourceRoot":"","sources":["../../src/protocol/simple.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple.js","sourceRoot":"","sources":["../../src/protocol/simple.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Auto-reconnect manager constants.
3
+ *
4
+ * @packageDocumentation
5
+ * @module Reconnect
6
+ */
7
+ import type { ReconnectOptions } from "./types.js";
8
+ /**
9
+ * Default reconnect configuration options.
10
+ */
11
+ export declare const DEFAULT_RECONNECT_OPTIONS: Readonly<Required<ReconnectOptions>>;
12
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/reconnect/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAU1E,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Auto-reconnect manager constants.
3
+ *
4
+ * @packageDocumentation
5
+ * @module Reconnect
6
+ */
7
+ /**
8
+ * Default reconnect configuration options.
9
+ */
10
+ export const DEFAULT_RECONNECT_OPTIONS = {
11
+ enabled: true,
12
+ initialDelay: 100,
13
+ maxDelay: 30_000,
14
+ multiplier: 2,
15
+ jitter: 0.1,
16
+ maxAttempts: Infinity,
17
+ queueRequests: true,
18
+ maxQueueSize: 100,
19
+ queueTimeout: 60_000,
20
+ };
21
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/reconnect/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAyC;IAC7E,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,GAAG;IACjB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,GAAG;IACX,WAAW,EAAE,QAAQ;IACrB,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,MAAM;CACrB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Auto-reconnect module for handling transient connection failures.
3
+ *
4
+ * @packageDocumentation
5
+ * @module Reconnect
6
+ */
7
+ export * from "./types.js";
8
+ export * from "./constants.js";
9
+ export * from "./manager.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reconnect/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Auto-reconnect module for handling transient connection failures.
3
+ *
4
+ * @packageDocumentation
5
+ * @module Reconnect
6
+ */
7
+ export * from "./types.js";
8
+ export * from "./constants.js";
9
+ export * from "./manager.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reconnect/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * ReconnectManager implementation.
3
+ *
4
+ * @packageDocumentation
5
+ * @module Reconnect
6
+ */
7
+ import { EventEmitter } from "../utils/events.js";
8
+ import type { ReconnectOptions, ReconnectState, ReconnectEventMap, Reconnectable } from "./types.js";
9
+ /**
10
+ * Manages automatic reconnection with exponential backoff and request queueing.
11
+ *
12
+ * The ReconnectManager implements exponential backoff with jitter to handle
13
+ * transient connection failures. It can optionally queue requests during
14
+ * reconnection and execute them once the connection is restored.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const reconnect = new ReconnectManager(dataTransport, {
19
+ * initialDelay: 100,
20
+ * maxDelay: 30000,
21
+ * maxAttempts: 10,
22
+ * });
23
+ *
24
+ * reconnect.on('reconnect:success', ({ attempt }) => {
25
+ * console.log(`Reconnected after ${attempt} attempts`);
26
+ * });
27
+ *
28
+ * reconnect.on('reconnect:failed', ({ lastError }) => {
29
+ * console.error('Reconnection failed:', lastError);
30
+ * });
31
+ *
32
+ * // When disconnect is detected:
33
+ * const success = await reconnect.handleDisconnect(error);
34
+ * if (!success) {
35
+ * // Handle permanent failure
36
+ * }
37
+ * ```
38
+ */
39
+ export declare class ReconnectManager extends EventEmitter<ReconnectEventMap> {
40
+ private readonly options;
41
+ private readonly target;
42
+ private readonly requestQueue;
43
+ private state;
44
+ private cancelled;
45
+ /**
46
+ * Creates a new ReconnectManager.
47
+ *
48
+ * @param target - Object that can be reconnected (has connect() method)
49
+ * @param options - Configuration options (merged with defaults)
50
+ */
51
+ constructor(target: Reconnectable, options?: Partial<ReconnectOptions>);
52
+ /**
53
+ * Handle unexpected disconnect. Initiates reconnection if enabled.
54
+ *
55
+ * @param error - The error that caused the disconnect
56
+ * @returns Promise that resolves to true if reconnected, false if failed
57
+ */
58
+ handleDisconnect(error: Error): Promise<boolean>;
59
+ /**
60
+ * Queue a request to be executed after reconnection.
61
+ * Returns null if not currently reconnecting or queueing is disabled.
62
+ *
63
+ * @param method - Method name for logging
64
+ * @param execute - Function that executes the request
65
+ * @returns Promise that resolves with request result, or null if not queued
66
+ */
67
+ queueRequest<T>(method: string, execute: () => Promise<T>): Promise<T> | null;
68
+ /**
69
+ * Get current reconnection state (readonly).
70
+ */
71
+ getState(): Readonly<ReconnectState>;
72
+ /**
73
+ * Get current options (readonly).
74
+ */
75
+ getOptions(): Readonly<Required<ReconnectOptions>>;
76
+ /**
77
+ * Check if currently reconnecting.
78
+ */
79
+ isReconnecting(): boolean;
80
+ /**
81
+ * Cancel ongoing reconnection attempt.
82
+ * Rejects all queued requests.
83
+ */
84
+ cancel(): void;
85
+ /**
86
+ * Reset state for restart scenarios.
87
+ */
88
+ reset(): void;
89
+ /**
90
+ * Calculate delay for current attempt using exponential backoff with jitter.
91
+ */
92
+ private calculateDelay;
93
+ /**
94
+ * Flush queued requests after successful reconnection.
95
+ */
96
+ private flushQueue;
97
+ /**
98
+ * Reject all queued requests with given error.
99
+ */
100
+ private rejectQueue;
101
+ /**
102
+ * Remove a specific request from the queue.
103
+ */
104
+ private removeFromQueue;
105
+ /**
106
+ * Sleep for specified milliseconds.
107
+ */
108
+ private sleep;
109
+ }
110
+ //# sourceMappingURL=manager.d.ts.map