tywrap 0.8.0 → 0.9.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.
- package/README.md +22 -7
- package/SECURITY.md +39 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +8 -0
- package/dist/config/index.js.map +1 -1
- package/dist/core/annotation-parser.d.ts +2 -1
- package/dist/core/annotation-parser.d.ts.map +1 -1
- package/dist/core/annotation-parser.js +6 -3
- package/dist/core/annotation-parser.js.map +1 -1
- package/dist/core/generator.d.ts +23 -4
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +243 -170
- package/dist/core/generator.js.map +1 -1
- package/dist/core/mapper.d.ts +3 -2
- package/dist/core/mapper.d.ts.map +1 -1
- package/dist/core/mapper.js +5 -5
- package/dist/core/mapper.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/runtime/base-bridge.d.ts +3 -7
- package/dist/runtime/base-bridge.d.ts.map +1 -1
- package/dist/runtime/base-bridge.js +4 -17
- package/dist/runtime/base-bridge.js.map +1 -1
- package/dist/runtime/bounded-context.d.ts +3 -22
- package/dist/runtime/bounded-context.d.ts.map +1 -1
- package/dist/runtime/bounded-context.js +13 -53
- package/dist/runtime/bounded-context.js.map +1 -1
- package/dist/runtime/bridge-codec.d.ts +1 -1
- package/dist/runtime/bridge-codec.d.ts.map +1 -1
- package/dist/runtime/bridge-codec.js +78 -55
- package/dist/runtime/bridge-codec.js.map +1 -1
- package/dist/runtime/errors.d.ts +16 -0
- package/dist/runtime/errors.d.ts.map +1 -1
- package/dist/runtime/errors.js +17 -0
- package/dist/runtime/errors.js.map +1 -1
- package/dist/runtime/http-transport.d.ts +1 -1
- package/dist/runtime/http-transport.d.ts.map +1 -1
- package/dist/runtime/http-transport.js +1 -1
- package/dist/runtime/http-transport.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -0
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/node.d.ts +7 -36
- package/dist/runtime/node.d.ts.map +1 -1
- package/dist/runtime/node.js +2 -80
- package/dist/runtime/node.js.map +1 -1
- package/dist/runtime/pooled-transport.d.ts +120 -59
- package/dist/runtime/pooled-transport.d.ts.map +1 -1
- package/dist/runtime/pooled-transport.js +345 -78
- package/dist/runtime/pooled-transport.js.map +1 -1
- package/dist/runtime/pyodide-bootstrap-core.generated.d.ts.map +1 -1
- package/dist/runtime/pyodide-bootstrap-core.generated.js +1 -1
- package/dist/runtime/pyodide-bootstrap-core.generated.js.map +1 -1
- package/dist/runtime/pyodide-transport.d.ts +1 -1
- package/dist/runtime/pyodide-transport.d.ts.map +1 -1
- package/dist/runtime/pyodide-transport.js +2 -3
- package/dist/runtime/pyodide-transport.js.map +1 -1
- package/dist/runtime/rpc-client.d.ts +7 -36
- package/dist/runtime/rpc-client.d.ts.map +1 -1
- package/dist/runtime/rpc-client.js +20 -102
- package/dist/runtime/rpc-client.js.map +1 -1
- package/dist/runtime/subprocess-transport.d.ts +30 -69
- package/dist/runtime/subprocess-transport.d.ts.map +1 -1
- package/dist/runtime/subprocess-transport.js +179 -236
- package/dist/runtime/subprocess-transport.js.map +1 -1
- package/dist/runtime/timed-out-request-tracker.d.ts +2 -1
- package/dist/runtime/timed-out-request-tracker.d.ts.map +1 -1
- package/dist/runtime/transport.d.ts +9 -19
- package/dist/runtime/transport.d.ts.map +1 -1
- package/dist/runtime/transport.js +1 -1
- package/dist/runtime/transport.js.map +1 -1
- package/dist/runtime/validators.d.ts +49 -0
- package/dist/runtime/validators.d.ts.map +1 -1
- package/dist/runtime/validators.js +152 -0
- package/dist/runtime/validators.js.map +1 -1
- package/dist/types/index.d.ts +14 -39
- package/dist/types/index.d.ts.map +1 -1
- package/dist/tywrap.d.ts +3 -2
- package/dist/tywrap.d.ts.map +1 -1
- package/dist/tywrap.js +140 -13
- package/dist/tywrap.js.map +1 -1
- package/dist/utils/cache.d.ts +3 -16
- package/dist/utils/cache.d.ts.map +1 -1
- package/dist/utils/codec.d.ts +1 -0
- package/dist/utils/codec.d.ts.map +1 -1
- package/dist/utils/codec.js +13 -13
- package/dist/utils/codec.js.map +1 -1
- package/dist/utils/ir-cache.d.ts +2 -1
- package/dist/utils/ir-cache.d.ts.map +1 -1
- package/dist/utils/runtime.d.ts +0 -29
- package/dist/utils/runtime.d.ts.map +1 -1
- package/dist/utils/runtime.js +16 -107
- package/dist/utils/runtime.js.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -6
- package/runtime/frame_codec.py +7 -1
- package/runtime/python_bridge.py +85 -125
- package/runtime/tywrap_bridge_core.py +133 -150
- package/src/config/index.ts +11 -0
- package/src/core/annotation-parser.ts +7 -4
- package/src/core/generator.ts +315 -205
- package/src/core/mapper.ts +8 -8
- package/src/index.ts +7 -4
- package/src/runtime/base-bridge.ts +5 -30
- package/src/runtime/bounded-context.ts +12 -67
- package/src/runtime/bridge-codec.ts +94 -65
- package/src/runtime/errors.ts +21 -0
- package/src/runtime/http-transport.ts +6 -1
- package/src/runtime/index.ts +6 -0
- package/src/runtime/node.ts +9 -120
- package/src/runtime/pooled-transport.ts +424 -90
- package/src/runtime/pyodide-bootstrap-core.generated.ts +1 -1
- package/src/runtime/pyodide-transport.ts +7 -3
- package/src/runtime/rpc-client.ts +37 -139
- package/src/runtime/subprocess-transport.ts +210 -285
- package/src/runtime/timed-out-request-tracker.ts +1 -1
- package/src/runtime/transport.ts +15 -23
- package/src/runtime/validators.ts +204 -0
- package/src/types/index.ts +21 -60
- package/src/tywrap.ts +157 -22
- package/src/utils/cache.ts +3 -3
- package/src/utils/codec.ts +21 -13
- package/src/utils/ir-cache.ts +1 -1
- package/src/utils/runtime.ts +17 -128
- package/src/version.ts +1 -1
- package/dist/core/discovery.d.ts +0 -103
- package/dist/core/discovery.d.ts.map +0 -1
- package/dist/core/discovery.js +0 -380
- package/dist/core/discovery.js.map +0 -1
- package/dist/core/validation.d.ts +0 -102
- package/dist/core/validation.d.ts.map +0 -1
- package/dist/core/validation.js +0 -490
- package/dist/core/validation.js.map +0 -1
- package/dist/runtime/base.d.ts +0 -22
- package/dist/runtime/base.d.ts.map +0 -1
- package/dist/runtime/base.js +0 -23
- package/dist/runtime/base.js.map +0 -1
- package/dist/runtime/transport-pool.d.ts +0 -196
- package/dist/runtime/transport-pool.d.ts.map +0 -1
- package/dist/runtime/transport-pool.js +0 -418
- package/dist/runtime/transport-pool.js.map +0 -1
- package/runtime/__pycache__/_tywrap_conformance_chunking_fixtures.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_member_fixtures.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_w4_chunking_fixture.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_w5_request_chunking_fixture.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_w6_pool_chunking_fixture.cpython-311.pyc +0 -0
- package/runtime/__pycache__/frame_codec.cpython-311.pyc +0 -0
- package/runtime/__pycache__/safe_codec.cpython-311.pyc +0 -0
- package/runtime/__pycache__/tywrap_bridge_core.cpython-311.pyc +0 -0
- package/runtime/safe_codec.py +0 -352
- package/src/core/discovery.ts +0 -477
- package/src/core/validation.ts +0 -729
- package/src/runtime/base.ts +0 -24
- package/src/runtime/transport-pool.ts +0 -538
package/dist/runtime/node.d.ts
CHANGED
|
@@ -18,7 +18,12 @@ export interface NodeBridgeOptions {
|
|
|
18
18
|
minProcesses?: number;
|
|
19
19
|
/** Maximum number of Python processes to spawn. Default: 1 (single-process mode) */
|
|
20
20
|
maxProcesses?: number;
|
|
21
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Maximum concurrent requests per process. Default: 1.
|
|
23
|
+
*
|
|
24
|
+
* Python bridge workers process JSONL requests serially, so the default lets
|
|
25
|
+
* the pool use another process for concurrent calls when one is available.
|
|
26
|
+
*/
|
|
22
27
|
maxConcurrentPerProcess?: number;
|
|
23
28
|
/** Path to Python executable. Auto-detected if not specified. */
|
|
24
29
|
pythonPath?: string;
|
|
@@ -34,25 +39,10 @@ export interface NodeBridgeOptions {
|
|
|
34
39
|
queueTimeoutMs?: number;
|
|
35
40
|
/** Inherit all environment variables from parent process. Default: false */
|
|
36
41
|
inheritProcessEnv?: boolean;
|
|
37
|
-
/** Enable result caching for pure functions. Default: false */
|
|
38
|
-
enableCache?: boolean;
|
|
39
42
|
/** Optional extra environment variables to pass to the Python subprocess. */
|
|
40
43
|
env?: Record<string, string | undefined>;
|
|
41
44
|
/** Codec options for validation/serialization */
|
|
42
45
|
codec?: CodecOptions;
|
|
43
|
-
/**
|
|
44
|
-
* Negotiate the chunked transport (`tywrap-frame/1`) so a large result that
|
|
45
|
-
* would exceed a single JSONL line is split into frames and transparently
|
|
46
|
-
* reassembled. Default: `true`.
|
|
47
|
-
*
|
|
48
|
-
* Negotiation degrades safely: small payloads are unaffected, and a bridge
|
|
49
|
-
* that does not advertise chunking still fails loud on an oversize payload
|
|
50
|
-
* (never a silent single-frame fallback). Chunking only engages above the
|
|
51
|
-
* frame ceiling, so raising the codec payload cap (`codec`) is what unlocks
|
|
52
|
-
* genuinely large results — flipping this alone changes nothing for typical
|
|
53
|
-
* small-payload traffic.
|
|
54
|
-
*/
|
|
55
|
-
enableChunking?: boolean;
|
|
56
46
|
/** Commands to run on each process at startup for warming up. */
|
|
57
47
|
warmupCommands?: Array<{
|
|
58
48
|
module: string;
|
|
@@ -90,7 +80,6 @@ export interface NodeBridgeOptions {
|
|
|
90
80
|
* - Virtual environment support
|
|
91
81
|
* - Full BridgeCodec validation (NaN/Infinity rejection, key validation)
|
|
92
82
|
* - Automatic Arrow decoding for DataFrames/ndarrays
|
|
93
|
-
* - Optional result caching for pure functions
|
|
94
83
|
* - Process warmup commands
|
|
95
84
|
*
|
|
96
85
|
* @example
|
|
@@ -111,7 +100,6 @@ export interface NodeBridgeOptions {
|
|
|
111
100
|
* const pooledBridge = new NodeBridge({
|
|
112
101
|
* maxProcesses: 4,
|
|
113
102
|
* maxConcurrentPerProcess: 2,
|
|
114
|
-
* enableCache: true,
|
|
115
103
|
* });
|
|
116
104
|
* await pooledBridge.init();
|
|
117
105
|
* ```
|
|
@@ -141,18 +129,9 @@ export declare class NodeBridge extends BasePythonBridge {
|
|
|
141
129
|
protected doDispose(): Promise<void>;
|
|
142
130
|
/**
|
|
143
131
|
* Expose the held RpcClient to BasePythonBridge's shared delegating methods
|
|
144
|
-
* (
|
|
145
|
-
* overridden below to layer caching on top.
|
|
132
|
+
* (call/getBridgeInfo).
|
|
146
133
|
*/
|
|
147
134
|
protected getRpcClient(): RpcClient;
|
|
148
|
-
/**
|
|
149
|
-
* Call a Python function, with optional result caching.
|
|
150
|
-
*
|
|
151
|
-
* Overrides BasePythonBridge.call() to layer the cache lookup/writeback on
|
|
152
|
-
* top of the shared delegation. Cache lookup stays FIRST so cache hits return
|
|
153
|
-
* without forcing init, preserving the pre-composition behavior.
|
|
154
|
-
*/
|
|
155
|
-
call<T = unknown>(module: string, functionName: string, args: unknown[], kwargs?: Record<string, unknown>): Promise<T>;
|
|
156
135
|
/**
|
|
157
136
|
* Get current pool statistics.
|
|
158
137
|
*/
|
|
@@ -181,13 +160,5 @@ export declare class NodeBridge extends BasePythonBridge {
|
|
|
181
160
|
poolSize: number;
|
|
182
161
|
busyWorkers: number;
|
|
183
162
|
};
|
|
184
|
-
/**
|
|
185
|
-
* Generate a cache key, returning null if generation fails.
|
|
186
|
-
*/
|
|
187
|
-
private safeCacheKey;
|
|
188
|
-
/**
|
|
189
|
-
* Heuristic to determine if function result should be cached.
|
|
190
|
-
*/
|
|
191
|
-
private isPureFunctionCandidate;
|
|
192
163
|
}
|
|
193
164
|
//# sourceMappingURL=node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/runtime/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/runtime/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAEzC,iDAAiD;IACjD,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,iEAAiE;IACjE,cAAc,CAAC,EAAE,KAAK,CACpB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CACjG,CAAC;IAMF;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAqKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,UAAW,SAAQ,gBAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAEhC;;;;OAIG;gBACS,OAAO,GAAE,iBAAsB;IAqF3C;;;;;;OAMG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBvC;;;OAGG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1C;;;OAGG;IACH,SAAS,CAAC,YAAY,IAAI,SAAS;IAQnC;;OAEG;IACH,YAAY,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE;IAQnF;;;;;OAKG;IACH,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB;CAmBF"}
|
package/dist/runtime/node.js
CHANGED
|
@@ -14,7 +14,6 @@ import { createRequire } from 'node:module';
|
|
|
14
14
|
import { autoRegisterArrowDecoder } from '../utils/codec.js';
|
|
15
15
|
import { getDefaultPythonPath } from '../utils/python.js';
|
|
16
16
|
import { getVenvBinDir, getVenvPythonExe } from '../utils/runtime.js';
|
|
17
|
-
import { globalCache } from '../utils/cache.js';
|
|
18
17
|
import { BasePythonBridge } from './base-bridge.js';
|
|
19
18
|
import { RpcClient } from './rpc-client.js';
|
|
20
19
|
import { BridgeCodecError, BridgeExecutionError, BridgeProtocolError } from './errors.js';
|
|
@@ -136,7 +135,6 @@ function normalizeWarmupCommands(commands) {
|
|
|
136
135
|
* - Virtual environment support
|
|
137
136
|
* - Full BridgeCodec validation (NaN/Infinity rejection, key validation)
|
|
138
137
|
* - Automatic Arrow decoding for DataFrames/ndarrays
|
|
139
|
-
* - Optional result caching for pure functions
|
|
140
138
|
* - Process warmup commands
|
|
141
139
|
*
|
|
142
140
|
* @example
|
|
@@ -157,7 +155,6 @@ function normalizeWarmupCommands(commands) {
|
|
|
157
155
|
* const pooledBridge = new NodeBridge({
|
|
158
156
|
* maxProcesses: 4,
|
|
159
157
|
* maxConcurrentPerProcess: 2,
|
|
160
|
-
* enableCache: true,
|
|
161
158
|
* });
|
|
162
159
|
* await pooledBridge.init();
|
|
163
160
|
* ```
|
|
@@ -183,7 +180,7 @@ export class NodeBridge extends BasePythonBridge {
|
|
|
183
180
|
const resolvedOptions = {
|
|
184
181
|
minProcesses,
|
|
185
182
|
maxProcesses,
|
|
186
|
-
maxConcurrentPerProcess: options.maxConcurrentPerProcess ??
|
|
183
|
+
maxConcurrentPerProcess: options.maxConcurrentPerProcess ?? 1,
|
|
187
184
|
pythonPath: options.pythonPath ?? venv?.pythonPath ?? getDefaultPythonPath(),
|
|
188
185
|
scriptPath: resolvedScriptPath,
|
|
189
186
|
virtualEnv,
|
|
@@ -191,8 +188,6 @@ export class NodeBridge extends BasePythonBridge {
|
|
|
191
188
|
timeoutMs: options.timeoutMs ?? 30000,
|
|
192
189
|
queueTimeoutMs: options.queueTimeoutMs ?? 30000,
|
|
193
190
|
inheritProcessEnv: options.inheritProcessEnv ?? false,
|
|
194
|
-
enableCache: options.enableCache ?? false,
|
|
195
|
-
enableChunking: options.enableChunking ?? true,
|
|
196
191
|
env: options.env ?? {},
|
|
197
192
|
codec: options.codec,
|
|
198
193
|
warmupCommands,
|
|
@@ -215,7 +210,6 @@ export class NodeBridge extends BasePythonBridge {
|
|
|
215
210
|
bridgeScript: resolvedOptions.scriptPath,
|
|
216
211
|
env: processEnv,
|
|
217
212
|
cwd: resolvedOptions.cwd,
|
|
218
|
-
enableChunking: resolvedOptions.enableChunking,
|
|
219
213
|
// Bound chunked-response reassembly to the codec's logical payload cap
|
|
220
214
|
// so a huge response fails loud early instead of buffering to OOM.
|
|
221
215
|
maxReassemblyBytes: resolvedOptions.codec?.maxPayloadBytes,
|
|
@@ -277,46 +271,11 @@ export class NodeBridge extends BasePythonBridge {
|
|
|
277
271
|
// ===========================================================================
|
|
278
272
|
/**
|
|
279
273
|
* Expose the held RpcClient to BasePythonBridge's shared delegating methods
|
|
280
|
-
* (
|
|
281
|
-
* overridden below to layer caching on top.
|
|
274
|
+
* (call/getBridgeInfo).
|
|
282
275
|
*/
|
|
283
276
|
getRpcClient() {
|
|
284
277
|
return this.rpc;
|
|
285
278
|
}
|
|
286
|
-
/**
|
|
287
|
-
* Call a Python function, with optional result caching.
|
|
288
|
-
*
|
|
289
|
-
* Overrides BasePythonBridge.call() to layer the cache lookup/writeback on
|
|
290
|
-
* top of the shared delegation. Cache lookup stays FIRST so cache hits return
|
|
291
|
-
* without forcing init, preserving the pre-composition behavior.
|
|
292
|
-
*/
|
|
293
|
-
async call(module, functionName, args, kwargs) {
|
|
294
|
-
// Check cache if enabled
|
|
295
|
-
if (this.resolvedOptions.enableCache) {
|
|
296
|
-
const cacheKey = this.safeCacheKey('runtime_call', module, functionName, args, kwargs);
|
|
297
|
-
if (cacheKey) {
|
|
298
|
-
const cached = await globalCache.get(cacheKey);
|
|
299
|
-
if (cached !== null) {
|
|
300
|
-
return cached;
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
// Execute and cache if pure function
|
|
304
|
-
const startTime = performance.now();
|
|
305
|
-
await this.ensureReady();
|
|
306
|
-
const result = await this.rpc.call(module, functionName, args, kwargs);
|
|
307
|
-
const duration = performance.now() - startTime;
|
|
308
|
-
if (cacheKey && this.isPureFunctionCandidate(functionName, args)) {
|
|
309
|
-
await globalCache.set(cacheKey, result, {
|
|
310
|
-
computeTime: duration,
|
|
311
|
-
dependencies: [module],
|
|
312
|
-
});
|
|
313
|
-
}
|
|
314
|
-
return result;
|
|
315
|
-
}
|
|
316
|
-
// No caching - direct call
|
|
317
|
-
await this.ensureReady();
|
|
318
|
-
return this.rpc.call(module, functionName, args, kwargs);
|
|
319
|
-
}
|
|
320
279
|
// ===========================================================================
|
|
321
280
|
// POOL STATISTICS
|
|
322
281
|
// ===========================================================================
|
|
@@ -355,43 +314,6 @@ export class NodeBridge extends BasePythonBridge {
|
|
|
355
314
|
busyWorkers: poolStats.totalInFlight,
|
|
356
315
|
};
|
|
357
316
|
}
|
|
358
|
-
// ===========================================================================
|
|
359
|
-
// PRIVATE HELPERS
|
|
360
|
-
// ===========================================================================
|
|
361
|
-
/**
|
|
362
|
-
* Generate a cache key, returning null if generation fails.
|
|
363
|
-
*/
|
|
364
|
-
safeCacheKey(prefix, ...inputs) {
|
|
365
|
-
try {
|
|
366
|
-
return globalCache.generateKey(prefix, ...inputs);
|
|
367
|
-
}
|
|
368
|
-
catch {
|
|
369
|
-
return null;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
/**
|
|
373
|
-
* Heuristic to determine if function result should be cached.
|
|
374
|
-
*/
|
|
375
|
-
isPureFunctionCandidate(functionName, args) {
|
|
376
|
-
const pureFunctionPatterns = [
|
|
377
|
-
/^(get|fetch|read|load|find|search|query|select)_/i,
|
|
378
|
-
/^(compute|calculate|process|transform|convert)_/i,
|
|
379
|
-
/^(encode|decode|serialize|deserialize)_/i,
|
|
380
|
-
];
|
|
381
|
-
const impureFunctionPatterns = [
|
|
382
|
-
/^(set|save|write|update|insert|delete|create|modify)_/i,
|
|
383
|
-
/^(send|post|put|patch)_/i,
|
|
384
|
-
/random|uuid|timestamp|now|current/i,
|
|
385
|
-
];
|
|
386
|
-
if (impureFunctionPatterns.some(pattern => pattern.test(functionName))) {
|
|
387
|
-
return false;
|
|
388
|
-
}
|
|
389
|
-
if (pureFunctionPatterns.some(pattern => pattern.test(functionName))) {
|
|
390
|
-
return true;
|
|
391
|
-
}
|
|
392
|
-
const hasComplexArgs = args.some(arg => arg !== null && typeof arg === 'object' && !(arg instanceof Date));
|
|
393
|
-
return !hasComplexArgs && args.length <= 3;
|
|
394
|
-
}
|
|
395
317
|
}
|
|
396
318
|
// =============================================================================
|
|
397
319
|
// WARMUP CALLBACK
|
package/dist/runtime/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/runtime/node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/runtime/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* PooledTransport -
|
|
2
|
+
* PooledTransport - Manages multiple Transport instances for concurrent request handling.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* and releases the worker back to the pool.
|
|
4
|
+
* Provides semaphore-based concurrency control with configurable limits per worker
|
|
5
|
+
* and a wait queue for callers when all workers are at capacity.
|
|
7
6
|
*
|
|
8
7
|
* @see https://github.com/bbopen/tywrap/issues/149
|
|
9
8
|
*/
|
|
10
9
|
import { DisposableBase } from './bounded-context.js';
|
|
11
10
|
import type { Transport, TransportCapabilities } from './transport.js';
|
|
12
|
-
import { type TransportLease } from './transport-pool.js';
|
|
13
11
|
/**
|
|
14
|
-
*
|
|
12
|
+
* Configuration options for the PooledTransport.
|
|
15
13
|
*/
|
|
16
14
|
export interface PooledTransportOptions {
|
|
17
|
-
/**
|
|
18
|
-
* Factory function to create transports for each worker.
|
|
19
|
-
*
|
|
20
|
-
* Construction MUST be side-effect-free — spawn processes/open connections in
|
|
21
|
-
* `init()`/`send()`, never in the constructor. The pool may build a probe
|
|
22
|
-
* instance solely to read its {@link Transport.capabilities} descriptor.
|
|
23
|
-
*/
|
|
15
|
+
/** Factory function to create transports */
|
|
24
16
|
createTransport: () => Transport;
|
|
25
|
-
/** Maximum number of workers in the pool
|
|
17
|
+
/** Maximum number of workers in the pool */
|
|
26
18
|
maxWorkers?: number;
|
|
27
19
|
/** Minimum number of workers to pre-spawn during init. Default: 0 (lazy) */
|
|
28
20
|
minWorkers?: number;
|
|
29
21
|
/** Timeout for waiting in queue (ms). Default: 30000 */
|
|
30
22
|
queueTimeoutMs?: number;
|
|
31
|
-
/** Maximum concurrent requests per worker. Default:
|
|
23
|
+
/** Maximum concurrent requests per worker. Default: 1 */
|
|
32
24
|
maxConcurrentPerWorker?: number;
|
|
33
25
|
/**
|
|
34
26
|
* Callback invoked after each worker is created and initialized.
|
|
@@ -36,44 +28,55 @@ export interface PooledTransportOptions {
|
|
|
36
28
|
*/
|
|
37
29
|
onWorkerReady?: (worker: TransportLease) => Promise<void>;
|
|
38
30
|
/**
|
|
39
|
-
* Optional callback used only for background replacement workers
|
|
31
|
+
* Optional callback used only for background replacement workers after a
|
|
32
|
+
* fatal timeout/crash. This lets callers publish a replacement only after it
|
|
33
|
+
* is proven ready, without charging hidden work to normal request startup.
|
|
40
34
|
*/
|
|
41
35
|
onReplacementWorkerReady?: (worker: TransportLease) => Promise<void>;
|
|
42
36
|
}
|
|
43
37
|
/**
|
|
44
|
-
*
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
* A pooled worker with its transport and current in-flight request count.
|
|
39
|
+
*/
|
|
40
|
+
export interface TransportLease {
|
|
41
|
+
/** The underlying transport instance */
|
|
42
|
+
transport: Transport;
|
|
43
|
+
/** Number of requests currently being processed by this worker */
|
|
44
|
+
inFlightCount: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Pool of Transport workers with semaphore-based concurrency control.
|
|
48
48
|
*
|
|
49
49
|
* Features:
|
|
50
|
-
* - Lazy worker creation (
|
|
51
|
-
* - Configurable
|
|
52
|
-
* -
|
|
53
|
-
* -
|
|
50
|
+
* - Lazy worker creation (workers created on demand)
|
|
51
|
+
* - Configurable concurrency per worker
|
|
52
|
+
* - Wait queue with timeout for callers when pool is at capacity
|
|
53
|
+
* - Automatic cleanup of timers and workers on disposal
|
|
54
54
|
*
|
|
55
55
|
* @example
|
|
56
56
|
* ```typescript
|
|
57
|
-
* const
|
|
58
|
-
* createTransport: () => new SubprocessTransport({
|
|
59
|
-
* bridgeScript: '/path/to/bridge.py',
|
|
60
|
-
* }),
|
|
57
|
+
* const pool = new PooledTransport({
|
|
58
|
+
* createTransport: () => new SubprocessTransport({ pythonPath: 'python3' }),
|
|
61
59
|
* maxWorkers: 4,
|
|
62
60
|
* maxConcurrentPerWorker: 2,
|
|
61
|
+
* queueTimeoutMs: 5000,
|
|
63
62
|
* });
|
|
64
63
|
*
|
|
65
|
-
* await
|
|
64
|
+
* await pool.init();
|
|
66
65
|
*
|
|
67
|
-
* //
|
|
68
|
-
* const
|
|
66
|
+
* // Use withWorker for automatic acquire/release
|
|
67
|
+
* const result = await pool.withWorker(async (worker) => {
|
|
68
|
+
* return worker.transport.send(message, timeout);
|
|
69
|
+
* });
|
|
69
70
|
*
|
|
70
|
-
* await
|
|
71
|
+
* await pool.dispose();
|
|
71
72
|
* ```
|
|
72
73
|
*/
|
|
73
74
|
export declare class PooledTransport extends DisposableBase implements Transport {
|
|
74
|
-
private readonly
|
|
75
|
-
private
|
|
76
|
-
|
|
75
|
+
private readonly options;
|
|
76
|
+
private readonly workers;
|
|
77
|
+
private readonly waitQueue;
|
|
78
|
+
/** Tracks workers being created to prevent race condition in acquire() */
|
|
79
|
+
private pendingCreations;
|
|
77
80
|
private cachedCapabilities?;
|
|
78
81
|
/**
|
|
79
82
|
* Create a new PooledTransport.
|
|
@@ -81,47 +84,79 @@ export declare class PooledTransport extends DisposableBase implements Transport
|
|
|
81
84
|
* @param options - Pool configuration options
|
|
82
85
|
*/
|
|
83
86
|
constructor(options: PooledTransportOptions);
|
|
87
|
+
send(message: string, timeoutMs: number, signal?: AbortSignal, requestId?: number): Promise<string>;
|
|
88
|
+
capabilities(): TransportCapabilities;
|
|
84
89
|
/**
|
|
85
|
-
* Initialize the
|
|
90
|
+
* Initialize the pool.
|
|
86
91
|
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
92
|
+
* If minWorkers > 0, pre-spawns workers during initialization.
|
|
93
|
+
* Otherwise, workers are created lazily on demand.
|
|
89
94
|
*/
|
|
90
95
|
protected doInit(): Promise<void>;
|
|
91
96
|
/**
|
|
92
|
-
* Dispose the
|
|
97
|
+
* Dispose the pool and all workers.
|
|
93
98
|
*
|
|
94
|
-
*
|
|
99
|
+
* - Rejects all waiters in the queue
|
|
100
|
+
* - Disposes all transport instances
|
|
101
|
+
* - Clears internal state
|
|
95
102
|
*/
|
|
96
103
|
protected doDispose(): Promise<void>;
|
|
97
104
|
/**
|
|
98
|
-
*
|
|
105
|
+
* Acquire a worker from the pool.
|
|
99
106
|
*
|
|
100
107
|
* This method:
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
108
|
+
* - Returns an available worker if one exists (inFlightCount < maxConcurrentPerWorker)
|
|
109
|
+
* - Creates a new worker if under the maxWorkers limit
|
|
110
|
+
* - Waits in queue if all workers are at capacity
|
|
111
|
+
*
|
|
112
|
+
* @returns Promise resolving to a pooled worker
|
|
113
|
+
* @throws BridgeTimeoutError if queue timeout expires
|
|
114
|
+
* @throws BridgeExecutionError if pool is disposed while waiting
|
|
115
|
+
*/
|
|
116
|
+
acquire(): Promise<TransportLease>;
|
|
117
|
+
/**
|
|
118
|
+
* Release a worker back to the pool.
|
|
104
119
|
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* @param signal - Optional AbortSignal for cancellation
|
|
108
|
-
* @returns The raw JSON response string
|
|
120
|
+
* Decrements the worker's in-flight count and notifies any waiters
|
|
121
|
+
* that a worker may be available.
|
|
109
122
|
*
|
|
110
|
-
* @
|
|
111
|
-
* @throws BridgeTimeoutError if queue timeout or request timeout expires
|
|
123
|
+
* @param worker - The worker to release
|
|
112
124
|
*/
|
|
113
|
-
|
|
125
|
+
release(worker: TransportLease): void;
|
|
114
126
|
/**
|
|
115
|
-
*
|
|
127
|
+
* Execute a function with an acquired worker, automatically releasing afterward.
|
|
116
128
|
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
129
|
+
* This is the recommended way to use the pool, as it ensures proper cleanup
|
|
130
|
+
* even if the function throws an error.
|
|
131
|
+
*
|
|
132
|
+
* @param fn - Async function to execute with the worker
|
|
133
|
+
* @returns Promise resolving to the function's return value
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* const result = await pool.withWorker(async (worker) => {
|
|
138
|
+
* return worker.transport.send(message, timeout);
|
|
139
|
+
* });
|
|
140
|
+
* ```
|
|
123
141
|
*/
|
|
124
|
-
|
|
142
|
+
withWorker<T>(fn: (worker: TransportLease) => Promise<T>): Promise<T>;
|
|
143
|
+
/**
|
|
144
|
+
* Check if an error indicates the worker is dead and should be removed.
|
|
145
|
+
*
|
|
146
|
+
* Fatal errors include:
|
|
147
|
+
* - Process not running
|
|
148
|
+
* - Process exited unexpectedly
|
|
149
|
+
* - Pipe errors (EPIPE)
|
|
150
|
+
* - Connection reset errors (ECONNRESET)
|
|
151
|
+
*/
|
|
152
|
+
private isFatalWorkerError;
|
|
153
|
+
/**
|
|
154
|
+
* Remove a worker from the pool.
|
|
155
|
+
*
|
|
156
|
+
* This is called when a worker is detected as dead (crashed, pipe error, etc.).
|
|
157
|
+
* The worker's transport is disposed in the background.
|
|
158
|
+
*/
|
|
159
|
+
private removeWorker;
|
|
125
160
|
/**
|
|
126
161
|
* Current number of workers in the pool.
|
|
127
162
|
*/
|
|
@@ -134,5 +169,31 @@ export declare class PooledTransport extends DisposableBase implements Transport
|
|
|
134
169
|
* Total number of in-flight requests across all workers.
|
|
135
170
|
*/
|
|
136
171
|
get totalInFlight(): number;
|
|
172
|
+
/**
|
|
173
|
+
* Find an available worker with capacity for another request.
|
|
174
|
+
*/
|
|
175
|
+
private findAvailableWorker;
|
|
176
|
+
private getMinimumWorkerDeficit;
|
|
177
|
+
private isShuttingDown;
|
|
178
|
+
private fillToMinimumWorkers;
|
|
179
|
+
private spawnWorkers;
|
|
180
|
+
/**
|
|
181
|
+
* Replace a removed worker in the background so the next caller does not pay
|
|
182
|
+
* the full worker cold-start penalty after a timeout or crash.
|
|
183
|
+
*/
|
|
184
|
+
private scheduleReplacementWorker;
|
|
185
|
+
private spawnWorkerToPool;
|
|
186
|
+
private publishAvailableWorker;
|
|
187
|
+
/**
|
|
188
|
+
* Create a new worker and add it to the pool.
|
|
189
|
+
*
|
|
190
|
+
* If onWorkerReady is configured, calls it after the transport is initialized.
|
|
191
|
+
* This is useful for per-worker warmup (importing modules, running setup).
|
|
192
|
+
*/
|
|
193
|
+
private createWorker;
|
|
194
|
+
/**
|
|
195
|
+
* Wait in queue for a worker to become available.
|
|
196
|
+
*/
|
|
197
|
+
private waitForWorker;
|
|
137
198
|
}
|
|
138
199
|
//# sourceMappingURL=pooled-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pooled-transport.d.ts","sourceRoot":"","sources":["../../src/runtime/pooled-transport.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pooled-transport.d.ts","sourceRoot":"","sources":["../../src/runtime/pooled-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAOtD,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAMvE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,eAAe,EAAE,MAAM,SAAS,CAAC;IAEjC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,yDAAyD;IACzD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,SAAS,EAAE,SAAS,CAAC;IAErB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;CACvB;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,eAAgB,SAAQ,cAAe,YAAW,SAAS;IACtE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAMtB;IACF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,0EAA0E;IAC1E,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,kBAAkB,CAAC,CAAwB;IAEnD;;;;OAIG;gBACS,OAAO,EAAE,sBAAsB;IA4BrC,IAAI,CACR,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC;IAUlB,YAAY,IAAI,qBAAqB;IASrC;;;;;OAKG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvC;;;;;;OAMG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC1C;;;;;;;;;;;OAWG;IACG,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAqCxC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAWrC;;;;;;;;;;;;;;;OAeG;IACG,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAyB3E;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAMD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,cAAc;YAIR,oBAAoB;YAIpB,YAAY;IAY1B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;YAmBnB,iBAAiB;IAc/B,OAAO,CAAC,sBAAsB;IAe9B;;;;;OAKG;YACW,YAAY;IAoC1B;;OAEG;IACH,OAAO,CAAC,aAAa;CAuBtB"}
|