@nimbus-sh/worker 0.10.0 → 0.11.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 (260) hide show
  1. package/NOTICE.md +5 -0
  2. package/README.md +10 -0
  3. package/dist/_shared/session-router.d.ts +7 -0
  4. package/dist/_shared/session-router.d.ts.map +1 -1
  5. package/dist/_shared/session-router.js +7 -0
  6. package/dist/bindings/body.d.ts +6 -0
  7. package/dist/bindings/body.d.ts.map +1 -0
  8. package/dist/bindings/body.js +37 -0
  9. package/dist/bindings/kv.d.ts +0 -2
  10. package/dist/bindings/kv.d.ts.map +1 -1
  11. package/dist/bindings/kv.js +3 -42
  12. package/dist/bindings/r2.d.ts +0 -2
  13. package/dist/bindings/r2.d.ts.map +1 -1
  14. package/dist/bindings/r2.js +4 -44
  15. package/dist/esbuild-cli-artifact.generated.d.ts +18 -0
  16. package/dist/esbuild-cli-artifact.generated.d.ts.map +1 -0
  17. package/dist/esbuild-cli-artifact.generated.js +17 -0
  18. package/dist/facets/cirrus-real.d.ts.map +1 -1
  19. package/dist/facets/cirrus-real.js +9 -4
  20. package/dist/facets/compose.d.ts +11 -7
  21. package/dist/facets/compose.d.ts.map +1 -1
  22. package/dist/facets/compose.js +8 -38
  23. package/dist/facets/data-plan.d.ts +79 -0
  24. package/dist/facets/data-plan.d.ts.map +1 -0
  25. package/dist/facets/data-plan.js +477 -0
  26. package/dist/facets/esbuild-transform.d.ts +36 -10
  27. package/dist/facets/esbuild-transform.d.ts.map +1 -1
  28. package/dist/facets/esbuild-transform.js +216 -20
  29. package/dist/facets/exec-telemetry.d.ts +7 -3
  30. package/dist/facets/exec-telemetry.d.ts.map +1 -1
  31. package/dist/facets/manager.d.ts +179 -78
  32. package/dist/facets/manager.d.ts.map +1 -1
  33. package/dist/facets/manager.js +1221 -649
  34. package/dist/facets/opencode-staging.d.ts +0 -2
  35. package/dist/facets/opencode-staging.d.ts.map +1 -1
  36. package/dist/facets/opencode-staging.js +5 -11
  37. package/dist/facets/process.d.ts +4 -0
  38. package/dist/facets/process.d.ts.map +1 -1
  39. package/dist/facets/process.js +3 -0
  40. package/dist/facets/read-profile.d.ts +149 -0
  41. package/dist/facets/read-profile.d.ts.map +1 -0
  42. package/dist/facets/read-profile.js +483 -0
  43. package/dist/facets/resident-identity.d.ts +0 -1
  44. package/dist/facets/resident-identity.d.ts.map +1 -1
  45. package/dist/facets/resident-identity.js +0 -3
  46. package/dist/facets/wasm-swap-registry.d.ts +34 -25
  47. package/dist/facets/wasm-swap-registry.d.ts.map +1 -1
  48. package/dist/facets/wasm-swap-registry.js +62 -56
  49. package/dist/facets/ws-terminal.d.ts +4 -4
  50. package/dist/facets/ws-terminal.d.ts.map +1 -1
  51. package/dist/facets/ws-terminal.js +4 -5
  52. package/dist/git/commands.d.ts +16 -9
  53. package/dist/git/commands.d.ts.map +1 -1
  54. package/dist/git/commands.js +1818 -188
  55. package/dist/git/network-facet.d.ts +10 -2
  56. package/dist/git/network-facet.d.ts.map +1 -1
  57. package/dist/git/network-facet.js +62 -16
  58. package/dist/git/unified-diff.d.ts +74 -0
  59. package/dist/git/unified-diff.d.ts.map +1 -0
  60. package/dist/git/unified-diff.js +676 -0
  61. package/dist/git-bundle.generated.d.ts +7 -11
  62. package/dist/git-bundle.generated.d.ts.map +1 -1
  63. package/dist/git-bundle.generated.js +7 -11
  64. package/dist/hosted/commands.d.ts.map +1 -1
  65. package/dist/hosted/commands.js +62 -243
  66. package/dist/hosted/runtime.d.ts +19 -13
  67. package/dist/hosted/runtime.d.ts.map +1 -1
  68. package/dist/hosted/runtime.js +71 -14
  69. package/dist/hosted/services.d.ts +6 -7
  70. package/dist/hosted/services.d.ts.map +1 -1
  71. package/dist/hosted/services.js +10 -14
  72. package/dist/hosted/session.d.ts +165 -0
  73. package/dist/hosted/session.d.ts.map +1 -0
  74. package/dist/hosted/session.js +132 -0
  75. package/dist/loaders/generated-workers.d.ts +5 -2
  76. package/dist/loaders/generated-workers.d.ts.map +1 -1
  77. package/dist/loaders/generated-workers.js +6 -3
  78. package/dist/loaders/npm-resolve-preamble.d.ts.map +1 -1
  79. package/dist/loaders/npm-resolve-preamble.js +0 -27
  80. package/dist/node-shims-artifact.generated.d.ts +13 -4
  81. package/dist/node-shims-artifact.generated.d.ts.map +1 -1
  82. package/dist/node-shims-artifact.generated.js +16 -7
  83. package/dist/npm/bin-links.d.ts +3 -1
  84. package/dist/npm/bin-links.d.ts.map +1 -1
  85. package/dist/npm/bin-links.js +32 -8
  86. package/dist/npm/cache.d.ts +5 -0
  87. package/dist/npm/cache.d.ts.map +1 -1
  88. package/dist/npm/cache.js +13 -1
  89. package/dist/npm/install-batch-facet.d.ts +2 -2
  90. package/dist/npm/install-batch-facet.js +3 -3
  91. package/dist/npm/installer.d.ts +17 -1
  92. package/dist/npm/installer.d.ts.map +1 -1
  93. package/dist/npm/installer.js +159 -20
  94. package/dist/npm/package-lock.d.ts +32 -0
  95. package/dist/npm/package-lock.d.ts.map +1 -0
  96. package/dist/npm/package-lock.js +65 -0
  97. package/dist/npm/pre-bundle-facet.d.ts +1 -30
  98. package/dist/npm/pre-bundle-facet.d.ts.map +1 -1
  99. package/dist/npm/pre-bundle-facet.js +3 -5
  100. package/dist/npm/r2-cache.d.ts +2 -0
  101. package/dist/npm/r2-cache.d.ts.map +1 -1
  102. package/dist/npm/r2-cache.js +2 -0
  103. package/dist/npm/resolve-one-facet.d.ts.map +1 -1
  104. package/dist/npm/resolve-one-facet.js +14 -3
  105. package/dist/npm/resolver.d.ts +0 -7
  106. package/dist/npm/resolver.d.ts.map +1 -1
  107. package/dist/npm/resolver.js +0 -22
  108. package/dist/opencode-artifact.generated.js +2 -2
  109. package/dist/replica/routing.d.ts +2 -38
  110. package/dist/replica/routing.d.ts.map +1 -1
  111. package/dist/replica/routing.js +3 -55
  112. package/dist/router/index.d.ts.map +1 -1
  113. package/dist/router/index.js +15 -2
  114. package/dist/router/public-directory.d.ts +18 -0
  115. package/dist/router/public-directory.d.ts.map +1 -1
  116. package/dist/router/public-directory.js +1 -1
  117. package/dist/router/remote-api.d.ts +3 -1
  118. package/dist/router/remote-api.d.ts.map +1 -1
  119. package/dist/router/remote-api.js +42 -79
  120. package/dist/runtime/bash-repl.js +2 -2
  121. package/dist/runtime/bun-repl.d.ts.map +1 -1
  122. package/dist/runtime/bun-repl.js +2 -13
  123. package/dist/runtime/esbuild-wasm-bytes.d.ts +17 -5
  124. package/dist/runtime/esbuild-wasm-bytes.d.ts.map +1 -1
  125. package/dist/runtime/esbuild-wasm-bytes.js +43 -94
  126. package/dist/runtime/git-bundle-artifact.d.ts +17 -0
  127. package/dist/runtime/git-bundle-artifact.d.ts.map +1 -0
  128. package/dist/runtime/git-bundle-artifact.js +25 -0
  129. package/dist/runtime/node-repl.d.ts.map +1 -1
  130. package/dist/runtime/node-repl.js +2 -13
  131. package/dist/runtime/node-shims-artifact.d.ts +22 -23
  132. package/dist/runtime/node-shims-artifact.d.ts.map +1 -1
  133. package/dist/runtime/node-shims-artifact.js +48 -78
  134. package/dist/runtime/node-shims.d.ts.map +1 -1
  135. package/dist/runtime/node-shims.js +1567 -864
  136. package/dist/runtime/opencode-artifact.d.ts.map +1 -1
  137. package/dist/runtime/opencode-artifact.js +17 -53
  138. package/dist/runtime/opencode-facet-runner.d.ts +3 -6
  139. package/dist/runtime/opencode-facet-runner.d.ts.map +1 -1
  140. package/dist/runtime/opencode-facet-runner.js +45 -10
  141. package/dist/runtime/opentui-wasm-bytes.d.ts.map +1 -1
  142. package/dist/runtime/opentui-wasm-bytes.js +16 -49
  143. package/dist/runtime/package-manager.d.ts +0 -2
  144. package/dist/runtime/package-manager.d.ts.map +1 -1
  145. package/dist/runtime/package-manager.js +0 -3
  146. package/dist/runtime/python-repl.d.ts.map +1 -1
  147. package/dist/runtime/python-repl.js +2 -2
  148. package/dist/runtime/repl-session.d.ts +10 -0
  149. package/dist/runtime/repl-session.d.ts.map +1 -1
  150. package/dist/runtime/repl-session.js +7 -0
  151. package/dist/runtime/ruby-repl.d.ts.map +1 -1
  152. package/dist/runtime/ruby-repl.js +2 -2
  153. package/dist/runtime/ruby-resident.d.ts.map +1 -1
  154. package/dist/runtime/ruby-resident.js +36 -35
  155. package/dist/runtime/runtime-catalog.d.ts +10 -3
  156. package/dist/runtime/runtime-catalog.d.ts.map +1 -1
  157. package/dist/runtime/runtime-catalog.js +125 -15
  158. package/dist/runtime/sqlite-wasm-bytes.d.ts +4 -4
  159. package/dist/runtime/sqlite-wasm-bytes.d.ts.map +1 -1
  160. package/dist/runtime/sqlite-wasm-bytes.js +21 -57
  161. package/dist/runtime/staged-source.d.ts +67 -0
  162. package/dist/runtime/staged-source.d.ts.map +1 -0
  163. package/dist/runtime/staged-source.js +113 -0
  164. package/dist/runtime/wasi/preamble.d.ts.map +1 -1
  165. package/dist/runtime/wasi/preamble.js +0 -24
  166. package/dist/runtime-catalog.generated.js +1 -1
  167. package/dist/session/agent.d.ts +14 -2
  168. package/dist/session/agent.d.ts.map +1 -1
  169. package/dist/session/agent.js +57 -19
  170. package/dist/session/ai.d.ts +0 -11
  171. package/dist/session/ai.d.ts.map +1 -1
  172. package/dist/session/ai.js +0 -4
  173. package/dist/session/fs-watch.d.ts +0 -11
  174. package/dist/session/fs-watch.d.ts.map +1 -1
  175. package/dist/session/fs-watch.js +0 -21
  176. package/dist/session/hibernation.d.ts +34 -11
  177. package/dist/session/hibernation.d.ts.map +1 -1
  178. package/dist/session/hibernation.js +46 -29
  179. package/dist/session/init-phases.d.ts +1 -2
  180. package/dist/session/init-phases.d.ts.map +1 -1
  181. package/dist/session/init-phases.js +1 -2
  182. package/dist/session/init.d.ts.map +1 -1
  183. package/dist/session/init.js +7 -20
  184. package/dist/session/keys.d.ts +0 -3
  185. package/dist/session/keys.d.ts.map +1 -1
  186. package/dist/session/keys.js +0 -3
  187. package/dist/session/legacy-reset.d.ts +11 -0
  188. package/dist/session/legacy-reset.d.ts.map +1 -0
  189. package/dist/session/legacy-reset.js +16 -0
  190. package/dist/session/nimbus-session.d.ts +41 -15
  191. package/dist/session/nimbus-session.d.ts.map +1 -1
  192. package/dist/session/nimbus-session.js +64 -70
  193. package/dist/session/npm-install-port.d.ts.map +1 -1
  194. package/dist/session/npm-install-port.js +1 -0
  195. package/dist/session/programmatic.d.ts +13 -18
  196. package/dist/session/programmatic.d.ts.map +1 -1
  197. package/dist/session/programmatic.js +53 -39
  198. package/dist/session/replica-routes.d.ts +2 -3
  199. package/dist/session/replica-routes.d.ts.map +1 -1
  200. package/dist/session/replica-routes.js +3 -10
  201. package/dist/session/routes.d.ts.map +1 -1
  202. package/dist/session/routes.js +7 -10
  203. package/dist/session/rpc.d.ts +104 -20
  204. package/dist/session/rpc.d.ts.map +1 -1
  205. package/dist/session/rpc.js +184 -37
  206. package/dist/session/start-real-vite.js +2 -2
  207. package/dist/session/state-store.d.ts +1 -17
  208. package/dist/session/state-store.d.ts.map +1 -1
  209. package/dist/session/state-store.js +3 -53
  210. package/dist/session/supervisor-op.d.ts +7 -0
  211. package/dist/session/supervisor-op.d.ts.map +1 -1
  212. package/dist/session/supervisor-op.js +6 -1
  213. package/dist/session/supervisor-rpc.d.ts +104 -15
  214. package/dist/session/supervisor-rpc.d.ts.map +1 -1
  215. package/dist/session/supervisor-rpc.js +188 -71
  216. package/dist/session/vite-command.d.ts.map +1 -1
  217. package/dist/session/vite-command.js +17 -14
  218. package/dist/session/ws.d.ts.map +1 -1
  219. package/dist/session/ws.js +20 -8
  220. package/dist/shell/npm-bin-entrypoints.d.ts.map +1 -1
  221. package/dist/shell/npm-bin-entrypoints.js +30 -5
  222. package/dist/vfs/facet-resident-limits.d.ts +33 -0
  223. package/dist/vfs/facet-resident-limits.d.ts.map +1 -0
  224. package/dist/vfs/facet-resident-limits.js +33 -0
  225. package/dist/vfs/facet-resident-store.d.ts +2 -10
  226. package/dist/vfs/facet-resident-store.d.ts.map +1 -1
  227. package/dist/vfs/facet-resident-store.js +1594 -219
  228. package/dist/workspace-host.d.ts +2 -0
  229. package/dist/workspace-host.d.ts.map +1 -1
  230. package/dist/workspace-host.js +2 -0
  231. package/dist/wrangler/nimbus-wrangler.d.ts +0 -2
  232. package/dist/wrangler/nimbus-wrangler.d.ts.map +1 -1
  233. package/dist/wrangler/nimbus-wrangler.js +5 -22
  234. package/package.json +8 -7
  235. package/public/_assets/opencode/1.16.2/index-attach.js +2 -2
  236. package/public/_assets/runtime/esbuild-cli-c4fda380d52befc1.js +6892 -0
  237. package/public/_assets/runtime/git-de3e60c9f3ff006a.js +103 -0
  238. package/public/_assets/runtime/{node-shims-7b4dd7a76d95d21e.js → node-shims-06565b121555c194.js} +2089 -861
  239. package/public/_assets/runtime/resident-store-6ffb1939c53d982f.js +2264 -0
  240. package/public/_assets/runtime/vfs-write-ledger-e501e8fc793bc2c1.js +889 -0
  241. package/scripts/build-opencode-attach-entry.mjs +51 -1
  242. package/scripts/bundle-facet-workers.mjs +114 -3
  243. package/scripts/bundle-git.mjs +88 -27
  244. package/scripts/bundle-node-shims.mjs +72 -46
  245. package/scripts/bundle-runtime.mjs +18 -421
  246. package/scripts/cf-git-patch.mjs +137 -0
  247. package/scripts/patch-install-deps.mjs +49 -96
  248. package/scripts/runtime-specs.mjs +435 -0
  249. package/vendor/git-http.generated.d.ts +82 -0
  250. package/vendor/git-upstream.generated.d.ts +4378 -0
  251. package/vendor/git.LICENSE +7 -0
  252. package/vendor/git.generated.d.mts +21 -0
  253. package/vendor/git.generated.mjs +103 -0
  254. package/dist/replica/suspension.d.ts +0 -36
  255. package/dist/replica/suspension.d.ts.map +0 -1
  256. package/dist/replica/suspension.js +0 -49
  257. package/dist/runtime/static-server.d.ts +0 -3
  258. package/dist/runtime/static-server.d.ts.map +0 -1
  259. package/dist/runtime/static-server.js +0 -133
  260. package/scripts/clean-dist.mjs +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/hosted/commands.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAuB5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,EACnD,oBAAoB,GAAG,gBAAgB,GAAG,cAAc,GAAG,eAAe,GAAG,YAAY,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,WAAW,GAAG,iBAAiB,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,GAAG,0BAA0B,CAClV,GAAG;IACF,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,aAAa,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IAChD,sBAAsB,EAAE,eAAe,CAAC,wBAAwB,CAAC,CAAC;CACnE,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA8qDhH"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/hosted/commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAwB5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,EACnD,oBAAoB,GAAG,gBAAgB,GAAG,cAAc,GAAG,eAAe,GAAG,YAAY,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,WAAW,GAAG,iBAAiB,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,GAAG,0BAA0B,CAClV,GAAG;IACF,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,aAAa,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IAChD,sBAAsB,EAAE,eAAe,CAAC,wBAAwB,CAAC,CAAC;CACnE,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA0/ChH"}
@@ -1,13 +1,15 @@
1
- import { Shell, createCurlCommand, createNpmCommand, NPM_VERSION, createTopCommand, createWatchCommand, createHelpCommand, rehydrateGlobalPackages } from '@nimbus-sh/core/substrate/lifo/index.js';
1
+ import { Shell, createCurlCommand, createNpmCommand, NPM_VERSION, createTopCommand, createWatchCommand, createHelpCommand } from '@nimbus-sh/core/substrate/lifo/index.js';
2
2
  import { createKillCommand } from '@nimbus-sh/core/substrate/lifo/commands/system/kill.js';
3
+ import { exitCodeForSignal, signalDisposition } from '@nimbus-sh/core/substrate/lifo/shell/signals.js';
3
4
  import { textSink } from '@nimbus-sh/core/_shared/bytes.js';
4
5
  import { BASH_RUNNER, CRED_KERNEL, requireVfsCred } from '@nimbus-sh/core/runtime/os-contracts.js';
5
- import { ExecutionFs } from '@nimbus-sh/core/shell/execution-fs.js';
6
- import { EsbuildService } from '@nimbus-sh/core/runtime/esbuild-service.js';
6
+ import { ProcessView } from '@nimbus-sh/core/runtime/process-files.js';
7
+ import { makeEsbuildCommand } from '@nimbus-sh/core/runtime/esbuild-cli.js';
8
+ import { runEsbuildCli, supervisorEsbuildService } from '../facets/esbuild-transform.js';
7
9
  import { runFresh } from '../runtime/node-runner.js';
8
10
  import { runBunScript, BUN_VERSION } from '../runtime/bun-runner.js';
9
11
  import { buildRuntimeHandler, resolveRuntimeScriptPath } from '@nimbus-sh/core/runtime/runtime-registry.js';
10
- import { normalizeVfsPath, parentVfsPath, resolveVfsPath } from '@nimbus-sh/core/vfs/path.js';
12
+ import { normalizeVfsPath, resolveVfsPath } from '@nimbus-sh/core/vfs/path.js';
11
13
  import { NimbusWrangler } from '../wrangler/nimbus-wrangler.js';
12
14
  import { filterWranglerFlags, detectBundlerBin, checkNodeModulesGuard, detectUnsupportedWranglerConfig, refusedNextSubcommand, NEXT_REFUSAL_MESSAGE } from '../session/helpers.js';
13
15
  import { createViteCommand } from '../session/vite-command.js';
@@ -28,6 +30,7 @@ import { makeNimbusVerbHandler } from '@nimbus-sh/core/runtime/nimbus-command.js
28
30
  export async function registerHostedCommands(self, workspace) {
29
31
  const sqliteFs = workspace.vfs;
30
32
  const kernelFs = sqliteFs.as(CRED_KERNEL);
33
+ const namespaceFs = workspace.filesystem.namespaceFs(CRED_KERNEL);
31
34
  const kernel = workspace.kernel;
32
35
  const shell = workspace.shell;
33
36
  const registry = workspace.registry;
@@ -44,6 +47,48 @@ export async function registerHostedCommands(self, workspace) {
44
47
  setUmask: (mask) => self.processes.setUmask(pid, mask),
45
48
  runAs: runAsProcess,
46
49
  });
50
+ // `kill` is the shell's builtin; the session's own processes (resident
51
+ // servers, the vite shim), numbered in this table's pid space, are reached
52
+ // through here, and their teardown releases what they hold.
53
+ const hostSignals = {
54
+ isLive: (pid) => self._viteShimPid === pid || self.processes.get(pid)?.state === 'running',
55
+ async signal(pid, signal, stderr) {
56
+ // Ending one is the only thing a resident's teardown can do: it has no
57
+ // stop, continue or handler delivery behind it.
58
+ if (signalDisposition(signal) !== 'terminate')
59
+ return 'unsupported';
60
+ // runtime primitive support (P11): the vite shim PID (registered by
61
+ // P5's long-running spawn) also tears down the in-process
62
+ // viteDevServer / cirrusReal — facetManager.kill only handles real
63
+ // Worker-Loader facets, and would leave the shim running with its port
64
+ // registered against a dead PID.
65
+ if (self._viteShimPid === pid) {
66
+ try {
67
+ if (self.cirrusReal?.isRunning) {
68
+ self.cirrusReal.stop(self.ctx);
69
+ self.cirrusReal = null;
70
+ }
71
+ if (self.viteDevServer?.isRunning) {
72
+ self.viteDevServer.stop();
73
+ self.viteDevServer = null;
74
+ await self.ctx.storage.delete(VITE_CONFIG_KEY);
75
+ }
76
+ }
77
+ catch (error) {
78
+ await stderr.write(`kill: while stopping vite shim: ${error instanceof Error ? error.message : String(error)}\n`);
79
+ }
80
+ const code = exitCodeForSignal(signal);
81
+ self.portRegistry.unregisterByPid(pid);
82
+ self.processes.kill(pid, code);
83
+ notifyTerminalEvent(terminal, { type: 'exit', pid, code, reason: `SIG${signal}`, command: 'vite' });
84
+ self._viteShimPid = null;
85
+ self._viteShimPort = null;
86
+ return 'delivered';
87
+ }
88
+ return facetMgr.kill(pid, signal) ? 'delivered' : 'no-such-process';
89
+ },
90
+ };
91
+ shell.setHostProcessSignals(hostSignals);
47
92
  self._setCpRegistry(registry);
48
93
  registry.register('chsh', makeChshCommand({
49
94
  isBashInstalled: async (home) => (await listInstalledRuntimes(sqliteFs, home)).some((runtime) => runtime.name === 'bash'),
@@ -210,7 +255,7 @@ export async function registerHostedCommands(self, workspace) {
210
255
  cred,
211
256
  setUmask: (mask) => ctx.setUmask(mask),
212
257
  runAs: (targetCred, argv) => ctx.runAs(targetCred, argv),
213
- vfs: new ExecutionFs(workspace.filesystem.bind({ pid, cred })),
258
+ vfs: new ProcessView(workspace.filesystem.bind({ pid, cred })),
214
259
  signal: new AbortController().signal,
215
260
  stdout,
216
261
  stderr,
@@ -282,7 +327,7 @@ export async function registerHostedCommands(self, workspace) {
282
327
  getEsbuild: () => {
283
328
  if (!self.esbuildService) {
284
329
  self.ensureSqliteFs();
285
- self.esbuildService = new EsbuildService(kernelFs);
330
+ self.esbuildService = supervisorEsbuildService(self.ctx, self.env, namespaceFs);
286
331
  }
287
332
  return self.esbuildService;
288
333
  },
@@ -430,7 +475,7 @@ export async function registerHostedCommands(self, workspace) {
430
475
  getEsbuild: () => {
431
476
  if (!self.esbuildService) {
432
477
  self.ensureSqliteFs();
433
- self.esbuildService = new EsbuildService(kernelFs);
478
+ self.esbuildService = supervisorEsbuildService(self.ctx, self.env, namespaceFs);
434
479
  }
435
480
  return self.esbuildService;
436
481
  },
@@ -474,7 +519,7 @@ export async function registerHostedCommands(self, workspace) {
474
519
  getEsbuild: () => {
475
520
  if (!self.esbuildService) {
476
521
  self.ensureSqliteFs();
477
- self.esbuildService = new EsbuildService(kernelFs);
522
+ self.esbuildService = supervisorEsbuildService(self.ctx, self.env, namespaceFs);
478
523
  }
479
524
  return self.esbuildService;
480
525
  },
@@ -489,170 +534,11 @@ export async function registerHostedCommands(self, workspace) {
489
534
  registry.register('curl', createCurlCommand(kernel));
490
535
  }
491
536
  catch { }
492
- // ── df with SQLite stats + cache + process metrics ──────────────────
493
- registry.register('df', async (ctx) => {
494
- const stats = sqliteFs.getStats();
495
- const pstats = facetMgr.stats;
496
- const used = stats.usedBytes;
497
- const cap = stats.capacityBytes;
498
- const avail = cap - used;
499
- const pct = ((used / cap) * 100).toFixed(0);
500
- const fmt = (b) => {
501
- if (b >= 1e9)
502
- return (b / 1e9).toFixed(1) + 'G';
503
- if (b >= 1e6)
504
- return (b / 1e6).toFixed(1) + 'M';
505
- if (b >= 1e3)
506
- return (b / 1e3).toFixed(1) + 'K';
507
- return b + 'B';
508
- };
509
- ctx.stdout.write('Filesystem Size Used Avail Use% Mounted on\n');
510
- ctx.stdout.write('sqlite ' + fmt(cap).padStart(5) + ' ' + fmt(used).padStart(5) +
511
- ' ' + fmt(avail).padStart(5) + ' ' + pct.padStart(3) + '% /\n');
512
- ctx.stdout.write('\nCache: ' + stats.cache.entries + '/' + stats.cache.maxEntries +
513
- ' slots | hit rate: ' + stats.cache.hitRate +
514
- '% | evictions: ' + stats.cache.evictions + '\n');
515
- ctx.stdout.write('Procs: ' + pstats.running + ' running, ' +
516
- pstats.exited + ' exited, ' +
517
- pstats.total + ' total (next PID: ' + pstats.nextPid + ')\n');
518
- return 0;
519
- });
520
- // ── esbuild command: transform/bundle via esbuild facet ───────────────
521
- // Lazy-creates the EsbuildService on first use (esbuild-wasm is ~10MB).
522
- registry.register('esbuild', async (ctx) => {
523
- const args = ctx.args || [];
524
- if (args.includes('--version')) {
525
- ctx.stdout.write('0.24.2 (esbuild-wasm, bundled)\n');
526
- return 0;
527
- }
528
- if (args.includes('--help') || args.length === 0) {
529
- ctx.stdout.write('Usage: esbuild [options] [entry points]\n\n');
530
- ctx.stdout.write('Options:\n');
531
- ctx.stdout.write(' --bundle Bundle all dependencies into output\n');
532
- ctx.stdout.write(' --outfile=<path> Write output to a file\n');
533
- ctx.stdout.write(' --outdir=<path> Write output to a directory\n');
534
- ctx.stdout.write(' --format=esm|cjs Output format (default: esm)\n');
535
- ctx.stdout.write(' --platform=browser|node Target platform\n');
536
- ctx.stdout.write(' --minify Minify output\n');
537
- ctx.stdout.write(' --sourcemap Generate source maps\n');
538
- ctx.stdout.write(' --target=<target> JS target (default: esnext)\n');
539
- ctx.stdout.write(' --loader=<loader> Force file loader (ts, tsx, jsx, css)\n');
540
- ctx.stdout.write(' --version Show version\n');
541
- ctx.stdout.write('\nPowered by esbuild-wasm (bundled in supervisor).\n');
542
- return 0;
543
- }
544
- // Lazy-init esbuild service
545
- if (!self.esbuildService) {
546
- self.ensureSqliteFs();
547
- self.esbuildService = new EsbuildService(kernelFs);
548
- }
549
- // Parse flags
550
- const flags = {};
551
- const entryPoints = [];
552
- for (const arg of args) {
553
- if (arg.startsWith('--')) {
554
- const eqIdx = arg.indexOf('=');
555
- if (eqIdx > 0) {
556
- flags[arg.substring(2, eqIdx)] = arg.substring(eqIdx + 1);
557
- }
558
- else {
559
- flags[arg.substring(2)] = 'true';
560
- }
561
- }
562
- else {
563
- entryPoints.push(arg);
564
- }
565
- }
566
- // Transform-only mode (single file, no --bundle)
567
- if (entryPoints.length === 1 && !flags['bundle']) {
568
- // Read the file and transform it
569
- const filePath = resolveVfsPath(entryPoints[0], ctx.cwd || '/home/user');
570
- let code;
571
- try {
572
- code = kernelFs.readFileString(filePath);
573
- }
574
- catch {
575
- ctx.stderr.write(`esbuild: could not read file: ${entryPoints[0]}\n`);
576
- return 1;
577
- }
578
- try {
579
- ctx.stderr.write('Transforming...\n');
580
- const result = await self.esbuildService.transform(code, {
581
- loader: flags['loader'] || (() => {
582
- const ext = filePath.split('.').pop()?.toLowerCase();
583
- return { ts: 'ts', tsx: 'tsx', jsx: 'jsx', js: 'js', mts: 'ts', mjs: 'js', css: 'css', json: 'json' }[ext || ''];
584
- })(),
585
- format: flags['format'] || 'esm',
586
- target: flags['target'] || 'esnext',
587
- sourcemap: flags['sourcemap'] === 'true',
588
- minify: flags['minify'] === 'true',
589
- });
590
- if (flags['outfile']) {
591
- const outPath = resolveVfsPath(flags['outfile'], ctx.cwd || '/home/user');
592
- const parent = parentVfsPath(outPath);
593
- if (parent && !kernelFs.exists(parent))
594
- kernelFs.mkdir(parent, { recursive: true });
595
- kernelFs.writeFile(outPath, result.code);
596
- ctx.stdout.write(` ${outPath} ${result.code.length} bytes\n`);
597
- }
598
- else {
599
- ctx.stdout.write(result.code);
600
- }
601
- for (const w of result.warnings || []) {
602
- ctx.stderr.write(`warning: ${w.text}\n`);
603
- }
604
- return 0;
605
- }
606
- catch (e) {
607
- ctx.stderr.write(`esbuild error: ${e?.message || e}\n`);
608
- return 1;
609
- }
610
- }
611
- // Bundle mode
612
- if (entryPoints.length === 0) {
613
- ctx.stderr.write('esbuild: no entry points specified\n');
614
- return 1;
615
- }
616
- // Resolve entry points relative to cwd
617
- const resolvedEntryPoints = entryPoints.map(ep => resolveVfsPath(ep, ctx.cwd || '/home/user'));
618
- try {
619
- ctx.stderr.write('Bundling...\n');
620
- const result = await self.esbuildService.build(resolvedEntryPoints, {
621
- bundle: flags['bundle'] === 'true',
622
- format: flags['format'] || 'esm',
623
- target: flags['target'] || 'esnext',
624
- platform: flags['platform'] || 'browser',
625
- outdir: flags['outfile'] ? undefined : (flags['outdir'] || '/dist'),
626
- outfile: flags['outfile'],
627
- sourcemap: flags['sourcemap'] === 'true',
628
- minify: flags['minify'] === 'true',
629
- external: flags['external']?.split(','),
630
- });
631
- for (const e of result.errors || []) {
632
- ctx.stderr.write(`error: ${e.text}\n`);
633
- }
634
- for (const w of result.warnings || []) {
635
- ctx.stderr.write(`warning: ${w.text}\n`);
636
- }
637
- if (result.errors?.length)
638
- return 1;
639
- // Write output files to VFS
640
- for (const f of result.outputFiles || []) {
641
- const outPath = normalizeVfsPath(f.path);
642
- const parent = parentVfsPath(outPath);
643
- if (parent && !kernelFs.exists(parent))
644
- kernelFs.mkdir(parent, { recursive: true });
645
- kernelFs.writeFile(outPath, f.contents);
646
- ctx.stdout.write(` ${outPath} ${f.contents.length} bytes\n`);
647
- }
648
- ctx.stderr.write(`Done (${result.outputFiles?.length || 0} output files)\n`);
649
- return 0;
650
- }
651
- catch (e) {
652
- ctx.stderr.write(`esbuild error: ${e?.message || e}\n`);
653
- return 1;
654
- }
655
- });
537
+ // ── esbuild: the real esbuild CLI, in the session's esbuild facet ─────
538
+ // See @nimbus-sh/core runtime/esbuild-cli.ts.
539
+ registry.register('esbuild', makeEsbuildCommand({
540
+ run: (args, ctx, output) => runEsbuildCli(self.ctx, self.env, ctx.pid, args, output),
541
+ }));
656
542
  // ── vite command: start/stop the dev server ──────────────────────────
657
543
  registry.register('vite', createViteCommand(self));
658
544
  // ── nimbus-wrangler / wrangler command: Worker dev server ─────────────
@@ -715,7 +601,7 @@ export async function registerHostedCommands(self, workspace) {
715
601
  // Lazy-init esbuild
716
602
  if (!self.esbuildService) {
717
603
  self.ensureSqliteFs();
718
- self.esbuildService = new EsbuildService(kernelFs);
604
+ self.esbuildService = supervisorEsbuildService(self.ctx, self.env, namespaceFs);
719
605
  }
720
606
  // Parse --root flag; default to the shell cwd so `npm run dev` from
721
607
  // a project directory picks up that project's wrangler.jsonc.
@@ -886,6 +772,7 @@ export async function registerHostedCommands(self, workspace) {
886
772
  const identity = commandIdentityFor(childProcess.pid);
887
773
  const terminal = new HeadlessTerminal();
888
774
  const childShell = new Shell(terminal, workspace.filesystem, registry, { ...env, ...(options?.env || {}) }, processRegistry, identity);
775
+ childShell.setHostProcessSignals(hostSignals);
889
776
  HeredocHandler.install(childShell, terminal);
890
777
  if (options?.cwd)
891
778
  childShell.setCwd(options.cwd);
@@ -916,7 +803,7 @@ export async function registerHostedCommands(self, workspace) {
916
803
  if (opts.longRunning)
917
804
  self.processes.setLongRunning(pid);
918
805
  const startedAt = Date.now();
919
- // Spawn banner — matches facet-manager.ts onSpawn format.
806
+ // Spawn banner — matches facets/manager.ts onSpawn format.
920
807
  if (terminal) {
921
808
  const label = opts.longRunning ? 'started (long-running)' : 'started';
922
809
  terminal.write(`\x1b[2m[shell ${label}: pid=${pid} cmd="${cmd}"]\x1b[0m\r\n`);
@@ -1572,76 +1459,8 @@ export async function registerHostedCommands(self, workspace) {
1572
1459
  }
1573
1460
  return 0;
1574
1461
  });
1575
- const shellKillCommand = createKillCommand(processRegistry);
1576
- registry.register('kill', async (ctx) => {
1577
- const pidArg = ctx.args[0];
1578
- if (!pidArg) {
1579
- ctx.stderr.write('Usage: kill <pid>\n');
1580
- return 1;
1581
- }
1582
- if (pidArg.startsWith('-') || pidArg.startsWith('%')) {
1583
- return shellKillCommand(ctx);
1584
- }
1585
- const pid = parseInt(pidArg);
1586
- if (isNaN(pid)) {
1587
- ctx.stderr.write('kill: invalid pid\n');
1588
- return 1;
1589
- }
1590
- if (processRegistry.get(pid)) {
1591
- return shellKillCommand(ctx);
1592
- }
1593
- // runtime primitive support (P11): if the target is the vite shim PID
1594
- // (registered by P5's long-running spawn), tear down the
1595
- // in-process viteDevServer / cirrusReal too — facetManager.kill
1596
- // only handles real Worker-Loader facets, and would leave the
1597
- // shim running with its port registered against a dead PID.
1598
- if (self._viteShimPid === pid) {
1599
- try {
1600
- if (self.cirrusReal?.isRunning) {
1601
- self.cirrusReal.stop(self.ctx);
1602
- self.cirrusReal = null;
1603
- }
1604
- if (self.viteDevServer?.isRunning) {
1605
- self.viteDevServer.stop();
1606
- self.viteDevServer = null;
1607
- try {
1608
- await self.ctx.storage.delete(VITE_CONFIG_KEY);
1609
- }
1610
- catch { }
1611
- }
1612
- }
1613
- catch (e) {
1614
- ctx.stderr.write('kill: while stopping vite shim: ' + (e?.message || e) + '\n');
1615
- }
1616
- try {
1617
- self.portRegistry.unregisterByPid(pid);
1618
- }
1619
- catch { }
1620
- try {
1621
- self.processes.kill(pid);
1622
- }
1623
- catch { }
1624
- notifyTerminalEvent(terminal, {
1625
- type: 'exit', pid, code: 137, command: 'vite',
1626
- });
1627
- self._viteShimPid = null;
1628
- self._viteShimPort = null;
1629
- ctx.stdout.write(`Process ${pid} killed.\n`);
1630
- return 0;
1631
- }
1632
- if (facetMgr?.kill(pid)) {
1633
- ctx.stdout.write(`Process ${pid} killed.\n`);
1634
- return 0;
1635
- }
1636
- ctx.stderr.write(`kill: no such process: ${pid}\n`);
1637
- return 1;
1638
- });
1462
+ registry.register('kill', createKillCommand(processRegistry, hostSignals));
1639
1463
  registry.register('top', createTopCommand(processRegistry));
1640
1464
  registry.register('watch', createWatchCommand(registry));
1641
1465
  registry.register('help', createHelpCommand(registry));
1642
- // ── Rehydrate globally-installed npm packages ──
1643
- try {
1644
- rehydrateGlobalPackages(kernel.vfs, registry);
1645
- }
1646
- catch { }
1647
1466
  }
@@ -2,15 +2,17 @@ import type { NimbusWorkspace } from '@nimbus-sh/core/workspace';
2
2
  import type { PortRegistry } from '@nimbus-sh/core/runtime/port-registry.js';
3
3
  import type { ProcessLogReadOptions } from '@nimbus-sh/core/runtime/process-logs.js';
4
4
  import type { VfsCred } from '@nimbus-sh/core/runtime/os-contracts.js';
5
- import type { SandboxFs } from '@nimbus-sh/core/substrate/lifo/sandbox/types.js';
5
+ import { ProcessView } from '@nimbus-sh/core/runtime/process-files.js';
6
6
  import { type SupervisorOpEnvelope } from '@nimbus-sh/core/workspace/supervisor-op.js';
7
7
  import type { ComposedFacetManager, FacetManagerHostHooks } from '../facets/compose.js';
8
8
  import { WebSocketTerminal } from '../facets/ws-terminal.js';
9
9
  import * as operations from '../session/programmatic.js';
10
10
  import * as services from './services.js';
11
+ import { HostedSession, type HostedSessionScope } from './session.js';
11
12
  import { z } from 'zod/v4';
12
13
  declare const HostedTask: z.ZodEnum<{
13
14
  "resident-launch": "resident-launch";
15
+ "resident-keepalive": "resident-keepalive";
14
16
  "log-flush": "log-flush";
15
17
  "log-janitor": "log-janitor";
16
18
  }>;
@@ -30,24 +32,28 @@ export interface HostedRuntimeOptions {
30
32
  basePath?: string;
31
33
  origin?: string;
32
34
  }
33
- export interface RuntimeFiles extends SandboxFs {
35
+ /** The namespace as one credential sees it (a `VFS`, absolute paths), and the same for another. */
36
+ export type RuntimeFiles = ProcessView & {
34
37
  as(cred: VfsCred): RuntimeFiles;
35
- }
38
+ };
36
39
  export declare function composeHostedRuntime(options: HostedRuntimeOptions): Promise<{
37
- workspace: NimbusWorkspace;
38
- terminal: WebSocketTerminal;
39
- files: RuntimeFiles;
40
- runtimes: import("@nimbus-sh/core/runtime/runtime-manager.js").RuntimeManager;
40
+ supervisorOp: (envelope: SupervisorOpEnvelope) => Promise<unknown>;
41
+ /** The SDK's session surface for `Nimbus.fromSession`, optionally bound to one shell and identity. */
42
+ session: (scope?: HostedSessionScope) => HostedSession;
43
+ onScheduled: (task: HostedRuntimeTask) => Promise<void>;
44
+ terminalClose: (ws: WebSocket) => void;
45
+ close: () => Promise<void>;
41
46
  facets: () => ComposedFacetManager;
42
47
  ready: (options?: operations.ProgrammaticReadyOptions | undefined) => Promise<{
43
48
  ok: true;
44
49
  preinstalled: string[];
45
50
  }>;
46
- exec: (command: string, options?: operations.ProgrammaticExecOptions | undefined) => Promise<operations.ProgrammaticExecResult>;
51
+ exec: (command: string, options?: operations.ProgrammaticExecOptions | undefined) => Promise<import("@nimbus-sh/core/runtime/exec-stream.js").ExecOutput>;
52
+ execStream: (command: string, options?: operations.ProgrammaticExecOptions | undefined) => Promise<import("@nimbus-sh/core/runtime/exec-stream.js").ExecStream>;
47
53
  runCode: (code: string, options?: (operations.ProgrammaticExecOptions & {
48
54
  language?: "javascript" | "typescript" | "python" | "ruby" | "shell";
49
55
  install?: "never" | "ifMissing";
50
- }) | undefined) => Promise<operations.ProgrammaticExecResult>;
56
+ }) | undefined) => Promise<import("@nimbus-sh/core/runtime/exec-stream.js").ExecOutput>;
51
57
  startProcess: (command: string, options?: operations.ProgrammaticExecOptions | undefined) => Promise<operations.ProgrammaticStartResult>;
52
58
  listProcesses: () => Promise<operations.SerializedProcess[]>;
53
59
  killProcess: (pid: number) => Promise<{
@@ -124,12 +130,12 @@ export declare function composeHostedRuntime(options: HostedRuntimeOptions): Pro
124
130
  }>;
125
131
  spawnWorker: (workerCode: string, command: string, cwd: string, opts?: import("../workspace-host.js").LongRunningWorkerSpawnOptions | undefined) => Promise<import("../facets/manager.js").SpawnedWorker>;
126
132
  routeCapabilityPort: (port: number, capability: string, request: Request<unknown, CfProperties<unknown>>, innerPath: string) => Promise<Response>;
127
- supervisorOp: (envelope: SupervisorOpEnvelope) => Promise<unknown>;
128
- onScheduled: (task: HostedRuntimeTask) => Promise<void>;
129
133
  attachTerminal: (ws: WebSocket) => Promise<void>;
130
134
  terminalFrame: (ws: WebSocket, message: string | ArrayBuffer) => Promise<void>;
131
- terminalClose: (ws: WebSocket) => void;
132
- close: () => Promise<void>;
135
+ workspace: NimbusWorkspace;
136
+ terminal: WebSocketTerminal;
137
+ files: RuntimeFiles;
138
+ runtimes: import("@nimbus-sh/core/runtime/runtime-manager.js").RuntimeManager;
133
139
  }>;
134
140
  export type HostedRuntime = Awaited<ReturnType<typeof composeHostedRuntime>>;
135
141
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/hosted/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAA6B,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAIlG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAqD,KAAK,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAE1I,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AASxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAO7D,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,QAAA,MAAM,UAAU;;;;EAA0D,CAAC;AAC3E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,eAAe,CAAC;IAC3B,GAAG,EAAE,kBAAkB,CAAC;IACxB,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,sBAAsB,CAAC;IAClC,mBAAmB,CAAC,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAAC;CACjC;AAqRD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAmBjD,MAAM,YAAY,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAiBjC,oBAAoB;wBACzB,iBAAiB;yBAChB,SAAS;wBACV,SAAS,WAAW,MAAM,GAAG,WAAW;wBACxC,SAAS;;GAGhC;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/hosted/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAA6B,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAElG,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAqD,KAAK,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAG1I,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AASxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAQ7D,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B,QAAA,MAAM,UAAU;;;;;EAAgF,CAAC;AACjG,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,eAAe,CAAC;IAC3B,GAAG,EAAE,kBAAkB,CAAC;IACxB,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,sBAAsB,CAAC;IAClC,mBAAmB,CAAC,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mGAAmG;AACnG,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG;IAAE,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAAA;CAAE,CAAC;AAuU7E,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB;6BA2C3C,oBAAoB;IAC7C,sGAAsG;sBACrF,kBAAkB;wBAIf,iBAAiB;wBACjB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAjCV,MAAM,YAAY,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAiBrC,SAAS;wBACV,SAAS,WAAW,MAAM,GAAG,WAAW;;;;;GAkB/D;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC"}