@volter/browser-wali 0.1.166 → 0.1.168

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 (215) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +9 -0
  3. package/dist/browser-wali-command.d.ts +7 -0
  4. package/dist/browser-wali-command.d.ts.map +1 -1
  5. package/dist/browser-wali-command.js +70 -18
  6. package/dist/browser-wali-command.js.map +1 -1
  7. package/dist/bulk-memory.d.ts +4 -2
  8. package/dist/bulk-memory.d.ts.map +1 -1
  9. package/dist/bulk-memory.js +32 -9
  10. package/dist/bulk-memory.js.map +1 -1
  11. package/dist/capabilities.d.ts +1 -1
  12. package/dist/capabilities.d.ts.map +1 -1
  13. package/dist/capabilities.js +6 -2
  14. package/dist/capabilities.js.map +1 -1
  15. package/dist/child-processes.d.ts +2 -0
  16. package/dist/child-processes.d.ts.map +1 -1
  17. package/dist/child-processes.js +9 -1
  18. package/dist/child-processes.js.map +1 -1
  19. package/dist/clocks.d.ts +3 -0
  20. package/dist/clocks.d.ts.map +1 -0
  21. package/dist/clocks.js +44 -0
  22. package/dist/clocks.js.map +1 -0
  23. package/dist/coherent-file-locks.d.ts.map +1 -1
  24. package/dist/coherent-file-locks.js +2 -1
  25. package/dist/coherent-file-locks.js.map +1 -1
  26. package/dist/credentials.d.ts +4 -0
  27. package/dist/credentials.d.ts.map +1 -0
  28. package/dist/credentials.js +46 -0
  29. package/dist/credentials.js.map +1 -0
  30. package/dist/descriptors.d.ts +14 -0
  31. package/dist/descriptors.d.ts.map +1 -1
  32. package/dist/descriptors.js +45 -5
  33. package/dist/descriptors.js.map +1 -1
  34. package/dist/environment.d.ts +4 -0
  35. package/dist/environment.d.ts.map +1 -0
  36. package/dist/environment.js +23 -0
  37. package/dist/environment.js.map +1 -0
  38. package/dist/epoll-ready.d.ts +27 -0
  39. package/dist/epoll-ready.d.ts.map +1 -0
  40. package/dist/epoll-ready.js +88 -0
  41. package/dist/epoll-ready.js.map +1 -0
  42. package/dist/events.d.ts +1 -0
  43. package/dist/events.d.ts.map +1 -1
  44. package/dist/events.js +55 -24
  45. package/dist/events.js.map +1 -1
  46. package/dist/filesystem-host-session.d.ts +65 -0
  47. package/dist/filesystem-host-session.d.ts.map +1 -0
  48. package/dist/filesystem-host-session.js +951 -0
  49. package/dist/filesystem-host-session.js.map +1 -0
  50. package/dist/filesystem-host.d.ts +13 -81
  51. package/dist/filesystem-host.d.ts.map +1 -1
  52. package/dist/filesystem-host.js +14 -882
  53. package/dist/filesystem-host.js.map +1 -1
  54. package/dist/filesystem-protocol.d.ts +3 -1
  55. package/dist/filesystem-protocol.d.ts.map +1 -1
  56. package/dist/filesystem-remote.d.ts +8 -3
  57. package/dist/filesystem-remote.d.ts.map +1 -1
  58. package/dist/filesystem-remote.js +43 -20
  59. package/dist/filesystem-remote.js.map +1 -1
  60. package/dist/filesystem-service-client.d.ts +4 -0
  61. package/dist/filesystem-service-client.d.ts.map +1 -0
  62. package/dist/filesystem-service-client.js +16 -0
  63. package/dist/filesystem-service-client.js.map +1 -0
  64. package/dist/filesystem.d.ts +26 -4
  65. package/dist/filesystem.d.ts.map +1 -1
  66. package/dist/filesystem.js +633 -175
  67. package/dist/filesystem.js.map +1 -1
  68. package/dist/fork-memory.d.ts +23 -0
  69. package/dist/fork-memory.d.ts.map +1 -0
  70. package/dist/fork-memory.js +93 -0
  71. package/dist/fork-memory.js.map +1 -0
  72. package/dist/fork-worker.js +32 -11
  73. package/dist/fork-worker.js.map +1 -1
  74. package/dist/jumps.d.ts +7 -0
  75. package/dist/jumps.d.ts.map +1 -1
  76. package/dist/jumps.js +19 -1
  77. package/dist/jumps.js.map +1 -1
  78. package/dist/kernel-filesystem-worker.d.ts +2 -0
  79. package/dist/kernel-filesystem-worker.d.ts.map +1 -0
  80. package/dist/kernel-filesystem-worker.js +28 -0
  81. package/dist/kernel-filesystem-worker.js.map +1 -0
  82. package/dist/kernel-filesystem.d.ts +12 -0
  83. package/dist/kernel-filesystem.d.ts.map +1 -0
  84. package/dist/kernel-filesystem.js +45 -0
  85. package/dist/kernel-filesystem.js.map +1 -0
  86. package/dist/kernel-network-worker.d.ts +2 -0
  87. package/dist/kernel-network-worker.d.ts.map +1 -0
  88. package/dist/kernel-network-worker.js +14 -0
  89. package/dist/kernel-network-worker.js.map +1 -0
  90. package/dist/kernel-network.d.ts +14 -0
  91. package/dist/kernel-network.d.ts.map +1 -0
  92. package/dist/kernel-network.js +50 -0
  93. package/dist/kernel-network.js.map +1 -0
  94. package/dist/kernel-process-client.d.ts +6 -1
  95. package/dist/kernel-process-client.d.ts.map +1 -1
  96. package/dist/kernel-process-client.js +10 -1
  97. package/dist/kernel-process-client.js.map +1 -1
  98. package/dist/module-layout.d.ts +8 -0
  99. package/dist/module-layout.d.ts.map +1 -1
  100. package/dist/module-layout.js +263 -2
  101. package/dist/module-layout.js.map +1 -1
  102. package/dist/network-host.d.ts +6 -0
  103. package/dist/network-host.d.ts.map +1 -0
  104. package/dist/network-host.js +1582 -0
  105. package/dist/network-host.js.map +1 -0
  106. package/dist/network-protocol.d.ts +9 -2
  107. package/dist/network-protocol.d.ts.map +1 -1
  108. package/dist/network-protocol.js +3 -0
  109. package/dist/network-protocol.js.map +1 -1
  110. package/dist/network-service-client.d.ts +4 -0
  111. package/dist/network-service-client.d.ts.map +1 -0
  112. package/dist/network-service-client.js +16 -0
  113. package/dist/network-service-client.js.map +1 -0
  114. package/dist/network-worker.js +5 -1150
  115. package/dist/network-worker.js.map +1 -1
  116. package/dist/network.d.ts +13 -1
  117. package/dist/network.d.ts.map +1 -1
  118. package/dist/network.js +175 -48
  119. package/dist/network.js.map +1 -1
  120. package/dist/paths.d.ts +11 -0
  121. package/dist/paths.d.ts.map +1 -0
  122. package/dist/paths.js +97 -0
  123. package/dist/paths.js.map +1 -0
  124. package/dist/process-bridge.d.ts +12 -4
  125. package/dist/process-bridge.d.ts.map +1 -1
  126. package/dist/process-bridge.js +53 -17
  127. package/dist/process-bridge.js.map +1 -1
  128. package/dist/program.d.ts.map +1 -1
  129. package/dist/program.js +8 -0
  130. package/dist/program.js.map +1 -1
  131. package/dist/runtime.d.ts.map +1 -1
  132. package/dist/runtime.js +150 -92
  133. package/dist/runtime.js.map +1 -1
  134. package/dist/shared-buffer-pool.d.ts +18 -5
  135. package/dist/shared-buffer-pool.d.ts.map +1 -1
  136. package/dist/shared-buffer-pool.js +86 -14
  137. package/dist/shared-buffer-pool.js.map +1 -1
  138. package/dist/shared-file-layer.d.ts +3 -1
  139. package/dist/shared-file-layer.d.ts.map +1 -1
  140. package/dist/shared-file-layer.js +150 -35
  141. package/dist/shared-file-layer.js.map +1 -1
  142. package/dist/shared-pipes.d.ts +3 -1
  143. package/dist/shared-pipes.d.ts.map +1 -1
  144. package/dist/shared-pipes.js +105 -33
  145. package/dist/shared-pipes.js.map +1 -1
  146. package/dist/signal-interruption.d.ts +9 -0
  147. package/dist/signal-interruption.d.ts.map +1 -0
  148. package/dist/signal-interruption.js +6 -0
  149. package/dist/signal-interruption.js.map +1 -0
  150. package/dist/signals.d.ts +17 -6
  151. package/dist/signals.d.ts.map +1 -1
  152. package/dist/signals.js +101 -22
  153. package/dist/signals.js.map +1 -1
  154. package/dist/snapshot-filesystem.d.ts +12 -1
  155. package/dist/snapshot-filesystem.d.ts.map +1 -1
  156. package/dist/snapshot-filesystem.js +241 -73
  157. package/dist/snapshot-filesystem.js.map +1 -1
  158. package/dist/socket-flags.d.ts +3 -0
  159. package/dist/socket-flags.d.ts.map +1 -0
  160. package/dist/socket-flags.js +9 -0
  161. package/dist/socket-flags.js.map +1 -0
  162. package/dist/special-files.d.ts +6 -0
  163. package/dist/special-files.d.ts.map +1 -0
  164. package/dist/special-files.js +56 -0
  165. package/dist/special-files.js.map +1 -0
  166. package/dist/stdin.d.ts.map +1 -1
  167. package/dist/stdin.js +13 -5
  168. package/dist/stdin.js.map +1 -1
  169. package/dist/symlink.d.ts +2 -1
  170. package/dist/symlink.d.ts.map +1 -1
  171. package/dist/symlink.js +25 -93
  172. package/dist/symlink.js.map +1 -1
  173. package/dist/system.d.ts +2 -4
  174. package/dist/system.d.ts.map +1 -1
  175. package/dist/system.js +46 -29
  176. package/dist/system.js.map +1 -1
  177. package/dist/thread-coordinator-worker.js +58 -24
  178. package/dist/thread-coordinator-worker.js.map +1 -1
  179. package/dist/thread-lifecycle.d.ts +9 -0
  180. package/dist/thread-lifecycle.d.ts.map +1 -0
  181. package/dist/thread-lifecycle.js +30 -0
  182. package/dist/thread-lifecycle.js.map +1 -0
  183. package/dist/thread-worker.js +125 -44
  184. package/dist/thread-worker.js.map +1 -1
  185. package/dist/threads.d.ts +6 -0
  186. package/dist/threads.d.ts.map +1 -1
  187. package/dist/threads.js +46 -6
  188. package/dist/threads.js.map +1 -1
  189. package/dist/tty-job-control.d.ts +13 -0
  190. package/dist/tty-job-control.d.ts.map +1 -0
  191. package/dist/tty-job-control.js +56 -0
  192. package/dist/tty-job-control.js.map +1 -0
  193. package/dist/tty-settings.d.ts +3 -0
  194. package/dist/tty-settings.d.ts.map +1 -0
  195. package/dist/tty-settings.js +25 -0
  196. package/dist/tty-settings.js.map +1 -0
  197. package/dist/types.d.ts +26 -0
  198. package/dist/types.d.ts.map +1 -1
  199. package/dist/wait-state.d.ts +8 -0
  200. package/dist/wait-state.d.ts.map +1 -1
  201. package/dist/wait-state.js +15 -0
  202. package/dist/wait-state.js.map +1 -1
  203. package/dist/worker-program-protocol.d.ts +22 -2
  204. package/dist/worker-program-protocol.d.ts.map +1 -1
  205. package/dist/worker-program-worker.js +31 -9
  206. package/dist/worker-program-worker.js.map +1 -1
  207. package/dist/worker-program.d.ts +12 -2
  208. package/dist/worker-program.d.ts.map +1 -1
  209. package/dist/worker-program.js +214 -36
  210. package/dist/worker-program.js.map +1 -1
  211. package/dist/write-vector.d.ts +3 -0
  212. package/dist/write-vector.d.ts.map +1 -0
  213. package/dist/write-vector.js +35 -0
  214. package/dist/write-vector.js.map +1 -0
  215. package/package.json +1 -1
@@ -1,31 +1,46 @@
1
- import { releaseWaliSharedBuffers } from "./shared-buffer-pool.js";
2
- import { publishProcessCompletion } from "./process-bridge.js";
1
+ import { waliForkMemoryByteLength } from "./fork-memory.js";
2
+ import { waliJumpTransfer } from "./jumps.js";
3
+ import { bulkMemory } from "./bulk-memory.js";
3
4
  import { BrowserWaliRuntime } from "./runtime.js";
4
5
  import { waliSyscallTrace } from "./syscall-trace.js";
5
6
  import { SharedWaliStdinReader } from "./stdin.js";
7
+ import { kernelNetworkService } from "./network-service-client.js";
6
8
  self.onmessage = (event) => { void run(event.data); };
7
9
  // One reservation per worker. Browser JS cannot explicitly free a Memory;
8
10
  // sequential forks therefore reuse it after the previous guest has torn down.
9
11
  let forkMemory;
10
12
  async function run(request) {
11
13
  const send = (message) => {
14
+ if (message.type === "network-service") {
15
+ postMessage(message, [message.reply]);
16
+ return;
17
+ }
12
18
  const table = message.type === "spawn" || message.type === "fork" ? message.descriptorTable : undefined;
13
- postMessage(message, table ? [table.port, ...(table.releasePort ? [table.releasePort] : [])] : []);
19
+ postMessage(message, table ? [table.port, ...(table.releasePort ? [table.releasePort] : []),
20
+ ...(message.type === "fork" ? [message.forkState.memory, ...waliJumpTransfer(message.forkState.jumps)] : [])] : []);
14
21
  };
15
22
  let code = 127;
16
23
  let replaced = false;
24
+ let networkPortTaken = false;
17
25
  try {
18
- const pages = request.forkState.memory.byteLength / 65_536;
26
+ const pages = waliForkMemoryByteLength(request.forkState) / 65_536;
19
27
  const memory = forkMemory ??= new WebAssembly.Memory({ ...request.memoryLayout, initial: pages });
20
28
  const currentPages = memory.buffer.byteLength / 65_536;
21
29
  if (pages > currentPages)
22
30
  memory.grow(pages - currentPages);
23
- // Memory cannot shrink. A previous child may have grown it; its tail must
24
- // also be zero, so later anonymous mappings cannot expose the old image.
25
- new Uint8Array(memory.buffer).fill(0);
31
+ // Keep instantiation's imported memory fresh too: a module start function
32
+ // can inspect it. Restore clears again after active data initialization.
33
+ const bulk = bulkMemory(memory);
34
+ if (bulk)
35
+ bulk.fill(0, 0, memory.buffer.byteLength);
36
+ else
37
+ new Uint8Array(memory.buffer).fill(0);
26
38
  const onSyscall = waliSyscallTrace(request.traceSyscalls
27
39
  ? entry => send({ type: "syscall-trace", id: request.id, entry }) : undefined, { pid: request.pid, parentPid: request.forkState.parentPid });
28
40
  const result = await new BrowserWaliRuntime().run(request.module, {
41
+ networkService: request.networkServicePort
42
+ ? () => { networkPortTaken = true; return Promise.resolve(request.networkServicePort); }
43
+ : kernelNetworkService(request.id, send),
29
44
  ...(request.waitAgent ? { waitAgent: request.waitAgent } : {}),
30
45
  onWaitState: update => send({ type: "wait-state", id: request.id, update }),
31
46
  memory, memoryLayout: request.memoryLayout, forkState: request.forkState,
@@ -36,17 +51,21 @@ async function run(request) {
36
51
  ...(request.filesystemPolicy ? { filesystemPolicy: request.filesystemPolicy } : {}),
37
52
  ...(request.terminal !== undefined ? { terminal: request.terminal } : {}),
38
53
  stdin: new SharedWaliStdinReader(request.stdin), threadPoolSize: request.threadPoolSize,
54
+ ...(request.terminalStdin ? { terminalStdin: new SharedWaliStdinReader(request.terminalStdin) } : {}),
39
55
  ...(request.network ? { network: request.network } : {}),
40
56
  browserProcess: {
41
57
  process: call => send({ ...call, type: "process", id: request.id }),
42
58
  filesystemPolicyVersion: 1,
43
59
  fork: child => send({ ...child, type: "fork", id: request.id, stdin: request.stdin,
60
+ ...(request.terminalStdin ? { terminalStdin: request.terminalStdin } : {}),
61
+ ...(request.terminalOutput ? { terminalOutput: true } : {}),
44
62
  ...(request.traceSyscalls ? { traceSyscalls: true } : {}),
45
63
  threadPoolSize: request.threadPoolSize, ...(request.terminal !== undefined ? { terminal: request.terminal } : {}), network: request.network }),
46
64
  spawn: child => send({ ...child, type: "spawn", id: request.id, filesystemPatch: { files: [], removed: [] } }),
47
65
  kill: (pid, signal) => send({ type: "kill", id: request.id, pid, signal }),
48
66
  },
49
67
  onStdout: chunk => send({ type: "stdout", id: request.id, chunk }),
68
+ ...(request.terminalOutput ? { onTerminalOutput: (chunk) => send({ type: "terminal-output", id: request.id, chunk }) } : {}),
50
69
  onStderr: chunk => send({ type: "stderr", id: request.id, chunk: new TextDecoder().decode(chunk) }),
51
70
  onDiagnostic: message => send({ type: "diagnostic", id: request.id, message }),
52
71
  ...(onSyscall ? { onSyscall } : {}),
@@ -61,17 +80,19 @@ async function run(request) {
61
80
  send({ type: "diagnostic", id: request.id, message: String(error instanceof Error ? error.stack : error) });
62
81
  }
63
82
  finally {
83
+ // A child that made no network coordinator leaves its reactor session unopened.
84
+ if (!networkPortTaken)
85
+ request.networkServicePort?.close();
64
86
  request.descriptorTable.releasePort?.postMessage(true);
65
87
  request.descriptorTable.releasePort?.close();
66
88
  request.descriptorTable.port.close();
67
89
  if (!replaced) {
68
90
  const control = new Int32Array(request.control);
69
91
  Atomics.store(control, 1, code);
70
- publishProcessCompletion(request);
71
92
  }
72
- if (!replaced)
73
- releaseWaliSharedBuffers(request.bufferLease);
74
- postMessage({ type: "fork-done" });
93
+ // The owner publishes completion after descriptor release and pool return.
94
+ // Otherwise the parent's next fork can outrun this worker's retirement.
95
+ postMessage({ type: "fork-done", replaced });
75
96
  }
76
97
  }
77
98
  //# sourceMappingURL=fork-worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fork-worker.js","sourceRoot":"","sources":["../src/fork-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fork-worker.js","sourceRoot":"","sources":["../src/fork-worker.ts"],"names":[],"mappings":"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"}
package/dist/jumps.d.ts CHANGED
@@ -54,6 +54,11 @@ export declare class WaliJumpController {
54
54
  private jump;
55
55
  /** Throws escape Wasm frames without replaying their side effects. */
56
56
  resume(error: unknown, rootStackPointer: number): boolean;
57
+ /**
58
+ * Every capture's stack is a view into one new buffer: one copy, and a fork
59
+ * message carries (and transfers, waliJumpTransfer) one buffer, not hundreds
60
+ * (bash holds ~200 captures, ~290 KB, between collections).
61
+ */
57
62
  forkSnapshot(): WaliJumpSnapshot[];
58
63
  private collect;
59
64
  statistics(): {
@@ -65,4 +70,6 @@ export declare class WaliJumpController {
65
70
  collectionMs: number;
66
71
  };
67
72
  }
73
+ /** The one buffer a fork's capture stacks share, for a message's transfer list. */
74
+ export declare function waliJumpTransfer(jumps: readonly WaliJumpSnapshot[] | undefined): ArrayBuffer[];
68
75
  //# sourceMappingURL=jumps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jumps.d.ts","sourceRoot":"","sources":["../src/jumps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAC7B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM;gBAAlD,QAAQ,EAAE,gBAAgB,EAAW,KAAK,EAAE,MAAM;CAGxE;AAED;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAc3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAErB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAnB7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,SAAS,CAA4D;gBAG1D,QAAQ,EAAE,MAAM,WAAW,CAAC,QAAQ,EACpC,MAAM,EAAE,MAAM,WAAW,CAAC,MAAM,EAChC,IAAI,EAAE,MAAM,MAAM,EAClB,IAAI,EAAE;QAAE,GAAG,IAAI,MAAM,CAAC;QAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAClE,SAAS,GAAE,SAAS,gBAAgB,EAAO,EAC1B,UAAU,GAAE,MAAM,OAAoB,EACtC,UAAU,GAAE,MAAM,OAAoB;IAUzD,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAOnB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAU5C,OAAO,CAAC,OAAO;IA0Bf,wEAAwE;IACxE,aAAa,IAAI,OAAO;IAsBxB,kBAAkB,IAAI,IAAI;IAM1B,WAAW,IAAI,OAAO;IAEtB,OAAO,CAAC,IAAI;IAQZ,sEAAsE;IACtE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO;IAWzD,YAAY,IAAI,gBAAgB,EAAE;IAIlC,OAAO,CAAC,OAAO;IAwCf,UAAU,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;CAKnI"}
1
+ {"version":3,"file":"jumps.d.ts","sourceRoot":"","sources":["../src/jumps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAC7B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM;gBAAlD,QAAQ,EAAE,gBAAgB,EAAW,KAAK,EAAE,MAAM;CAGxE;AAED;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAc3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAErB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAnB7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,SAAS,CAA4D;gBAG1D,QAAQ,EAAE,MAAM,WAAW,CAAC,QAAQ,EACpC,MAAM,EAAE,MAAM,WAAW,CAAC,MAAM,EAChC,IAAI,EAAE,MAAM,MAAM,EAClB,IAAI,EAAE;QAAE,GAAG,IAAI,MAAM,CAAC;QAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAClE,SAAS,GAAE,SAAS,gBAAgB,EAAO,EAC1B,UAAU,GAAE,MAAM,OAAoB,EACtC,UAAU,GAAE,MAAM,OAAoB;IAUzD,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAOnB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAU5C,OAAO,CAAC,OAAO;IA0Bf,wEAAwE;IACxE,aAAa,IAAI,OAAO;IAsBxB,kBAAkB,IAAI,IAAI;IAM1B,WAAW,IAAI,OAAO;IAEtB,OAAO,CAAC,IAAI;IAQZ,sEAAsE;IACtE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO;IAWzD;;;;OAIG;IACH,YAAY,IAAI,gBAAgB,EAAE;IAYlC,OAAO,CAAC,OAAO;IAwCf,UAAU,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;CAKnI;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,GAAG,SAAS,GAAG,WAAW,EAAE,CAG9F"}
package/dist/jumps.js CHANGED
@@ -158,8 +158,21 @@ export class WaliJumpController {
158
158
  this.call("asyncify_start_rewind", this.data());
159
159
  return true;
160
160
  }
161
+ /**
162
+ * Every capture's stack is a view into one new buffer: one copy, and a fork
163
+ * message carries (and transfers, waliJumpTransfer) one buffer, not hundreds
164
+ * (bash holds ~200 captures, ~290 KB, between collections).
165
+ */
161
166
  forkSnapshot() {
162
- return [...this.captures.values()].map((snapshot) => ({ ...snapshot, stack: snapshot.stack.slice() }));
167
+ const captures = [...this.captures.values()];
168
+ const arena = new ArrayBuffer(captures.reduce((sum, snapshot) => sum + snapshot.stack.byteLength, 0));
169
+ let offset = 0;
170
+ return captures.map((snapshot) => {
171
+ const stack = new Uint8Array(arena, offset, snapshot.stack.byteLength);
172
+ stack.set(snapshot.stack);
173
+ offset += stack.byteLength;
174
+ return { ...snapshot, stack };
175
+ });
163
176
  }
164
177
  collect() {
165
178
  const began = performance.now();
@@ -213,4 +226,9 @@ export class WaliJumpController {
213
226
  collections: this.collections, reclaimed: this.reclaimed, collectionMs: this.collectionMs };
214
227
  }
215
228
  }
229
+ /** The one buffer a fork's capture stacks share, for a message's transfer list. */
230
+ export function waliJumpTransfer(jumps) {
231
+ const buffer = jumps?.[0]?.stack.buffer;
232
+ return buffer instanceof ArrayBuffer && buffer.byteLength > 0 ? [buffer] : [];
233
+ }
216
234
  //# sourceMappingURL=jumps.js.map
package/dist/jumps.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"jumps.js","sourceRoot":"","sources":["../src/jumps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jumps.js","sourceRoot":"","sources":["../src/jumps.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,6EAA6E;AAC7E,MAAM,WAAW,GAAG,WAAW,CAAC;AAYhC,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACpB;IAAqC;IAA1D,YAAqB,QAA0B,EAAW,KAAa;QACrE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QADT,aAAQ,GAAR,QAAQ,CAAkB;QAAW,UAAK,GAAL,KAAK,CAAQ;IAEvE,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,kBAAkB;IAcV;IACA;IACA;IACA;IAEA;IACA;IAnBF,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IACxD,SAAS,GAAG,WAAW,CAAC;IACf,UAAU,GAAa,EAAE,CAAC;IACnC,cAAc,GAAG,CAAC,CAAC;IACnB,WAAW,GAAG,CAAC,CAAC;IAChB,SAAS,GAAG,CAAC,CAAC;IACd,YAAY,GAAG,CAAC,CAAC;IACjB,aAAa,GAAG,CAAC,CAAC;IAClB,SAAS,GAAG,CAAC,CAAC;IACd,SAAS,CAA8C;IACvD,SAAS,CAA4D;IAE7E,YACmB,QAAoC,EACpC,MAAgC,EAChC,IAAkB,EAClB,IAAiD,EAClE,YAAyC,EAAE,EAC1B,aAA4B,GAAG,EAAE,CAAC,IAAI,EACtC,aAA4B,GAAG,EAAE,CAAC,IAAI;QANtC,aAAQ,GAAR,QAAQ,CAA4B;QACpC,WAAM,GAAN,MAAM,CAA0B;QAChC,SAAI,GAAJ,IAAI,CAAc;QAClB,SAAI,GAAJ,IAAI,CAA6C;QAEjD,eAAU,GAAV,UAAU,CAA4B;QACtC,eAAU,GAAV,UAAU,CAA4B;QAEvD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;IACtC,CAAC;IAEO,IAAI,CAAC,IAAY,EAAE,GAAG,IAAc;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,4HAA4H,CAAC,CAAC;QAChJ,CAAC;QACD,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACd,CAAC;IAEO,YAAY;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;QACxD,IAAI,CAAC,CAAC,OAAO,YAAY,WAAW,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,WAAW,CAAC,OAAe;QACjC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACpG,MAAM,IAAI,WAAW,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACL,OAAO;YACL,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;YAC3E,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;YAC7E,SAAS,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5G,OAAO,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9E,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;SAChF,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,UAAkB,EAAE,WAAmB,EAAE,QAAiB;QACxE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,IAAI,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;gBAC/E,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,yEAAyE;QACzE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;QACrH,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,qBAAqB,KAAK,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC5G,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACxD,IAAI,KAAK,GAAG,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC7E,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;YAChG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,wEAAwE;IACxE,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAChF,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAC1G,MAAM,QAAQ,GAAqB,EAAE,GAAG,IAAI,CAAC,SAAS;YACpD,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QACjD,sEAAsE;QACtE,yEAAyE;QACzE,yEAAyE;QACzE,IAAI,IAAI,CAAC,cAAc,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACtF,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB;QAChB,yEAAyE;QACzE,2EAA2E;QAC3E,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAC;IACrJ,CAAC;IAED,WAAW,KAAc,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;IAEvD,IAAI,CAAC,WAAmB,EAAE,KAAa;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,WAAW;YACxD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACpF,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,sEAAsE;IACtE,MAAM,CAAC,KAAc,EAAE,gBAAwB;QAC7C,IAAI,CAAC,CAAC,KAAK,YAAY,gBAAgB,CAAC;YAAE,OAAO,KAAK,CAAC;QACvD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAClC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,GAAG,gBAAgB,CAAC;QAC7C,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACtG,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACvE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;YAC3B,OAAO,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,OAAO;QACb,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,CAAC,KAAa,EAAQ,EAAE;YACnC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAO;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,yEAAyE;QACzE,sEAAsE;QACtE,MAAM,IAAI,GAAG,CAAC,MAAkB,EAAQ,EAAE;YACxC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/E,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;gBAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC3C,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7F,iEAAiE;oBACjE,gEAAgE;oBAChE,MAAM,IAAI,CAAC,CAAC;oBACZ,SAAS;gBACX,CAAC;gBACD,IAAI,KAAK,IAAI,WAAW,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,KAAK,CAAC,CAAC;QAC7E,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,KAAK,CAAC,UAAU,CAAC;gBACjE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7E,CAAC;QACH,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IACjD,CAAC;IAED,UAAU;QACR,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YACnC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS;YACpD,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;IAChG,CAAC;CACF;AAED,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAAC,KAA8C;IAC7E,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;IACxC,OAAO,MAAM,YAAY,WAAW,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=kernel-filesystem-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-filesystem-worker.d.ts","sourceRoot":"","sources":["../src/kernel-filesystem-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { createWaliFilesystemHost } from "./filesystem-host-session.js";
2
+ /** One worker loads host logic once; each root retains its filesystem policy and channels. */
3
+ self.onmessage = (event) => {
4
+ const port = event.data.port;
5
+ const host = createWaliFilesystemHost();
6
+ let initialization;
7
+ let retired = false;
8
+ port.onmessage = (event) => {
9
+ if (event.data.kind === "dispose") {
10
+ retired = true;
11
+ void (initialization ?? Promise.resolve()).catch(() => { }).then(() => {
12
+ host.resetHost();
13
+ port.postMessage({ kind: "disposed" });
14
+ port.close();
15
+ });
16
+ }
17
+ else if (event.data.kind === "initialize") {
18
+ initialization = host.initializeHost(event.data);
19
+ void initialization.then(() => { if (!retired)
20
+ port.postMessage({ kind: "ready" }); }, (error) => { if (!retired)
21
+ port.postMessage({ kind: "error", message: error instanceof Error ? error.message : String(error) }); });
22
+ }
23
+ else if (!retired)
24
+ host.attachChannel(event.data);
25
+ };
26
+ port.start();
27
+ };
28
+ //# sourceMappingURL=kernel-filesystem-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-filesystem-worker.js","sourceRoot":"","sources":["../src/kernel-filesystem-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAGxE,8FAA8F;AAC9F,IAAI,CAAC,SAAS,GAAG,CAAC,KAA0C,EAAQ,EAAE;IACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B,MAAM,IAAI,GAAG,wBAAwB,EAAE,CAAC;IACxC,IAAI,cAAyC,CAAC;IAC9C,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,CAAC,SAAS,GAAG,CAAC,KAA4B,EAAE,EAAE;QAChD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,GAAG,IAAI,CAAC;YACf,KAAK,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC5C,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,KAAK,cAAc,CAAC,IAAI,CACtB,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAC5D,CAAC,KAAc,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC5I,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /** One filesystem worker for the kernel tree; processes receive private channels. */
2
+ export declare class WaliKernelFilesystem {
3
+ private worker;
4
+ private disposed;
5
+ private readonly clients;
6
+ get isDisposed(): boolean;
7
+ /** Concurrent roots of the same process table also share this worker. */
8
+ retain(failed: (error: unknown) => void): () => void;
9
+ connect(reply: MessagePort): void;
10
+ dispose(): void;
11
+ }
12
+ //# sourceMappingURL=kernel-filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-filesystem.d.ts","sourceRoot":"","sources":["../src/kernel-filesystem.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAE/D,IAAI,UAAU,IAAI,OAAO,CAA0B;IAEnD,yEAAyE;IACzE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAQpD,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAqBjC,OAAO,IAAI,IAAI;CAKhB"}
@@ -0,0 +1,45 @@
1
+ import { pageWorker } from "@volter/browser-runtime/page-workers.js";
2
+ /** One filesystem worker for the kernel tree; processes receive private channels. */
3
+ export class WaliKernelFilesystem {
4
+ worker;
5
+ disposed = false;
6
+ clients = new Set();
7
+ get isDisposed() { return this.disposed; }
8
+ /** Concurrent roots of the same process table also share this worker. */
9
+ retain(failed) {
10
+ this.clients.add(failed);
11
+ return () => {
12
+ this.clients.delete(failed);
13
+ if (this.clients.size === 0)
14
+ this.dispose();
15
+ };
16
+ }
17
+ connect(reply) {
18
+ if (this.disposed) {
19
+ reply.postMessage({ error: "The WALI kernel filesystem owner has ended." });
20
+ reply.close();
21
+ return;
22
+ }
23
+ if (!this.worker) {
24
+ this.worker = pageWorker(new Worker(new URL("./kernel-filesystem-worker.js", import.meta.url), {
25
+ type: "module", name: "wali-kernel-filesystem",
26
+ }));
27
+ this.worker.addEventListener("error", event => {
28
+ if (this.disposed)
29
+ return;
30
+ for (const failed of [...this.clients])
31
+ failed(event.error ?? new Error(event.message));
32
+ });
33
+ }
34
+ const channel = new MessageChannel();
35
+ this.worker.postMessage({ port: channel.port2 }, [channel.port2]);
36
+ reply.postMessage({ port: channel.port1 }, [channel.port1]);
37
+ reply.close();
38
+ }
39
+ dispose() {
40
+ this.disposed = true;
41
+ this.worker?.terminate();
42
+ this.worker = undefined;
43
+ }
44
+ }
45
+ //# sourceMappingURL=kernel-filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-filesystem.js","sourceRoot":"","sources":["../src/kernel-filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAErE,qFAAqF;AACrF,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAqB;IAC3B,QAAQ,GAAG,KAAK,CAAC;IACR,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE/D,IAAI,UAAU,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEnD,yEAAyE;IACzE,MAAM,CAAC,MAAgC;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9C,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,KAAkB;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC;YAC5E,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,+BAA+B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC7F,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB;aAC/C,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBAC5C,IAAI,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBAC1B,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;oBAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=kernel-network-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-network-worker.d.ts","sourceRoot":"","sources":["../src/kernel-network-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { createWaliNetworkSession } from "./network-host.js";
2
+ // Session closures keep process grants, stdin, signals and descriptor state
3
+ // distinct while one worker loads the reactor's module graph once.
4
+ self.onmessage = (event) => {
5
+ const port = event.data.port;
6
+ const session = createWaliNetworkSession(message => port.postMessage(message));
7
+ port.onmessage = (message) => {
8
+ session.receive(message);
9
+ if (message.data.kind === "dispose")
10
+ port.close();
11
+ };
12
+ port.start();
13
+ };
14
+ //# sourceMappingURL=kernel-network-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-network-worker.js","sourceRoot":"","sources":["../src/kernel-network-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,4EAA4E;AAC5E,mEAAmE;AACnE,IAAI,CAAC,SAAS,GAAG,CAAC,KAA0C,EAAQ,EAAE;IACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC,SAAS,GAAG,CAAC,OAA2C,EAAE,EAAE;QAC/D,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACpD,CAAC,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /** One reactor worker for the kernel tree; processes receive private channels. */
2
+ export declare class WaliKernelNetwork {
3
+ private worker;
4
+ private disposed;
5
+ private readonly clients;
6
+ get isDisposed(): boolean;
7
+ /** Concurrent roots of the same process table also share this worker. */
8
+ retain(failed: (error: unknown) => void): () => void;
9
+ connect(reply: MessagePort): void;
10
+ /** A process's private channel to the reactor; undefined once the owner has ended. */
11
+ open(): MessagePort | undefined;
12
+ dispose(): void;
13
+ }
14
+ //# sourceMappingURL=kernel-network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-network.d.ts","sourceRoot":"","sources":["../src/kernel-network.ts"],"names":[],"mappings":"AAEA,kFAAkF;AAClF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAE/D,IAAI,UAAU,IAAI,OAAO,CAA0B;IAEnD,yEAAyE;IACzE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAQpD,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAOjC,sFAAsF;IACtF,IAAI,IAAI,WAAW,GAAG,SAAS;IAgB/B,OAAO,IAAI,IAAI;CAKhB"}
@@ -0,0 +1,50 @@
1
+ import { pageWorker } from "@volter/browser-runtime/page-workers.js";
2
+ /** One reactor worker for the kernel tree; processes receive private channels. */
3
+ export class WaliKernelNetwork {
4
+ worker;
5
+ disposed = false;
6
+ clients = new Set();
7
+ get isDisposed() { return this.disposed; }
8
+ /** Concurrent roots of the same process table also share this worker. */
9
+ retain(failed) {
10
+ this.clients.add(failed);
11
+ return () => {
12
+ this.clients.delete(failed);
13
+ if (this.clients.size === 0)
14
+ this.dispose();
15
+ };
16
+ }
17
+ connect(reply) {
18
+ const port = this.open();
19
+ if (!port)
20
+ reply.postMessage({ error: "The WALI kernel network owner has ended." });
21
+ else
22
+ reply.postMessage({ port }, [port]);
23
+ reply.close();
24
+ }
25
+ /** A process's private channel to the reactor; undefined once the owner has ended. */
26
+ open() {
27
+ if (this.disposed)
28
+ return;
29
+ if (!this.worker) {
30
+ this.worker = pageWorker(new Worker(new URL("./kernel-network-worker.js", import.meta.url), {
31
+ type: "module", name: "wali-kernel-network",
32
+ }));
33
+ this.worker.addEventListener("error", event => {
34
+ if (this.disposed)
35
+ return;
36
+ for (const failed of [...this.clients])
37
+ failed(event.error ?? new Error(event.message));
38
+ });
39
+ }
40
+ const channel = new MessageChannel();
41
+ this.worker.postMessage({ port: channel.port2 }, [channel.port2]);
42
+ return channel.port1;
43
+ }
44
+ dispose() {
45
+ this.disposed = true;
46
+ this.worker?.terminate();
47
+ this.worker = undefined;
48
+ }
49
+ }
50
+ //# sourceMappingURL=kernel-network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-network.js","sourceRoot":"","sources":["../src/kernel-network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAErE,kFAAkF;AAClF,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAqB;IAC3B,QAAQ,GAAG,KAAK,CAAC;IACR,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE/D,IAAI,UAAU,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEnD,yEAAyE;IACzE,MAAM,CAAC,MAAgC;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9C,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,KAAkB;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC,CAAC;;YAC/E,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAED,sFAAsF;IACtF,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC1F,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB;aAC5C,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBAC5C,IAAI,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBAC1B,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;oBAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;CACF"}
@@ -1,10 +1,11 @@
1
1
  import type { KernelProcessOperation } from "@volter/browser-runtime/kernel-processes.js";
2
2
  export interface WaliKernelProcessRequest {
3
3
  callerPid: number;
4
- operation: KernelProcessOperation;
4
+ operation: KernelProcessOperation | "termios";
5
5
  first: number;
6
6
  second: number;
7
7
  reply: SharedArrayBuffer;
8
+ data?: Uint8Array;
8
9
  }
9
10
  /** One synchronous owner mailbox per guest agent, no per-call allocation. */
10
11
  export declare class WaliKernelProcessClient {
@@ -13,6 +14,10 @@ export declare class WaliKernelProcessClient {
13
14
  private readonly reply;
14
15
  constructor(pid: number, send: (request: WaliKernelProcessRequest) => void);
15
16
  call(operation: KernelProcessOperation, first?: number, second?: number): bigint;
17
+ terminalSettings(update: boolean, length: number, data: Uint8Array): {
18
+ result: bigint;
19
+ output: Uint8Array;
20
+ };
16
21
  }
17
22
  export declare function forkKernelProcessIdentity(parent: SharedArrayBuffer | undefined, pid: number, parentPid: number): SharedArrayBuffer;
18
23
  /** Cooperative suspension: CPU-only loops cannot be preempted by the host. */
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-process-client.d.ts","sourceRoot":"","sources":["../src/kernel-process-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAG1F,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,sBAAsB,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,6EAA6E;AAC7E,qBAAa,uBAAuB;IAEtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAU,OAAO,CAAC,QAAQ,CAAC,IAAI;IAD/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4C;gBACrC,GAAG,EAAE,MAAM,EAAmB,IAAI,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI;IAC5G,IAAI,CAAC,SAAS,EAAE,sBAAsB,EAAE,KAAK,SAAI,EAAE,MAAM,SAAI,GAAG,MAAM;CAOvE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAMlI;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAM7E;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAC7F,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO3C"}
1
+ {"version":3,"file":"kernel-process-client.d.ts","sourceRoot":"","sources":["../src/kernel-process-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAG1F,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,iBAAiB,CAAC;IACzB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,6EAA6E;AAC7E,qBAAa,uBAAuB;IAEtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAU,OAAO,CAAC,QAAQ,CAAC,IAAI;IAD/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiD;gBAC1C,GAAG,EAAE,MAAM,EAAmB,IAAI,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI;IAC5G,IAAI,CAAC,SAAS,EAAE,sBAAsB,EAAE,KAAK,SAAI,EAAE,MAAM,SAAI,GAAG,MAAM;IAOtE,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE;CAS5G;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAMlI;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAM7E;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAC7F,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO3C"}
@@ -3,7 +3,7 @@ import { hostWait } from "./host-idle.js";
3
3
  export class WaliKernelProcessClient {
4
4
  pid;
5
5
  send;
6
- reply = new Int32Array(new SharedArrayBuffer(8));
6
+ reply = new Int32Array(new SharedArrayBuffer(8 + 44));
7
7
  constructor(pid, send) {
8
8
  this.pid = pid;
9
9
  this.send = send;
@@ -15,6 +15,15 @@ export class WaliKernelProcessClient {
15
15
  hostWait(this.reply, 0, 0, undefined, undefined, { resource: `kernel process ${operation}`, deadline: null, outside: [{ source: "kernel process owner servicing" }] });
16
16
  return BigInt(Atomics.load(this.reply, 1));
17
17
  }
18
+ terminalSettings(update, length, data) {
19
+ Atomics.store(this.reply, 0, 0);
20
+ this.send({ callerPid: this.pid, operation: "termios", first: update ? 1 : 0, second: length,
21
+ data, reply: this.reply.buffer });
22
+ while (Atomics.load(this.reply, 0) === 0)
23
+ hostWait(this.reply, 0, 0, undefined, undefined, { resource: "kernel terminal settings", deadline: null, outside: [{ source: "kernel terminal owner servicing" }] });
24
+ const result = BigInt(Atomics.load(this.reply, 1));
25
+ return { result, output: result === 0n ? new Uint8Array(this.reply.buffer, 8, length).slice() : new Uint8Array() };
26
+ }
18
27
  }
19
28
  export function forkKernelProcessIdentity(parent, pid, parentPid) {
20
29
  const identity = new SharedArrayBuffer(36);
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-process-client.js","sourceRoot":"","sources":["../src/kernel-process-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel-process-client.js","sourceRoot":"","sources":["../src/kernel-process-client.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,14 @@ export interface WaliMemoryLayout {
9
9
  * once per memory), so an instance made after the program started is safe.
10
10
  */
11
11
  passiveData?: boolean;
12
+ /**
13
+ * The initial `__stack_pointer` when the stack is the lowest region of memory
14
+ * (wasm-ld --stack-first): every data write the module makes, active
15
+ * segments and its start function's memory.init/fill alike, lands at or
16
+ * above it. Below a process's current stack pointer is then unused stack.
17
+ * Absent whenever the module does not prove it.
18
+ */
19
+ stackTop?: number;
12
20
  }
13
21
  export declare function createImportedMemory(source: WaliModuleSource, supplied?: WebAssembly.Memory): WebAssembly.Memory | undefined;
14
22
  /** A process's memory, as its module's `env.memory` import declares it. */
@@ -1 +1 @@
1
- {"version":3,"file":"module-layout.d.ts","sourceRoot":"","sources":["../src/module-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,SAAS,CAM5H;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAS5E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAuClF"}
1
+ {"version":3,"file":"module-layout.d.ts","sourceRoot":"","sources":["../src/module-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,SAAS,CAM5H;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAS5E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAuClF"}