tywrap 0.2.1 → 0.4.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 (144) hide show
  1. package/README.md +100 -32
  2. package/dist/cli.js +70 -5
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config/index.d.ts +11 -7
  5. package/dist/config/index.d.ts.map +1 -1
  6. package/dist/config/index.js +62 -20
  7. package/dist/config/index.js.map +1 -1
  8. package/dist/core/analyzer.d.ts +1 -0
  9. package/dist/core/analyzer.d.ts.map +1 -1
  10. package/dist/core/analyzer.js +46 -12
  11. package/dist/core/analyzer.js.map +1 -1
  12. package/dist/core/annotation-parser.d.ts +8 -0
  13. package/dist/core/annotation-parser.d.ts.map +1 -0
  14. package/dist/core/annotation-parser.js +409 -0
  15. package/dist/core/annotation-parser.js.map +1 -0
  16. package/dist/core/discovery.d.ts +1 -0
  17. package/dist/core/discovery.d.ts.map +1 -1
  18. package/dist/core/discovery.js +9 -9
  19. package/dist/core/discovery.js.map +1 -1
  20. package/dist/core/generator.d.ts +9 -1
  21. package/dist/core/generator.d.ts.map +1 -1
  22. package/dist/core/generator.js +738 -104
  23. package/dist/core/generator.js.map +1 -1
  24. package/dist/core/mapper.d.ts +9 -7
  25. package/dist/core/mapper.d.ts.map +1 -1
  26. package/dist/core/mapper.js +129 -44
  27. package/dist/core/mapper.js.map +1 -1
  28. package/dist/dev.d.ts +57 -0
  29. package/dist/dev.d.ts.map +1 -0
  30. package/dist/dev.js +743 -0
  31. package/dist/dev.js.map +1 -0
  32. package/dist/index.d.ts +8 -7
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +4 -4
  35. package/dist/index.js.map +1 -1
  36. package/dist/runtime/bridge-core.d.ts +1 -0
  37. package/dist/runtime/bridge-core.d.ts.map +1 -1
  38. package/dist/runtime/bridge-core.js +52 -17
  39. package/dist/runtime/bridge-core.js.map +1 -1
  40. package/dist/runtime/bridge-protocol.d.ts +17 -0
  41. package/dist/runtime/bridge-protocol.d.ts.map +1 -1
  42. package/dist/runtime/bridge-protocol.js +97 -0
  43. package/dist/runtime/bridge-protocol.js.map +1 -1
  44. package/dist/runtime/errors.d.ts +10 -0
  45. package/dist/runtime/errors.d.ts.map +1 -1
  46. package/dist/runtime/errors.js +9 -0
  47. package/dist/runtime/errors.js.map +1 -1
  48. package/dist/runtime/http-io.d.ts.map +1 -1
  49. package/dist/runtime/http-io.js.map +1 -1
  50. package/dist/runtime/http.d.ts +1 -0
  51. package/dist/runtime/http.d.ts.map +1 -1
  52. package/dist/runtime/http.js +6 -0
  53. package/dist/runtime/http.js.map +1 -1
  54. package/dist/runtime/node.d.ts.map +1 -1
  55. package/dist/runtime/node.js +206 -32
  56. package/dist/runtime/node.js.map +1 -1
  57. package/dist/runtime/optimized-node.d.ts +6 -5
  58. package/dist/runtime/optimized-node.d.ts.map +1 -1
  59. package/dist/runtime/optimized-node.js +6 -5
  60. package/dist/runtime/optimized-node.js.map +1 -1
  61. package/dist/runtime/pooled-transport.d.ts +4 -0
  62. package/dist/runtime/pooled-transport.d.ts.map +1 -1
  63. package/dist/runtime/pooled-transport.js +2 -0
  64. package/dist/runtime/pooled-transport.js.map +1 -1
  65. package/dist/runtime/process-io.d.ts +5 -0
  66. package/dist/runtime/process-io.d.ts.map +1 -1
  67. package/dist/runtime/process-io.js +64 -30
  68. package/dist/runtime/process-io.js.map +1 -1
  69. package/dist/runtime/pyodide-io.d.ts +4 -5
  70. package/dist/runtime/pyodide-io.d.ts.map +1 -1
  71. package/dist/runtime/pyodide-io.js +99 -37
  72. package/dist/runtime/pyodide-io.js.map +1 -1
  73. package/dist/runtime/safe-codec.d.ts +25 -3
  74. package/dist/runtime/safe-codec.d.ts.map +1 -1
  75. package/dist/runtime/safe-codec.js +231 -57
  76. package/dist/runtime/safe-codec.js.map +1 -1
  77. package/dist/runtime/transport.d.ts +6 -1
  78. package/dist/runtime/transport.d.ts.map +1 -1
  79. package/dist/runtime/transport.js.map +1 -1
  80. package/dist/runtime/validators.d.ts +0 -11
  81. package/dist/runtime/validators.d.ts.map +1 -1
  82. package/dist/runtime/validators.js +13 -3
  83. package/dist/runtime/validators.js.map +1 -1
  84. package/dist/runtime/worker-pool.d.ts +17 -0
  85. package/dist/runtime/worker-pool.d.ts.map +1 -1
  86. package/dist/runtime/worker-pool.js +97 -22
  87. package/dist/runtime/worker-pool.js.map +1 -1
  88. package/dist/types/index.d.ts +51 -8
  89. package/dist/types/index.d.ts.map +1 -1
  90. package/dist/tywrap.d.ts +6 -0
  91. package/dist/tywrap.d.ts.map +1 -1
  92. package/dist/tywrap.js +237 -331
  93. package/dist/tywrap.js.map +1 -1
  94. package/dist/utils/cache.d.ts.map +1 -1
  95. package/dist/utils/cache.js +53 -5
  96. package/dist/utils/cache.js.map +1 -1
  97. package/dist/utils/codec.d.ts.map +1 -1
  98. package/dist/utils/codec.js +10 -16
  99. package/dist/utils/codec.js.map +1 -1
  100. package/dist/utils/ir-cache.d.ts +28 -0
  101. package/dist/utils/ir-cache.d.ts.map +1 -0
  102. package/dist/utils/ir-cache.js +29 -0
  103. package/dist/utils/ir-cache.js.map +1 -0
  104. package/dist/utils/parallel-processor.d.ts +1 -1
  105. package/dist/utils/parallel-processor.d.ts.map +1 -1
  106. package/dist/utils/parallel-processor.js +111 -40
  107. package/dist/utils/parallel-processor.js.map +1 -1
  108. package/dist/utils/runtime.d.ts +5 -1
  109. package/dist/utils/runtime.d.ts.map +1 -1
  110. package/dist/utils/runtime.js +112 -18
  111. package/dist/utils/runtime.js.map +1 -1
  112. package/package.json +47 -21
  113. package/runtime/python_bridge.py +78 -12
  114. package/src/cli.ts +85 -5
  115. package/src/config/index.ts +91 -32
  116. package/src/core/analyzer.ts +51 -15
  117. package/src/core/annotation-parser.ts +500 -0
  118. package/src/core/discovery.ts +26 -12
  119. package/src/core/generator.ts +956 -116
  120. package/src/core/mapper.ts +158 -51
  121. package/src/dev.ts +983 -0
  122. package/src/index.ts +35 -6
  123. package/src/runtime/bridge-core.ts +58 -18
  124. package/src/runtime/bridge-protocol.ts +164 -0
  125. package/src/runtime/errors.ts +14 -0
  126. package/src/runtime/http-io.ts +2 -1
  127. package/src/runtime/http.ts +7 -0
  128. package/src/runtime/node.ts +312 -46
  129. package/src/runtime/optimized-node.ts +9 -5
  130. package/src/runtime/pooled-transport.ts +12 -1
  131. package/src/runtime/process-io.ts +83 -55
  132. package/src/runtime/pyodide-io.ts +110 -44
  133. package/src/runtime/safe-codec.ts +290 -82
  134. package/src/runtime/transport.ts +6 -1
  135. package/src/runtime/validators.ts +14 -3
  136. package/src/runtime/worker-pool.ts +120 -24
  137. package/src/types/global.d.ts +11 -1
  138. package/src/types/index.ts +63 -8
  139. package/src/tywrap.ts +296 -361
  140. package/src/utils/cache.ts +59 -5
  141. package/src/utils/codec.ts +11 -15
  142. package/src/utils/ir-cache.ts +51 -0
  143. package/src/utils/parallel-processor.ts +119 -43
  144. package/src/utils/runtime.ts +129 -18
@@ -15,6 +15,7 @@
15
15
  import { spawn } from 'child_process';
16
16
  import { BoundedContext } from './bounded-context.js';
17
17
  import { BridgeDisposedError, BridgeProtocolError, BridgeTimeoutError, BridgeExecutionError, } from './errors.js';
18
+ import { TimedOutRequestTracker } from './timed-out-request-tracker.js';
18
19
  // =============================================================================
19
20
  // CONSTANTS
20
21
  // =============================================================================
@@ -24,6 +25,8 @@ const DEFAULT_MAX_LINE_LENGTH = 100 * 1024 * 1024;
24
25
  const MAX_STDERR_BYTES = 8 * 1024;
25
26
  /** Default write queue timeout: 30 seconds */
26
27
  const DEFAULT_WRITE_QUEUE_TIMEOUT_MS = 30_000;
28
+ /** Track timed-out/cancelled request IDs long enough to ignore late responses. */
29
+ const TIMED_OUT_REQUEST_TTL_MS = 10 * 60 * 1000;
27
30
  /** Regex for ANSI escape sequences */
28
31
  const ANSI_ESCAPE_RE = /\u001b\[[0-9;]*[A-Za-z]/g;
29
32
  /** Regex for control characters */
@@ -38,13 +41,25 @@ function sanitizeStderr(value) {
38
41
  return value.replace(ANSI_ESCAPE_RE, '').replace(CONTROL_CHARS_RE, '');
39
42
  }
40
43
  /**
41
- * Extract message ID from a JSON string without full parsing.
44
+ * Extract top-level message ID from a JSON string.
42
45
  * Returns null if ID cannot be extracted.
43
46
  */
44
47
  function extractMessageId(json) {
45
- // Look for "id": <number> (integer IDs)
46
- const match = json.match(/"id"\s*:\s*(-?\d+)/);
47
- return match?.[1] ? parseInt(match[1], 10) : null;
48
+ let parsed;
49
+ try {
50
+ parsed = JSON.parse(json);
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
56
+ return null;
57
+ }
58
+ const id = parsed.id;
59
+ if (typeof id !== 'number' || !Number.isInteger(id)) {
60
+ return null;
61
+ }
62
+ return id;
48
63
  }
49
64
  // =============================================================================
50
65
  // PROCESS IO TRANSPORT
@@ -92,6 +107,9 @@ export class ProcessIO extends BoundedContext {
92
107
  stderrBuffer = '';
93
108
  // Request tracking
94
109
  pending = new Map();
110
+ timedOutRequests = new TimedOutRequestTracker({
111
+ ttlMs: TIMED_OUT_REQUEST_TTL_MS,
112
+ });
95
113
  requestCount = 0;
96
114
  needsRestart = false;
97
115
  // Write queue for backpressure
@@ -145,11 +163,12 @@ export class ProcessIO extends BoundedContext {
145
163
  }
146
164
  // Extract message ID for response correlation
147
165
  const messageId = extractMessageId(message);
148
- if (!messageId) {
166
+ if (messageId === null) {
149
167
  throw new BridgeProtocolError('Message must contain an "id" field');
150
168
  }
151
169
  // Check for restart condition (either scheduled restart or forced by stream error)
152
- if (this.needsRestart || (this.restartAfterRequests > 0 && this.requestCount >= this.restartAfterRequests)) {
170
+ if (this.needsRestart ||
171
+ (this.restartAfterRequests > 0 && this.requestCount >= this.restartAfterRequests)) {
153
172
  await this.restartProcess();
154
173
  }
155
174
  // Create promise for response
@@ -159,6 +178,7 @@ export class ProcessIO extends BoundedContext {
159
178
  if (timeoutMs > 0) {
160
179
  timer = setTimeout(() => {
161
180
  this.pending.delete(messageId);
181
+ this.timedOutRequests.mark(messageId);
162
182
  const stderrTail = this.getStderrTail();
163
183
  const baseMsg = `Operation timed out after ${timeoutMs}ms`;
164
184
  const msg = stderrTail ? `${baseMsg}. Recent stderr:\n${stderrTail}` : baseMsg;
@@ -171,6 +191,7 @@ export class ProcessIO extends BoundedContext {
171
191
  clearTimeout(timer);
172
192
  }
173
193
  this.pending.delete(messageId);
194
+ this.timedOutRequests.mark(messageId);
174
195
  reject(new BridgeTimeoutError('Operation aborted'));
175
196
  };
176
197
  if (signal) {
@@ -224,9 +245,7 @@ export class ProcessIO extends BoundedContext {
224
245
  async doDispose() {
225
246
  // Reject all pending requests
226
247
  const stderrTail = this.getStderrTail();
227
- const msg = stderrTail
228
- ? `Transport disposed. Stderr:\n${stderrTail}`
229
- : 'Transport disposed';
248
+ const msg = stderrTail ? `Transport disposed. Stderr:\n${stderrTail}` : 'Transport disposed';
230
249
  const error = new BridgeDisposedError(msg);
231
250
  for (const [, pending] of this.pending) {
232
251
  if (pending.timer) {
@@ -246,6 +265,7 @@ export class ProcessIO extends BoundedContext {
246
265
  // Clear buffers
247
266
  this.stdoutBuffer = '';
248
267
  this.stderrBuffer = '';
268
+ this.timedOutRequests.clear();
249
269
  this.requestCount = 0;
250
270
  }
251
271
  // ===========================================================================
@@ -398,8 +418,7 @@ export class ProcessIO extends BoundedContext {
398
418
  handleStdoutData(chunk) {
399
419
  this.stdoutBuffer += chunk.toString();
400
420
  // Check for excessive line length without newline
401
- if (this.stdoutBuffer.length > this.maxLineLength &&
402
- !this.stdoutBuffer.includes('\n')) {
421
+ if (this.stdoutBuffer.length > this.maxLineLength && !this.stdoutBuffer.includes('\n')) {
403
422
  const snippet = this.stdoutBuffer.slice(0, 500);
404
423
  this.stdoutBuffer = '';
405
424
  this.handleProtocolError(`Response line exceeded ${this.maxLineLength} bytes`, snippet);
@@ -429,14 +448,18 @@ export class ProcessIO extends BoundedContext {
429
448
  handleResponseLine(line) {
430
449
  // Extract ID to find pending request
431
450
  const messageId = extractMessageId(line);
432
- if (!messageId) {
451
+ if (messageId === null) {
433
452
  this.handleProtocolError('Response missing "id" field', line);
434
453
  return;
435
454
  }
436
455
  const pending = this.pending.get(messageId);
437
456
  if (!pending) {
438
- // Response for unknown request - could be for a timed-out request
439
- // Log but don't fail
457
+ // Ignore expected late responses from timed-out/cancelled requests.
458
+ if (this.timedOutRequests.consume(messageId)) {
459
+ return;
460
+ }
461
+ // Unknown IDs while requests are pending indicate protocol desync.
462
+ this.handleProtocolError(`Unexpected response id ${messageId}`, line);
440
463
  return;
441
464
  }
442
465
  // Remove from pending
@@ -507,7 +530,7 @@ export class ProcessIO extends BoundedContext {
507
530
  */
508
531
  handleStdinError(err) {
509
532
  // EPIPE means process died
510
- const error = new BridgeProtocolError(`stdin error: ${err.message}`);
533
+ const error = new BridgeProtocolError(this.withStderrTail(`stdin error: ${err.message}`));
511
534
  // Reject all pending writes
512
535
  for (const queued of this.writeQueue) {
513
536
  this.clearQueuedWriteTimeout(queued);
@@ -524,7 +547,7 @@ export class ProcessIO extends BoundedContext {
524
547
  * This can occur during pipe errors or when the process crashes.
525
548
  */
526
549
  handleStdoutError(err) {
527
- const error = new BridgeProtocolError(`stdout error: ${err.message}`);
550
+ const error = new BridgeProtocolError(this.withStderrTail(`stdout error: ${err.message}`));
528
551
  this.rejectAllPending(error);
529
552
  this.markForRestart();
530
553
  }
@@ -534,7 +557,7 @@ export class ProcessIO extends BoundedContext {
534
557
  */
535
558
  handleStderrError(err) {
536
559
  // Stderr errors are less critical but still indicate process health issues
537
- const error = new BridgeProtocolError(`stderr error: ${err.message}`);
560
+ const error = new BridgeProtocolError(this.withStderrTail(`stderr error: ${err.message}`));
538
561
  this.rejectAllPending(error);
539
562
  this.markForRestart();
540
563
  }
@@ -557,8 +580,10 @@ export class ProcessIO extends BoundedContext {
557
580
  reject(new BridgeTimeoutError(`Write queue timeout: entry waited ${this.writeQueueTimeoutMs}ms without drain`));
558
581
  }
559
582
  }, this.writeQueueTimeoutMs);
560
- // Unref the timer so it doesn't keep the process alive
561
- entry.timeoutHandle.unref();
583
+ // Unref the timer so it doesn't keep the process alive (best-effort for non-Node runtimes)
584
+ if (typeof entry.timeoutHandle.unref === 'function') {
585
+ entry.timeoutHandle.unref();
586
+ }
562
587
  return entry;
563
588
  }
564
589
  /**
@@ -576,7 +601,7 @@ export class ProcessIO extends BoundedContext {
576
601
  writeToStdin(data) {
577
602
  return new Promise((resolve, reject) => {
578
603
  if (!this.process?.stdin || this.processExited) {
579
- reject(new BridgeProtocolError('Process stdin not available'));
604
+ reject(new BridgeProtocolError(this.withStderrTail('Process stdin not available')));
580
605
  return;
581
606
  }
582
607
  if (this.draining || this.writeQueue.length > 0) {
@@ -591,15 +616,17 @@ export class ProcessIO extends BoundedContext {
591
616
  resolve();
592
617
  }
593
618
  else {
594
- // Backpressure - queue this write and set draining flag
619
+ // Backpressure - current write is accepted by Node's stream buffer.
620
+ // We only pause subsequent writes until "drain".
595
621
  this.draining = true;
596
- this.writeQueue.push(this.createQueuedWrite(data, resolve, reject));
622
+ resolve();
597
623
  }
598
624
  }
599
625
  catch (err) {
600
626
  // Synchronous write error (e.g., EPIPE)
601
627
  this.markForRestart();
602
- reject(new BridgeProtocolError(`Write error: ${err instanceof Error ? err.message : 'unknown'}`));
628
+ const errorMessage = err instanceof Error ? err.message : 'unknown';
629
+ reject(new BridgeProtocolError(this.withStderrTail(`Write error: ${errorMessage}`)));
603
630
  }
604
631
  });
605
632
  }
@@ -613,7 +640,7 @@ export class ProcessIO extends BoundedContext {
613
640
  // Process died - reject all queued writes
614
641
  for (const q of this.writeQueue) {
615
642
  this.clearQueuedWriteTimeout(q);
616
- q.reject(new BridgeProtocolError('Process stdin not available'));
643
+ q.reject(new BridgeProtocolError(this.withStderrTail('Process stdin not available')));
617
644
  }
618
645
  this.writeQueue.length = 0;
619
646
  this.markForRestart();
@@ -636,15 +663,17 @@ export class ProcessIO extends BoundedContext {
636
663
  queued.resolve();
637
664
  }
638
665
  else {
639
- // Still under pressure - put it back with a new timeout
640
- this.writeQueue.unshift(this.createQueuedWrite(queued.data, queued.resolve, queued.reject));
666
+ // Backpressure - this write has been accepted by stream buffer.
667
+ // Pause further queued writes until the next "drain" event.
668
+ queued.resolve();
641
669
  this.draining = true;
642
670
  return;
643
671
  }
644
672
  }
645
673
  catch (err) {
646
674
  // Synchronous write error (e.g., EPIPE) - reject this and all remaining writes
647
- const error = new BridgeProtocolError(`Write error: ${err instanceof Error ? err.message : 'unknown'}`);
675
+ const errorMessage = err instanceof Error ? err.message : 'unknown';
676
+ const error = new BridgeProtocolError(this.withStderrTail(`Write error: ${errorMessage}`));
648
677
  queued.reject(error);
649
678
  for (const q of this.writeQueue) {
650
679
  this.clearQueuedWriteTimeout(q);
@@ -665,13 +694,18 @@ export class ProcessIO extends BoundedContext {
665
694
  getStderrTail() {
666
695
  return this.stderrBuffer.trim();
667
696
  }
697
+ /**
698
+ * Append stderr context when available.
699
+ */
700
+ withStderrTail(message) {
701
+ const stderrTail = this.getStderrTail();
702
+ return stderrTail ? `${message}. Stderr:\n${stderrTail}` : message;
703
+ }
668
704
  /**
669
705
  * Handle a protocol error by rejecting all pending requests.
670
706
  */
671
707
  handleProtocolError(details, line) {
672
- const snippet = line
673
- ? line.length > 500 ? `${line.slice(0, 500)}...` : line
674
- : undefined;
708
+ const snippet = line ? (line.length > 500 ? `${line.slice(0, 500)}...` : line) : undefined;
675
709
  const hint = 'Ensure Python code does not print to stdout and bridge outputs only JSON lines.';
676
710
  const msg = snippet
677
711
  ? `Protocol error: ${details}\n${hint}\nOffending line: ${snippet}`
@@ -1 +1 @@
1
- {"version":3,"file":"process-io.js","sourceRoot":"","sources":["../../src/runtime/process-io.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-io.js","sourceRoot":"","sources":["../../src/runtime/process-io.ts"],"names":[],"mappings":"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"}
@@ -37,11 +37,10 @@ export interface PyodideIOOptions {
37
37
  *
38
38
  * const response = await transport.send(
39
39
  * JSON.stringify({
40
- * id: '1',
41
- * type: 'call',
42
- * module: 'math',
43
- * functionName: 'sqrt',
44
- * args: [16]
40
+ * id: 1,
41
+ * protocol: 'tywrap/1',
42
+ * method: 'call',
43
+ * params: { module: 'math', functionName: 'sqrt', args: [16], kwargs: {} }
45
44
  * }),
46
45
  * 5000
47
46
  * );
@@ -1 +1 @@
1
- {"version":3,"file":"pyodide-io.d.ts","sourceRoot":"","sources":["../../src/runtime/pyodide-io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAe,KAAK,SAAS,EAA+C,MAAM,gBAAgB,CAAC;AAM1G;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AA0GD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,SAAU,SAAQ,cAAe,YAAW,SAAS;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,EAAE,CAAC,CAAkB;IAE7B;;;;OAIG;gBACS,OAAO,GAAE,gBAAqB;IAU1C;;;;;;;;;;OAUG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBvC;;;;;OAKG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1C;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAuDrF;;;;OAIG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IAiBb;;;;OAIG;IACG,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IAiBb;;;;OAIG;IACG,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IAiBb;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBpD;;;;;OAKG;YACW,kBAAkB;IAqBhC;;OAEG;YACW,mBAAmB;IAOjC;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CASvB"}
1
+ {"version":3,"file":"pyodide-io.d.ts","sourceRoot":"","sources":["../../src/runtime/pyodide-io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAEL,KAAK,SAAS,EAGf,MAAM,gBAAgB,CAAC;AAMxB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AA2JD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,SAAU,SAAQ,cAAe,YAAW,SAAS;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,EAAE,CAAC,CAAkB;IAE7B;;;;OAIG;gBACS,OAAO,GAAE,gBAAqB;IAU1C;;;;;;;;;;OAUG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBvC;;;;;OAKG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1C;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAqErF;;;;OAIG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IAiBb;;;;OAIG;IACG,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IAiBb;;;;OAIG;IACG,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IAiBb;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBpD;;;;;OAKG;YACW,kBAAkB;IAqBhC;;OAEG;YACW,mBAAmB;IAOjC;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CASvB"}
@@ -15,12 +15,12 @@
15
15
  */
16
16
  import { BoundedContext } from './bounded-context.js';
17
17
  import { BridgeExecutionError, BridgeProtocolError } from './errors.js';
18
- import { PROTOCOL_ID } from './transport.js';
18
+ import { PROTOCOL_ID, } from './transport.js';
19
19
  // =============================================================================
20
20
  // CONSTANTS
21
21
  // =============================================================================
22
22
  /** Default Pyodide CDN URL */
23
- const DEFAULT_INDEX_URL = 'https://cdn.jsdelivr.net/pyodide/v0.24.1/full/';
23
+ const DEFAULT_INDEX_URL = 'https://cdn.jsdelivr.net/pyodide/v0.28.0/full/';
24
24
  /**
25
25
  * Bootstrap Python code that sets up the dispatch function.
26
26
  *
@@ -34,6 +34,27 @@ import json
34
34
  import importlib
35
35
 
36
36
  __tywrap_instances = {}
37
+ __tywrap_protocol = 'tywrap/1'
38
+
39
+ def __tywrap_require_str(params, key):
40
+ value = params.get(key)
41
+ if not isinstance(value, str) or not value:
42
+ raise ValueError(f'Missing {key}')
43
+ return value
44
+
45
+ def __tywrap_coerce_list(value, key):
46
+ if value is None:
47
+ return []
48
+ if not isinstance(value, list):
49
+ raise ValueError(f'Invalid {key}')
50
+ return value
51
+
52
+ def __tywrap_coerce_dict(value, key):
53
+ if value is None:
54
+ return {}
55
+ if not isinstance(value, dict):
56
+ raise ValueError(f'Invalid {key}')
57
+ return value
37
58
 
38
59
  def __tywrap_dispatch(message_json):
39
60
  """
@@ -46,48 +67,76 @@ def __tywrap_dispatch(message_json):
46
67
  JSON-encoded ProtocolResponse string
47
68
  """
48
69
  msg = None
70
+ msg_id = -1
49
71
  try:
50
72
  msg = json.loads(message_json)
51
- msg_id = msg['id']
52
- msg_type = msg['type']
73
+ if not isinstance(msg, dict):
74
+ raise ValueError('Invalid request payload')
75
+
76
+ msg_id = msg.get('id')
77
+ if not isinstance(msg_id, int):
78
+ raise ValueError(f'Invalid request id: {msg_id}')
79
+
80
+ protocol = msg.get('protocol')
81
+ if protocol != __tywrap_protocol:
82
+ raise ValueError(f'Invalid protocol: {protocol}')
53
83
 
54
- if msg_type == 'call':
55
- mod = importlib.import_module(msg['module'])
56
- fn = getattr(mod, msg['functionName'])
57
- result = fn(*msg.get('args', []), **msg.get('kwargs', {}))
58
- return json.dumps({'id': msg_id, 'result': result})
84
+ method = msg.get('method')
85
+ if not isinstance(method, str):
86
+ raise ValueError('Missing method')
59
87
 
60
- elif msg_type == 'instantiate':
61
- mod = importlib.import_module(msg['module'])
62
- cls = getattr(mod, msg['className'])
63
- obj = cls(*msg.get('args', []), **msg.get('kwargs', {}))
88
+ params = __tywrap_coerce_dict(msg.get('params'), 'params')
89
+
90
+ if method == 'call':
91
+ module_name = __tywrap_require_str(params, 'module')
92
+ function_name = __tywrap_require_str(params, 'functionName')
93
+ args = __tywrap_coerce_list(params.get('args'), 'args')
94
+ kwargs = __tywrap_coerce_dict(params.get('kwargs'), 'kwargs')
95
+ mod = importlib.import_module(module_name)
96
+ fn = getattr(mod, function_name)
97
+ result = fn(*args, **kwargs)
98
+
99
+ elif method == 'instantiate':
100
+ module_name = __tywrap_require_str(params, 'module')
101
+ class_name = __tywrap_require_str(params, 'className')
102
+ args = __tywrap_coerce_list(params.get('args'), 'args')
103
+ kwargs = __tywrap_coerce_dict(params.get('kwargs'), 'kwargs')
104
+ mod = importlib.import_module(module_name)
105
+ cls = getattr(mod, class_name)
106
+ obj = cls(*args, **kwargs)
64
107
  handle = str(id(obj))
65
108
  __tywrap_instances[handle] = obj
66
- return json.dumps({'id': msg_id, 'result': handle})
109
+ result = handle
67
110
 
68
- elif msg_type == 'call_method':
69
- obj = __tywrap_instances[msg['handle']]
70
- method = getattr(obj, msg['methodName'])
71
- result = method(*msg.get('args', []), **msg.get('kwargs', {}))
72
- return json.dumps({'id': msg_id, 'result': result})
111
+ elif method == 'call_method':
112
+ handle = __tywrap_require_str(params, 'handle')
113
+ method_name = __tywrap_require_str(params, 'methodName')
114
+ args = __tywrap_coerce_list(params.get('args'), 'args')
115
+ kwargs = __tywrap_coerce_dict(params.get('kwargs'), 'kwargs')
116
+ if handle not in __tywrap_instances:
117
+ raise ValueError(f'Unknown instance handle: {handle}')
118
+ obj = __tywrap_instances[handle]
119
+ bound_method = getattr(obj, method_name)
120
+ result = bound_method(*args, **kwargs)
73
121
 
74
- elif msg_type == 'dispose_instance':
75
- __tywrap_instances.pop(msg['handle'], None)
76
- return json.dumps({'id': msg_id, 'result': None})
122
+ elif method == 'dispose_instance':
123
+ handle = __tywrap_require_str(params, 'handle')
124
+ result = __tywrap_instances.pop(handle, None) is not None
77
125
 
78
126
  else:
79
- return json.dumps({
80
- 'id': msg_id,
81
- 'error': {
82
- 'type': 'ValueError',
83
- 'message': f'Unknown message type: {msg_type}'
84
- }
85
- })
127
+ raise ValueError(f'Unknown method: {method}')
128
+
129
+ return json.dumps({
130
+ 'id': msg_id,
131
+ 'protocol': __tywrap_protocol,
132
+ 'result': result
133
+ })
86
134
 
87
135
  except Exception as e:
88
136
  import traceback
89
137
  return json.dumps({
90
- 'id': msg.get('id', 'unknown') if msg else 'unknown',
138
+ 'id': msg_id,
139
+ 'protocol': __tywrap_protocol,
91
140
  'error': {
92
141
  'type': type(e).__name__,
93
142
  'message': str(e),
@@ -111,11 +160,10 @@ def __tywrap_dispatch(message_json):
111
160
  *
112
161
  * const response = await transport.send(
113
162
  * JSON.stringify({
114
- * id: '1',
115
- * type: 'call',
116
- * module: 'math',
117
- * functionName: 'sqrt',
118
- * args: [16]
163
+ * id: 1,
164
+ * protocol: 'tywrap/1',
165
+ * method: 'call',
166
+ * params: { module: 'math', functionName: 'sqrt', args: [16], kwargs: {} }
119
167
  * }),
120
168
  * 5000
121
169
  * );
@@ -211,7 +259,13 @@ export class PyodideIO extends BoundedContext {
211
259
  throw new BridgeProtocolError(`Invalid JSON message: ${e.message}`);
212
260
  }
213
261
  // Validate required fields
214
- if (!parsed.id || !parsed.method) {
262
+ if (typeof parsed.id !== 'number' || !Number.isInteger(parsed.id)) {
263
+ throw new BridgeProtocolError('Message missing required fields: id, method');
264
+ }
265
+ if (parsed.protocol !== PROTOCOL_ID || typeof parsed.method !== 'string') {
266
+ throw new BridgeProtocolError('Message missing required fields: id, method');
267
+ }
268
+ if (!parsed.params || typeof parsed.params !== 'object' || Array.isArray(parsed.params)) {
215
269
  throw new BridgeProtocolError('Message missing required fields: id, method');
216
270
  }
217
271
  // Get the dispatch function
@@ -226,6 +280,12 @@ export class PyodideIO extends BoundedContext {
226
280
  // Validate response is valid JSON
227
281
  try {
228
282
  const response = JSON.parse(responseJson);
283
+ if (typeof response.id !== 'number' || !Number.isInteger(response.id)) {
284
+ throw new BridgeProtocolError('Invalid response from Python: missing numeric id');
285
+ }
286
+ if (response.protocol !== undefined && response.protocol !== PROTOCOL_ID) {
287
+ throw new BridgeProtocolError(`Invalid protocol version: expected "${PROTOCOL_ID}", got "${response.protocol}"`);
288
+ }
229
289
  if (response.error) {
230
290
  // Return the response as-is; let the caller handle the error
231
291
  return responseJson;
@@ -365,7 +425,9 @@ export class PyodideIO extends BoundedContext {
365
425
  parseResponse(responseJson) {
366
426
  const response = JSON.parse(responseJson);
367
427
  if (response.error) {
368
- const err = new BridgeExecutionError(`${response.error.type}: ${response.error.message}`, { code: response.error.type });
428
+ const err = new BridgeExecutionError(`${response.error.type}: ${response.error.message}`, {
429
+ code: response.error.type,
430
+ });
369
431
  err.traceback = response.error.traceback;
370
432
  throw err;
371
433
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pyodide-io.js","sourceRoot":"","sources":["../../src/runtime/pyodide-io.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pyodide-io.js","sourceRoot":"","sources":["../../src/runtime/pyodide-io.ts"],"names":[],"mappings":"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"}