@nimbus-sh/worker 0.2.1 → 0.2.2

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 (38) hide show
  1. package/dist/loaders/generated-workers.d.ts +2 -2
  2. package/dist/loaders/generated-workers.d.ts.map +1 -1
  3. package/dist/loaders/generated-workers.js +3 -3
  4. package/dist/runtime/facet-loader-host.d.ts +3 -2
  5. package/dist/runtime/facet-loader-host.d.ts.map +1 -1
  6. package/dist/runtime/facet-loader-host.js +1 -0
  7. package/dist/runtime/ruby-repl.js +1 -1
  8. package/dist/runtime/ruby-resident.d.ts +20 -0
  9. package/dist/runtime/ruby-resident.d.ts.map +1 -0
  10. package/dist/runtime/ruby-resident.js +278 -0
  11. package/dist/session/init.d.ts +16 -7
  12. package/dist/session/init.d.ts.map +1 -1
  13. package/dist/session/init.js +181 -208
  14. package/dist/session/nimbus-session.d.ts +11 -1
  15. package/dist/session/nimbus-session.d.ts.map +1 -1
  16. package/dist/session/nimbus-session.js +13 -57
  17. package/dist/session/programmatic.d.ts +1 -1
  18. package/dist/session/programmatic.d.ts.map +1 -1
  19. package/dist/session/programmatic.js +1 -1
  20. package/dist/session/routes.js +1 -1
  21. package/package.json +2 -2
  22. package/scripts/bundle-facet-workers.mjs +4 -3
  23. package/scripts/bundle-runtime.mjs +276 -44
  24. package/dist/npm/tarball-stream.d.ts +0 -93
  25. package/dist/npm/tarball-stream.d.ts.map +0 -1
  26. package/dist/npm/tarball-stream.js +0 -235
  27. package/dist/npm/tarball.d.ts +0 -34
  28. package/dist/npm/tarball.d.ts.map +0 -1
  29. package/dist/npm/tarball.js +0 -97
  30. package/dist/runtime/clang-runner.d.ts +0 -37
  31. package/dist/runtime/clang-runner.d.ts.map +0 -1
  32. package/dist/runtime/clang-runner.js +0 -865
  33. package/dist/runtime/ruby-gems.d.ts +0 -30
  34. package/dist/runtime/ruby-gems.d.ts.map +0 -1
  35. package/dist/runtime/ruby-gems.js +0 -636
  36. package/dist/runtime/ruby-runner.d.ts +0 -75
  37. package/dist/runtime/ruby-runner.d.ts.map +0 -1
  38. package/dist/runtime/ruby-runner.js +0 -1577
@@ -3,12 +3,21 @@
3
3
  *
4
4
  * Why this is one big function and not a class:
5
5
  * initSession runs once per /ws upgrade and walks the session
6
- * through Phase R (rehydrate from SQL), Phase B (build kernel +
7
- * shell + register commands), Phase W (attach terminal), and
8
- * (cold-only) Phase O (MOTD + framework hint). The phases share
9
- * lots of locals (vfs, kernel, registry, shell) and ordering
10
- * matters strictly — there's no interesting reuse boundary that a
11
- * class decomposition would expose.
6
+ * through Phase R (rehydrate from SQL), Phase B (compose the
7
+ * workspace + register the session's commands), Phase W (attach
8
+ * terminal), and (cold-only) Phase O (MOTD + framework hint). The
9
+ * phases share lots of locals (vfs, kernel, registry, shell) and
10
+ * ordering matters strictly — there's no interesting reuse boundary
11
+ * that a class decomposition would expose.
12
+ *
13
+ * What it no longer does is COMPOSE the operating system. The kernel,
14
+ * the provider mounts, the command registry, the coreutils, the exec
15
+ * resolver, the default environment and the shell come from
16
+ * `NimbusWorkspace` (@nimbus-sh/core/workspace), which an embedder off
17
+ * Cloudflare builds the same way. What stays here is everything that
18
+ * only makes sense with a socket, a Durable Object and a product behind
19
+ * it: the terminal and its scrollback, the phase machine, the persisted
20
+ * shell state, npm, git, vite, wrangler and the facet-backed runtimes.
12
21
  *
13
22
  * The function is intentionally written so that a reader sees:
14
23
  * 1. setPhase('rehydrate') ...
@@ -24,9 +33,9 @@
24
33
  * - acceptShellWebSocket → self.initSession(ws) (S7 will extract).
25
34
  * - The class still has `initSession(ws)` as a delegator method.
26
35
  */
27
- import { Kernel, Shell, createDefaultRegistry, ProcessRegistry, MemoryPersistenceBackend, createCurlCommand, createNpmCommand, NPM_VERSION, createTopCommand, createWatchCommand, createHelpCommand, rehydrateGlobalPackages, } from '@nimbus-sh/core/substrate/lifo/index.js';
36
+ import { Shell, createCurlCommand, createNpmCommand, NPM_VERSION, createTopCommand, createWatchCommand, createHelpCommand, rehydrateGlobalPackages, } from '@nimbus-sh/core/substrate/lifo/index.js';
28
37
  import { createKillCommand } from '@nimbus-sh/core/substrate/lifo/commands/system/kill.js';
29
- import { SqliteVFSProvider } from '@nimbus-sh/core/vfs/sqlite-vfs.js';
38
+ import { NimbusWorkspace } from '@nimbus-sh/core/workspace';
30
39
  import { CRED_KERNEL, requireVfsCred } from '@nimbus-sh/core/runtime/os-contracts.js';
31
40
  import { WebSocketTerminal } from '../facets/ws-terminal.js';
32
41
  import { EsbuildService } from '@nimbus-sh/core/runtime/esbuild-service.js';
@@ -37,14 +46,12 @@ import { parseViteConfigSource } from '@nimbus-sh/core/runtime/vite-config-parse
37
46
  import { startRealVite } from './start-real-vite.js';
38
47
  import { findHtmlScriptEntrypoint, rewriteViteBuildHtml } from '../runtime/html-entrypoint.js';
39
48
  import { normalizeVfsPath, parentVfsPath, resolveVfsPath, stripLeadingSlashes } from '@nimbus-sh/core/vfs/path.js';
40
- import { installPathExecResolver, } from '@nimbus-sh/core/shell/exec-dispatch.js';
41
49
  import { ViteDevServer } from '../facets/vite-dev-server.js';
42
50
  import { shouldUseRealVite } from '../facets/cirrus-real.js';
43
51
  import { makeLongRunningPortStub, resolveLongRunningPort, expandArgvShellDefaults, } from '@nimbus-sh/core/runtime/long-running-handle.js';
44
52
  import { NimbusWrangler } from '../wrangler/nimbus-wrangler.js';
45
53
  import { filterWranglerFlags, detectBundlerBin, checkNodeModulesGuard, detectUnsupportedWranglerConfig, } from './helpers.js';
46
54
  import { HeredocHandler, LineEditorExtender } from '@nimbus-sh/core/shell/features.js';
47
- import { registerUnixCommands } from '@nimbus-sh/core/shell/unix-commands.js';
48
55
  import { registerShellEntrypointCommands } from '@nimbus-sh/core/shell/shell-entrypoints.js';
49
56
  import { makeChshCommand } from '@nimbus-sh/core/substrate/lifo/shell/default-shell.js';
50
57
  import { installNpmBinFallbackResolver } from '../shell/npm-bin-entrypoints.js';
@@ -62,7 +69,7 @@ import { listInstalledRuntimes, rehydrateInstalledRuntimes, registerRunnerFactor
62
69
  import { hasSeededProject, SEED_PROJECT_DIR } from '@nimbus-sh/core/vfs/seed-project.js';
63
70
  import { notifyTerminalEvent } from '../runtime/process-logs-api.js';
64
71
  import { stripAnsi } from '@nimbus-sh/core/runtime/process-logs.js';
65
- import { NIMBUS_VERSION, DEFAULT_HOSTNAME, DEFAULT_MOUNT_POINTS, NODE_VERSION, DEFAULT_PATH, } from '@nimbus-sh/core/constants.js';
72
+ import { DEFAULT_MOUNT_POINTS, NODE_VERSION, } from '@nimbus-sh/core/constants.js';
66
73
  import { ensureSessionStateSchema, loadShellState, stampHydratedAt, countSessionStateKeys, loadKernelMounts, persistKernelMounts, appendScrollback, loadScrollback, } from './state-store.js';
67
74
  import { recordRecoveryEvent } from '@nimbus-sh/core/observability/oom-discriminator.js';
68
75
  import { sessionAiEnv } from './ai.js';
@@ -77,7 +84,7 @@ function resolveNpmPrefix(prefix, cwd) {
77
84
  function quoteShellArgument(value) {
78
85
  return `'${value.replace(/'/g, `'\\''`)}'`;
79
86
  }
80
- export function initSession(self, ws) {
87
+ export async function initSession(self, ws) {
81
88
  self.ensureSqliteFs();
82
89
  const kernelFs = self.sqliteFs.as(CRED_KERNEL);
83
90
  self.ensureFacetManager();
@@ -157,43 +164,147 @@ export function initSession(self, ws) {
157
164
  self.terminal.write('\x1b[33m[nimbus] this session resumed on a new instance. Anything still '
158
165
  + 'running was lost with the old one — re-run it if it had not finished.\x1b[0m\r\n');
159
166
  }
160
- // [B'.4] Phase B — Build. Construct Kernel + Shell + registry +
161
- // install all commands. CPU-intensive phase. Spans from here
162
- // through ~line 1925 (just before Phase O).
167
+ // [B'.4] Phase B — Build. Compose the workspace (kernel + mounts +
168
+ // shell + the OS command set), then install the session's own
169
+ // commands and wiring on top. CPU-intensive phase. Spans from here
170
+ // through Phase O.
163
171
  setPhase(self, 'build', 'init-session');
164
- // ── Boot kernel with in-memory VFS (mounts delegate to SqliteFS) ──
165
- self.kernel = new Kernel(new MemoryPersistenceBackend());
166
- self.kernel.initFilesystem();
167
- // ── Mount SqliteFSProvider at all top-level directories [B'.2] ──
172
+ // ── Mount list = DEFAULT_MOUNT_POINTS ∪ persisted-mounts [B'.2] ──
168
173
  //
169
- // Mount list = DEFAULT_MOUNT_POINTS ∪ persisted-mounts. The
170
- // defaults are always present (they're platform invariants);
174
+ // The defaults are always present (they're platform invariants);
171
175
  // any extras a future custom-mount feature might add survive
172
- // reconnect via the nimbus_kernel_mounts table. The persist
173
- // step at the end writes the merged list back so the table
174
- // tracks the live mount tree.
176
+ // reconnect via the nimbus_kernel_mounts table. The persist step
177
+ // below writes the merged list back so the table tracks the live
178
+ // mount tree — today the same 7 rows every initSession.
175
179
  const persistedMounts = loadKernelMounts(self.ctx);
176
180
  const mountPoints = Array.from(new Set([
177
181
  ...DEFAULT_MOUNT_POINTS,
178
182
  ...persistedMounts,
179
183
  ]));
180
- for (const mp of mountPoints) {
181
- const provider = new SqliteVFSProvider(self.sqliteFs, mp);
182
- self.kernel.vfs.mount('/' + mp, provider);
184
+ // ── What the session adds to the workspace's environment [B'.1] ──
185
+ //
186
+ // The platform defaults — PATH, PS1, HOME, PORT, HOST and the rest —
187
+ // belong to the workspace (core/workspace/nimbus-workspace.ts) because
188
+ // they are the OS's, not this transport's. What is genuinely the
189
+ // session's layers here:
190
+ //
191
+ // NIMBUS_SESSION_ID — derived from sessionBasePath = "/s/<id>". Set
192
+ // here as a placeholder ("") and patched below right
193
+ // after the shell exists, so the user's first command
194
+ // sees the real id. Sentry / Datadog / any ops
195
+ // integration that wants a session-stable token reads it.
196
+ //
197
+ // sessionAiEnv() — the session AI gateway (session/ai.ts). A coding
198
+ // agent, a user's own script or curl reaches the
199
+ // session's models from these without being configured:
200
+ // by OPENAI_BASE_URL if it reads one, and otherwise by
201
+ // CLOUDFLARE_API_KEY, this session's capability token,
202
+ // which mediates the tool's own egress back to the
203
+ // gateway (_shared/ai-egress.ts).
204
+ //
205
+ // persisted.env — the user's own `export FOO=bar`, which survives
206
+ // reconnect and wins over everything above. A user who
207
+ // exports their own OPENAI_BASE_URL or CLOUDFLARE_API_KEY
208
+ // still wins; their key is not this session's token, so
209
+ // their request goes to their own account.
210
+ const envOverlay = {
211
+ NIMBUS_SESSION_ID: '',
212
+ ...sessionAiEnv(),
213
+ ...(persisted.env || {}),
214
+ };
215
+ // ── The identity the shell acts under ──
216
+ //
217
+ // Every command the shell runs is credentialed by a live entry in the
218
+ // session's process table, which is what makes `sudo`, `chown` and the
219
+ // per-process umask mean anything. A workspace with no host process
220
+ // table falls back to a bare uid-1000 identity; this one has one.
221
+ if (self.shellProcessPid !== null) {
222
+ self.processes.exit(self.shellProcessPid, 0);
183
223
  }
184
- // Persist the mount-tree. Today this writes the same
185
- // DEFAULT_MOUNT_POINTS list every initSession (idempotent — the
186
- // table just keeps the same 7 rows). Future custom mounts will
187
- // flow through the same code path.
224
+ const shellProcess = self.processes.spawn('sh', ['sh'], persisted.cwd || '/home/user');
225
+ self.shellProcessPid = shellProcess.pid;
226
+ const runAsProcess = async (parent, cred, argv) => {
227
+ if (argv.length === 0)
228
+ return 0;
229
+ const child = self.processes.spawn(argv.join(' '), argv, parent.cwd, { parentPid: parent.pid, cred });
230
+ const activeShell = self.shell;
231
+ if (!activeShell) {
232
+ self.processes.exit(child.pid, 1);
233
+ throw new Error('shell is not initialized');
234
+ }
235
+ const identity = commandIdentityFor(child.pid);
236
+ let exitCode = 1;
237
+ try {
238
+ const stdin = parent.stdin && parent.stdin !== parent.terminalStdin
239
+ ? await parent.stdin.readAll()
240
+ : undefined;
241
+ const result = await activeShell.execute(argv.map(quoteShellArgument).join(' '), {
242
+ cwd: parent.cwd,
243
+ env: parent.env,
244
+ stdin,
245
+ terminalStdin: parent.terminalStdin,
246
+ signal: parent.signal,
247
+ isolateShellState: true,
248
+ terminalFds: {
249
+ stdin: parent.isFdTerminal?.(0) ?? false,
250
+ stdout: parent.isFdTerminal?.(1) ?? false,
251
+ stderr: parent.isFdTerminal?.(2) ?? false,
252
+ },
253
+ onStdout: (data) => parent.stdout.write(data),
254
+ onStderr: (data) => parent.stderr.write(data),
255
+ commandContext: {
256
+ pid: identity.pid,
257
+ cred: identity.cred,
258
+ setUmask: identity.setUmask,
259
+ },
260
+ runAs: runAsProcess,
261
+ });
262
+ exitCode = result.exitCode;
263
+ return exitCode;
264
+ }
265
+ finally {
266
+ self.processes.exit(child.pid, exitCode);
267
+ }
268
+ };
269
+ const commandIdentityFor = (pid) => ({
270
+ pid,
271
+ get cred() {
272
+ return self.processes.cred(pid);
273
+ },
274
+ setUmask(mask) {
275
+ self.processes.setUmask(pid, mask);
276
+ },
277
+ runAs: runAsProcess,
278
+ });
279
+ // ── The workspace: one recipe for kernel + mounts + shell + coreutils ──
280
+ //
281
+ // No `facets`: the session registers its own runtime factories below,
282
+ // because the ones it needs carry REPLs, a resident-process substrate
283
+ // and clang, none of which a bare facet host reaches. Everything the
284
+ // workspace does register is the OS, and is identical either way.
285
+ const workspace = await NimbusWorkspace.create({
286
+ sql: self.ctx.storage.sql,
287
+ // The filesystem this DO already opened. `ensureSqliteFs` above may
288
+ // have been called many requests ago; a second SqliteVFS over the
289
+ // same rows would be a second cache serving stale reads.
290
+ vfs: self.sqliteFs,
291
+ mounts: mountPoints,
292
+ env: envOverlay,
293
+ terminal: self.terminal,
294
+ identity: commandIdentityFor(shellProcess.pid),
295
+ });
296
+ self.kernel = workspace.kernel;
297
+ self.shell = workspace.shell;
298
+ const kernel = workspace.kernel;
299
+ const registry = workspace.registry;
300
+ const processRegistry = kernel.processRegistry;
301
+ const env = workspace.env;
302
+ const sqliteFs = self.sqliteFs;
303
+ const facetMgr = self.facetManager;
188
304
  try {
189
305
  persistKernelMounts(self.ctx, mountPoints);
190
306
  }
191
307
  catch { /* fail-soft */ }
192
- // ── Create command registry ──
193
- const registry = createDefaultRegistry();
194
- const kernel = self.kernel;
195
- const sqliteFs = self.sqliteFs;
196
- const facetMgr = self.facetManager;
197
308
  // ── editor/monaco (2026-05-13): editor-pane fs bridge ──
198
309
  //
199
310
  // The terminal hosts the WS that the editor pane reuses for
@@ -321,24 +432,10 @@ export function initSession(self, ws) {
321
432
  });
322
433
  }
323
434
  });
324
- // ── WASI Stage 1: exec dispatch for path-shaped invocations ──
325
- // `./x`, `/abs/x`, `../x` go through POSIX execve semantics
326
- // (shell/exec-dispatch.ts): exec-bit check (with the wasm-magic
327
- // grandfather rule for pre-chmod modes), then format dispatch —
328
- // `\0asm` → wasm-runner, `#!` → the named interpreter, binary
329
- // junk → honest ENOEXEC, plain text → sh (the POSIX ENOEXEC
330
- // fallback). Bare-word "X" still must come from the registered set.
331
- //
332
- // Implementation: monkey-patch registry.resolve. cwd and file
333
- // state are read at every resolve call (not cached) so `cd` and
334
- // recompiles between invocations are honoured.
335
- installPathExecResolver(registry, kernelFs, () => self.shell?.getCwd() || '/home/user');
336
435
  // W8: hand the registry to the cp broker so child_process.spawn from
337
436
  // a parent facet can resolve and dispatch commands the same way the
338
- // shell does. Done AFTER all registrations are complete (below).
437
+ // shell does.
339
438
  self._setCpRegistry(registry);
340
- // ── Unix commands (30+ real implementations) ──
341
- registerUnixCommands(registry, sqliteFs);
342
439
  registry.register('chsh', makeChshCommand({
343
440
  isBashInstalled: (home) => listInstalledRuntimes(sqliteFs, home).some((runtime) => runtime.name === 'bash'),
344
441
  }));
@@ -355,8 +452,9 @@ export function initSession(self, ws) {
355
452
  // 3. Rehydrate any previously-installed runtimes from VFS so their
356
453
  // bins reappear in the registry after DO eviction or WS reconnect.
357
454
  registerRunnerFactory('clang-runner', (manifest, installRoot, binName, binKind) => async (ctx) => {
358
- const { makeClangRunnerFactory } = await import('../runtime/clang-runner.js');
359
- return await makeClangRunnerFactory({ facetMgr, vfs: sqliteFs })(manifest, installRoot, binName, binKind)(ctx);
455
+ const { makeClangRunnerFactory } = await import('@nimbus-sh/core/runtime/clang-runner.js');
456
+ const { facetHostForManager } = await import('../runtime/facet-loader-host.js');
457
+ return await makeClangRunnerFactory({ facets: facetHostForManager(facetMgr), vfs: sqliteFs })(manifest, installRoot, binName, binKind)(ctx);
360
458
  });
361
459
  // Pyodide v1 — Python 3.13 via the same R2-package-manager
362
460
  // substrate that ships clang. Manifest entrypoints `python` and
@@ -421,8 +519,15 @@ export function initSession(self, ws) {
421
519
  installRoot,
422
520
  });
423
521
  }
424
- const { makeRubyRunnerFactory } = await import('../runtime/ruby-runner.js');
425
- return await makeRubyRunnerFactory({ facetMgr, vfs: sqliteFs, registry })(manifest, installRoot, binName, binKind)(ctx);
522
+ const { makeRubyRunnerFactory } = await import('@nimbus-sh/core/runtime/ruby-runner.js');
523
+ const { facetHostForManager } = await import('../runtime/facet-loader-host.js');
524
+ const { rubyResidentStart } = await import('../runtime/ruby-resident.js');
525
+ return await makeRubyRunnerFactory({
526
+ facets: facetHostForManager(facetMgr),
527
+ vfs: sqliteFs,
528
+ registry,
529
+ startResident: rubyResidentStart(facetMgr),
530
+ })(manifest, installRoot, binName, binKind)(ctx);
426
531
  });
427
532
  // GNU bash 5.2.37 (wasm32-wasi, asyncified) — dedicated facet
428
533
  // runner driving the fork/pipe/exec/setjmp scheduler (fork M1-M3
@@ -1566,158 +1671,28 @@ export function initSession(self, ws) {
1566
1671
  }
1567
1672
  return result.failed.length > 0 ? 1 : 0;
1568
1673
  });
1569
- // ── Set up environment [B'.1: rehydrate from SQL] ──
1570
- //
1571
- // Cold start: env is the platform default below.
1572
- // Silent re-init (persisted env present): the Shell's constructor
1573
- // does `this.env = { ...n }`, so we layer the persisted env over
1574
- // the defaults — defaults provide PATH/PS1/etc. (which the user
1575
- // never sets explicitly), persisted overlays whatever the user
1576
- // did set (NIMBUS_TEST=cool, etc.).
1577
- //
1578
- // Primitive #7 (runtime primitive support): PORT/HOST and
1579
- // NIMBUS_SESSION_ID are part of the standard contract.
1580
- //
1581
- // PORT=3000 — the same default Markflow's `${PORT:-3000}` shell
1582
- // expansion targets, and what every Express/Hono/
1583
- // fastify/Bun.serve script reads when the user
1584
- // doesn't set it explicitly. Long-running spawns
1585
- // still pull from `--port` argv first (see
1586
- // runtime/long-running-handle.ts:resolveLongRunningPort);
1587
- // this default is the SOURCE for that fall-through.
1588
- //
1589
- // HOST=0.0.0.0 — Cloudflare Workers / DO have no localhost vs.
1590
- // external distinction (the supervisor never opens
1591
- // a real socket); 0.0.0.0 is what every tutorial
1592
- // tells users to bind to and matches CF docs.
1593
- //
1594
- // NIMBUS_SESSION_ID — derived from sessionBasePath = "/s/<id>".
1595
- // Set lazily here as a placeholder ("") and patched
1596
- // below right after Shell construction so the user's
1597
- // first command sees the real id.
1598
- //
1599
- // Why these aren't optional: package.json scripts that hardcode
1600
- // process.env.PORT (Express's default app, every "create-vite"
1601
- // template) get `undefined` without this. Sentry / Datadog / any
1602
- // ops integration that wants a session-stable token uses
1603
- // NIMBUS_SESSION_ID.
1604
- const env = {
1605
- HOME: '/home/user',
1606
- USER: 'user',
1607
- SHELL: '/bin/sh',
1608
- HOSTNAME: DEFAULT_HOSTNAME,
1609
- TERM: 'xterm-256color',
1610
- PWD: '/home/user',
1611
- PATH: DEFAULT_PATH,
1612
- PS1: `\x1b[1;32muser@${DEFAULT_HOSTNAME}\x1b[0m:\x1b[1;34m\\w\x1b[0m$ `,
1613
- NODE_ENV: 'development',
1614
- LANG: 'en_US.UTF-8',
1615
- EDITOR: 'nano',
1616
- NIMBUS_VERSION: NIMBUS_VERSION,
1617
- TMPDIR: '/tmp',
1618
- XDG_CONFIG_HOME: '/home/user/.config',
1619
- XDG_DATA_HOME: '/home/user/.local/share',
1620
- npm_config_prefix: '/usr/local',
1621
- // Primitive #7 contract additions.
1622
- PORT: '3000',
1623
- HOST: '0.0.0.0',
1624
- NIMBUS_SESSION_ID: '', // patched after Shell ctor — see below.
1625
- // The session AI gateway (session/ai.ts). A coding agent, a user's own
1626
- // script or curl reaches the session's models from these without being
1627
- // configured: by OPENAI_BASE_URL if it reads one, and otherwise by
1628
- // CLOUDFLARE_API_KEY, this session's capability token, which mediates the
1629
- // tool's own egress back to the gateway (_shared/ai-egress.ts). A user
1630
- // who exports their own OPENAI_BASE_URL or CLOUDFLARE_API_KEY still wins,
1631
- // via the persisted spread — their key is not this session's token, so
1632
- // their request goes to their own account.
1633
- ...sessionAiEnv(),
1634
- // Persisted env keys win over defaults — the user's `export FOO=bar`
1635
- // survives reconnect.
1636
- ...(persisted.env || {}),
1637
- };
1638
- // ── Create shell ──
1639
- const processRegistry = new ProcessRegistry();
1640
- if (self.shellProcessPid !== null) {
1641
- self.processes.exit(self.shellProcessPid, 0);
1642
- }
1643
- const shellProcess = self.processes.spawn('sh', ['sh'], persisted.cwd || '/home/user');
1644
- self.shellProcessPid = shellProcess.pid;
1645
- const runAsProcess = async (parent, cred, argv) => {
1646
- if (argv.length === 0)
1647
- return 0;
1648
- const child = self.processes.spawn(argv.join(' '), argv, parent.cwd, { parentPid: parent.pid, cred });
1649
- const activeShell = self.shell;
1650
- if (!activeShell) {
1651
- self.processes.exit(child.pid, 1);
1652
- throw new Error('shell is not initialized');
1653
- }
1654
- const identity = commandIdentityFor(child.pid);
1655
- let exitCode = 1;
1656
- try {
1657
- const stdin = parent.stdin && parent.stdin !== parent.terminalStdin
1658
- ? await parent.stdin.readAll()
1659
- : undefined;
1660
- const result = await activeShell.execute(argv.map(quoteShellArgument).join(' '), {
1661
- cwd: parent.cwd,
1662
- env: parent.env,
1663
- stdin,
1664
- terminalStdin: parent.terminalStdin,
1665
- signal: parent.signal,
1666
- isolateShellState: true,
1667
- terminalFds: {
1668
- stdin: parent.isFdTerminal?.(0) ?? false,
1669
- stdout: parent.isFdTerminal?.(1) ?? false,
1670
- stderr: parent.isFdTerminal?.(2) ?? false,
1671
- },
1672
- onStdout: (data) => parent.stdout.write(data),
1673
- onStderr: (data) => parent.stderr.write(data),
1674
- commandContext: {
1675
- pid: identity.pid,
1676
- cred: identity.cred,
1677
- setUmask: identity.setUmask,
1678
- },
1679
- runAs: runAsProcess,
1680
- });
1681
- exitCode = result.exitCode;
1682
- return exitCode;
1683
- }
1684
- finally {
1685
- self.processes.exit(child.pid, exitCode);
1686
- }
1687
- };
1688
- const commandIdentityFor = (pid) => ({
1689
- pid,
1690
- get cred() {
1691
- return self.processes.cred(pid);
1692
- },
1693
- setUmask(mask) {
1694
- self.processes.setUmask(pid, mask);
1695
- },
1696
- runAs: runAsProcess,
1697
- });
1698
- self.shell = new Shell(self.terminal, self.kernel.vfs, registry, env, processRegistry, commandIdentityFor(shellProcess.pid));
1699
1674
  // Primitive #7: patch NIMBUS_SESSION_ID into the live shell env.
1700
1675
  // sessionBasePath is "/s/<sid>" set by the X-Nimbus-Base header on
1701
1676
  // the first /ws upgrade — by the time initSession runs (after the
1702
1677
  // ws handshake), it's populated. Older /ws-pre-base callers see
1703
1678
  // an empty string, which is the safe placeholder (no false id).
1704
1679
  //
1705
- // We patch the live env (not the local `env` map above) so persisted
1706
- // shell state on warm-rejoin still picks up the SAME session id —
1707
- // the DO's name is stable across hibernation cycles. Any user
1708
- // `export NIMBUS_SESSION_ID=...` would have been persisted to
1709
- // persisted.env and the spread above would have overridden the
1710
- // empty placeholder; we only set when the live env is empty
1711
- // (don't clobber a user-set value).
1680
+ // We patch the live env (not the overlay the workspace was built
1681
+ // from) so persisted shell state on warm-rejoin still picks up the
1682
+ // SAME session id — the DO's name is stable across hibernation
1683
+ // cycles. Any user `export NIMBUS_SESSION_ID=...` would have been
1684
+ // persisted to persisted.env and the overlay's spread would have
1685
+ // overridden the empty placeholder; we only set when the live env
1686
+ // is empty (don't clobber a user-set value).
1712
1687
  const sessionIdFromBase = (self.sessionBasePath || '').replace(/^\/s\//, '');
1713
1688
  if (sessionIdFromBase) {
1714
1689
  // Shell.env is declared private but mutable at runtime — there's
1715
1690
  // no public setter. We `any`-cast deliberately; the alternative
1716
- // (replacing the whole Shell after ctor) would lose the kernel +
1717
- // registry wiring. Anti-req note: this is NOT a defensive cast,
1718
- // it's a deliberate single-write operation to plug the contract
1719
- // gap that env-construction couldn't fill (sessionBasePath
1720
- // wasn't yet hydrated at ctor time).
1691
+ // (replacing the whole Shell after construction) would lose the
1692
+ // kernel + registry wiring. Anti-req note: this is NOT a defensive
1693
+ // cast, it's a deliberate single-write operation to plug the
1694
+ // contract gap that env-construction couldn't fill (sessionBasePath
1695
+ // wasn't yet hydrated when the workspace was composed).
1721
1696
  const shellAny = self.shell;
1722
1697
  if (!shellAny.env.NIMBUS_SESSION_ID) {
1723
1698
  shellAny.env.NIMBUS_SESSION_ID = sessionIdFromBase;
@@ -2733,17 +2708,15 @@ export function initSession(self, ws) {
2733
2708
  catch { /* non-critical */ }
2734
2709
  }
2735
2710
  // ── Start shell ──
2736
- self.shell.start();
2737
- (async () => {
2738
- try {
2739
- await self.shell.sourceFile('/etc/profile');
2740
- }
2741
- catch { }
2742
- try {
2743
- await self.shell.sourceFile('/home/user/.nimbusrc');
2744
- }
2745
- catch { }
2746
- })();
2711
+ //
2712
+ // Now, and not inside the workspace, because the login files are the
2713
+ // user's and may name any of the commands registered above. Not awaited:
2714
+ // `shell.start()` runs synchronously and the rc files apply as they
2715
+ // finish, which is what the terminal has always done. A user's broken
2716
+ // rc file must not take the socket down with it.
2717
+ workspace.start().catch((e) => {
2718
+ console.warn('[nimbus] shell start failed:', e?.message || e);
2719
+ });
2747
2720
  ws.send(JSON.stringify({ type: 'ready' }));
2748
2721
  }
2749
2722
  function installShellExecutionFeatures(shell, terminal) {
@@ -560,8 +560,18 @@ export declare class NimbusSession extends CloudflareDurableObject {
560
560
  * private API across modules.
561
561
  */
562
562
  _envFlagDefaultOn(name: string): boolean;
563
- initSession(ws: WebSocket): void;
563
+ initSession(ws: WebSocket): Promise<void>;
564
564
  ensureGlobalPrefixDirs(prefix: string): void;
565
+ /**
566
+ * The starter content a fresh Nimbus session shows a user: the banner, the
567
+ * sample files, and the Vite starter app.
568
+ *
569
+ * The base the OS boots on — the mount directories, /etc/passwd, /etc/group,
570
+ * /etc/profile, ~/.nimbusrc — comes from the workspace's own seed, which
571
+ * this calls rather than restates. Both are idempotent, so the workspace
572
+ * re-running it when it composes the shell costs a handful of existence
573
+ * checks and changes nothing.
574
+ */
565
575
  seedFilesystem(): void;
566
576
  webSocketMessage(ws: WebSocket, message: string | ArrayBuffer): Promise<void>;
567
577
  webSocketClose(ws: WebSocket, code?: number, reason?: string, wasClean?: boolean): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"nimbus-session.d.ts","sourceRoot":"","sources":["../../src/session/nimbus-session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACN,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,aAAa,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,KAAK,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAE5F,OAAO,EAGL,KAAK,gBAAgB,EAErB,KAAK,WAAW,EACjB,MAAM,yCAAyC,CAAC;AAIjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAsCnD,OAAO,EAEL,KAAK,uBAAuB,IAAI,gBAAgB,EACjD,MAAM,uBAAuB,CAAC;AAiC/B,OAAO,KAAK,IAAI,MAAM,UAAU,CAAC;AACjC,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAG7G,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AAwDnD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,cAAc,CAAC;AAMtB,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAE3F;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAwBxD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkF7D;AAGD,qBAAa,aAAc,SAAQ,uBAAuB;IAExD,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAQ;IAClC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,IAAI,CAAQ;IACnE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAQ;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IACtC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAC1C,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IACzC,oFAAoF;IACpF,mBAAmB,EAAE,GAAG,CAAQ;IAChC;;;;OAIG;IACH,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC7C,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC7C,aAAa,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC3C;;;;;OAKG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IACpC;;;;;;OAMG;IACH,UAAU,EAAE,UAAU,GAAG,IAAI,CAAQ;IACrC;;;;;OAKG;IACH,mBAAmB,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,IAAI,CAAQ;IAC1D;;;;mDAI+C;IAC/C,YAAY,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;IACpE,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC7C,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IACzC,mFAAmF;IACnF,oBAAoB,EAAE,GAAG,CAAQ;IACjC;;;;OAIG;IACH,SAAS,EAAE,wBAAwB,CAAkC;IACrE,YAAY,EAAE,YAAY,CAAC;IAC3B;;;qDAGiD;IACjD,eAAe,EAAE,OAAO,CAAS;IACjC;yEACqE;IACrE,mBAAmB,EAAE,OAAO,CAAS;IAGrC;;;;;;OAMG;IAIH,WAAW,EAAE,yBAAyB,GAAG,IAAI,CAAQ;IACrD;;;;;OAKG;IACH,aAAa,SAAK;IAClB,mEAAmE;IACnE,sBAAsB,UAAS;IAC/B,gDAAgD;IAChD,aAAa,UAAS;IACtB,kEAAkE;IAClE,eAAe,UAAS;IACxB;;;;;;;OAOG;IACH,aAAa,EAAE,GAAG,CAAQ;IAG1B;;;;;;;;;OASG;IACH,YAAY,EAAE,MAAM,CAAK;IACzB,iBAAiB,EAAE,MAAM,CAAK;IAC9B,WAAW,EAAE,MAAM,CAAK;IACxB,gBAAgB,EAAE,MAAM,CAAK;IAE7B;;;;;;;;OAQG;IACH,IAAI,WAAW,IAAI,OAAO,CAKzB;IAGD;;;;;OAKG;IAIH,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAEjD;;;;;;;;;OASG;IACH,eAAe,EAAE,MAAM,CAAM;IAC7B,qEAAqE;IACrE,uBAAuB,UAAS;IAChC;;;;OAIG;IACH,wBAAwB,UAAS;gBAErB,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG;IAyF7C,wBAAwB,IAAI,IAAI;IAIhC,eAAe,IAAI,IAAI;IAIvB,gBAAgB,IAAI,IAAI;IAIxB;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAStB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAI3B,0EAA0E;IACpE,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7C;;;;;OAKG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;;;;;OAQG;IACG,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7D;;;;;OAKG;IACG,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBzD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAChE,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IACzE,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAClD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IACnD,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAGvE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGvF,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGnE,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GACrC,OAAO,CAAC,IAAI,CAAC;IAGV,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAGzD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IACxD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACpD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACpD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACjE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAChE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACtE,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAG5F,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAG1F,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAGxE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAGlE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGpF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAChE,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAGtG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAG/H,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1D,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAGvG,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAG/G,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAGpG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAGzH,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,EAAE,EAC1C,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC;IAGZ,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAGV,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACvE,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACjE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACrD,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvF,oBAAoB,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAG/H,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAClD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACpD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACpD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAG5E,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAC9C,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IACpF,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAG9D,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7E,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1D,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IACpE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAG1F,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EAAE,EACf,QAAQ,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,GACA,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAMlC,gBAAgB,wCAA+C;IAC/D,qBAAqB,2BAAgC,IAAI,CAAC,mBAAmB,KAAK,IAAI,GAAK;IAC3F,oBAAoB,IAAI;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE;IAG1C,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAGvE,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAGhE,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAGrE,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAG/F,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAKzE,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1E,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/C,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAChD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC9E,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAClC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAE3C,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM;;;;;IAG3C,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,wBAAwB;;;;IAChE;;;;kCAI8B;IACxB,aAAa,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,uBAAuB;IACzE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,uBAAuB;IACjF,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,uBAAuB,GAAG;QAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,CAAA;KAAE;IAGrL,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;IAC9D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;IACjE,gBAAgB;;;;;;;;;;;;;IAChB,iBAAiB;IACjB,eAAe,CAAC,GAAG,EAAE,MAAM;;;;IAC3B,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;IAC/C,mBAAmB,CAAC,GAAG,EAAE,MAAM;;;;IAC/B,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;IACtE,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;IAC7C,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;IAC1F,aAAa;IACb,cAAc,CAAC,IAAI,EAAE,MAAM;;;;;;IAC3B,gBAAgB,CAAC,IAAI,EAAE,MAAM;;;;IAC7B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE;IAC9D,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,0BAA0B;IAGpE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAC7C,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAC9C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IACvH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAChC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE;IAC1D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAK7C,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAa1C,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKvD;;;;;;OAMG;IAMH,eAAe,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC;KACpB;IAQD,gBAAgB,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIvH,gBAAgB,IAAI;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIvG,iBAAiB,IAAI,IAAI;IAIzB,cAAc;IAqCd,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAK;IAC7B,gEAAgE;IAChE,sBAAsB,EAAE,MAAM,CAAM;IAEpC;yDACqD;IACrD,QAAQ,EAAE,OAAO,oDAAoD,EAAE,YAAY,GAAG,IAAI,CAAQ;IAElG;;2EAEuE;IACvE,gBAAgB,EAAE,MAAM,CAAK;IAEvB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlD,+EAA+E;IAC/E,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAItC,kBAAkB;IA+ClB;;;;OAIG;IACH,qBAAqB,IAAI,cAAc;IAKvC;;;;OAIG;IACH,0BAA0B;IA2Q1B;;;;OAIG;IACH,WAAW,EAAE,GAAG,CAAQ;IACxB,cAAc,CAAC,CAAC,EAAE,GAAG;IAErB;;;;;OAKG;IACH,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,GAAG,GAAG,IAAI;IAgFzD;;;OAGG;IACH,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS;IAoB/G,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;IAqCrD;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAgBxC,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAehC,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAa5C,cAAc;IA0HR,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7E,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhG,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,gFAAgF;IAChF,eAAe,IAAI,IAAI;IAIvB,0FAA0F;IAC1F,kBAAkB,IAAI,IAAI;CAG3B;AAMD,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,YAAY,GACb,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"nimbus-session.d.ts","sourceRoot":"","sources":["../../src/session/nimbus-session.ts"],"names":[],"mappings":"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"}