@portel/photon 1.20.0 → 1.20.1

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 (86) hide show
  1. package/dist/auto-ui/beam/routes/api-config.d.ts.map +1 -1
  2. package/dist/auto-ui/beam/routes/api-config.js +161 -20
  3. package/dist/auto-ui/beam/routes/api-config.js.map +1 -1
  4. package/dist/auto-ui/beam.d.ts.map +1 -1
  5. package/dist/auto-ui/beam.js +4 -3
  6. package/dist/auto-ui/beam.js.map +1 -1
  7. package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
  8. package/dist/auto-ui/bridge/renderers.js +12 -4
  9. package/dist/auto-ui/bridge/renderers.js.map +1 -1
  10. package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
  11. package/dist/auto-ui/streamable-http-transport.js +115 -28
  12. package/dist/auto-ui/streamable-http-transport.js.map +1 -1
  13. package/dist/beam-form.bundle.js +19 -182
  14. package/dist/beam-form.bundle.js.map +4 -4
  15. package/dist/beam.bundle.js +743 -311
  16. package/dist/beam.bundle.js.map +4 -4
  17. package/dist/cli/commands/beam.d.ts.map +1 -1
  18. package/dist/cli/commands/beam.js +47 -30
  19. package/dist/cli/commands/beam.js.map +1 -1
  20. package/dist/cli/commands/build.d.ts.map +1 -1
  21. package/dist/cli/commands/build.js +27 -2
  22. package/dist/cli/commands/build.js.map +1 -1
  23. package/dist/cli/commands/daemon.d.ts.map +1 -1
  24. package/dist/cli/commands/daemon.js +12 -6
  25. package/dist/cli/commands/daemon.js.map +1 -1
  26. package/dist/cli/commands/mcp.d.ts.map +1 -1
  27. package/dist/cli/commands/mcp.js +18 -6
  28. package/dist/cli/commands/mcp.js.map +1 -1
  29. package/dist/cli/commands/serve.d.ts.map +1 -1
  30. package/dist/cli/commands/serve.js +14 -2
  31. package/dist/cli/commands/serve.js.map +1 -1
  32. package/dist/cli-alias.d.ts.map +1 -1
  33. package/dist/cli-alias.js +2 -3
  34. package/dist/cli-alias.js.map +1 -1
  35. package/dist/context-store.d.ts +4 -4
  36. package/dist/context-store.d.ts.map +1 -1
  37. package/dist/context-store.js +18 -15
  38. package/dist/context-store.js.map +1 -1
  39. package/dist/context.d.ts +25 -2
  40. package/dist/context.d.ts.map +1 -1
  41. package/dist/context.js +69 -4
  42. package/dist/context.js.map +1 -1
  43. package/dist/daemon/client.d.ts.map +1 -1
  44. package/dist/daemon/client.js +4 -1
  45. package/dist/daemon/client.js.map +1 -1
  46. package/dist/daemon/manager.d.ts +2 -0
  47. package/dist/daemon/manager.d.ts.map +1 -1
  48. package/dist/daemon/manager.js +40 -8
  49. package/dist/daemon/manager.js.map +1 -1
  50. package/dist/daemon/server.js +59 -15
  51. package/dist/daemon/server.js.map +1 -1
  52. package/dist/daemon/worker-host.js +7 -0
  53. package/dist/daemon/worker-host.js.map +1 -1
  54. package/dist/daemon/worker-manager.d.ts.map +1 -1
  55. package/dist/daemon/worker-manager.js +58 -10
  56. package/dist/daemon/worker-manager.js.map +1 -1
  57. package/dist/daemon/worker-protocol.d.ts +3 -0
  58. package/dist/daemon/worker-protocol.d.ts.map +1 -1
  59. package/dist/deploy/cloudflare.d.ts.map +1 -1
  60. package/dist/deploy/cloudflare.js +2 -4
  61. package/dist/deploy/cloudflare.js.map +1 -1
  62. package/dist/loader.d.ts +7 -0
  63. package/dist/loader.d.ts.map +1 -1
  64. package/dist/loader.js +56 -2
  65. package/dist/loader.js.map +1 -1
  66. package/dist/marketplace-manager.d.ts +1 -1
  67. package/dist/marketplace-manager.d.ts.map +1 -1
  68. package/dist/marketplace-manager.js +5 -4
  69. package/dist/marketplace-manager.js.map +1 -1
  70. package/dist/photon-cli-runner.d.ts.map +1 -1
  71. package/dist/photon-cli-runner.js +40 -21
  72. package/dist/photon-cli-runner.js.map +1 -1
  73. package/dist/photon-doc-extractor.d.ts.map +1 -1
  74. package/dist/photon-doc-extractor.js +59 -15
  75. package/dist/photon-doc-extractor.js.map +1 -1
  76. package/dist/server.d.ts.map +1 -1
  77. package/dist/server.js +14 -16
  78. package/dist/server.js.map +1 -1
  79. package/dist/shared-utils.d.ts +4 -0
  80. package/dist/shared-utils.d.ts.map +1 -1
  81. package/dist/shared-utils.js +22 -0
  82. package/dist/shared-utils.js.map +1 -1
  83. package/dist/template-manager.d.ts.map +1 -1
  84. package/dist/template-manager.js +56 -234
  85. package/dist/template-manager.js.map +1 -1
  86. package/package.json +2 -2
@@ -55,6 +55,7 @@ export declare class DaemonManager {
55
55
  * Get daemon status info.
56
56
  */
57
57
  getStatus(): DaemonStatus;
58
+ isReachable(): Promise<boolean>;
58
59
  private get lockFile();
59
60
  /**
60
61
  * Acquire a cross-process startup lock using atomic O_EXCL file creation.
@@ -86,6 +87,7 @@ export declare const GLOBAL_PID_FILE: string;
86
87
  export declare const GLOBAL_LOG_FILE: string;
87
88
  export declare function getGlobalSocketPath(): string;
88
89
  export declare function isGlobalDaemonRunning(): boolean;
90
+ export declare function isGlobalDaemonReachable(): Promise<boolean>;
89
91
  export declare function startGlobalDaemon(quiet?: boolean): Promise<void>;
90
92
  export declare function ensureDaemon(quiet?: boolean): Promise<void>;
91
93
  export declare function stopGlobalDaemon(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/daemon/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAMtE;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,MAAM,CAAgE;gBAElE,GAAG,CAAC,EAAE,aAAa;IAW/B,yBAAyB;IACzB,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,oCAAoC;IACpC,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;OAGG;IACH,OAAO,CAAC,cAAc,CAA8B;IAE9C,MAAM,CAAC,KAAK,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAU3B,WAAW;IAoBzB;;;;OAIG;IACG,KAAK,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiEzC;;OAEG;IACH,IAAI,IAAI,IAAI;IA2BZ;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB9B;;OAEG;IACH,SAAS,IAAI,YAAY;IAYzB,OAAO,KAAK,QAAQ,GAEnB;IAED;;;;OAIG;YACW,kBAAkB;IAoDhC,OAAO,CAAC,kBAAkB;IAY1B;;;OAGG;YACW,aAAa;IAgC3B,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,OAAO;YAQD,aAAa;IAoB3B,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,aAAa;YAaP,WAAW;IAkCzB;;;OAGG;IACH,OAAO,CAAC,cAAc;CAYvB;AAiBD,eAAO,MAAM,eAAe,QAA8B,CAAC;AAC3D,eAAO,MAAM,eAAe,QAA8B,CAAC;AAE3D,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED,wBAAsB,iBAAiB,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED,wBAAsB,YAAY,CAAC,KAAK,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzD"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/daemon/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAMtE;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,MAAM,CAAgE;gBAElE,GAAG,CAAC,EAAE,aAAa;IAW/B,yBAAyB;IACzB,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,oCAAoC;IACpC,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;OAGG;IACH,OAAO,CAAC,cAAc,CAA8B;IAE9C,MAAM,CAAC,KAAK,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAU3B,WAAW;IA2BzB;;;;OAIG;IACG,KAAK,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsEzC;;OAEG;IACH,IAAI,IAAI,IAAI;IA2BZ;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB9B;;OAEG;IACH,SAAS,IAAI,YAAY;IAQnB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAQrC,OAAO,KAAK,QAAQ,GAEnB;IAED;;;;OAIG;YACW,kBAAkB;IAoDhC,OAAO,CAAC,kBAAkB;IAY1B;;;OAGG;YACW,aAAa;IAgC3B,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,OAAO;YAQD,aAAa;IAoB3B,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,aAAa;YAaP,WAAW;IAiCzB;;;OAGG;IACH,OAAO,CAAC,cAAc;CAYvB;AAiBD,eAAO,MAAM,eAAe,QAA8B,CAAC;AAC3D,eAAO,MAAM,eAAe,QAA8B,CAAC;AAE3D,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEhE;AAED,wBAAsB,iBAAiB,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED,wBAAsB,YAAY,CAAC,KAAK,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzD"}
@@ -71,6 +71,13 @@ export class DaemonManager {
71
71
  }
72
72
  async _ensureImpl(quiet) {
73
73
  if (this.fsm.state === 'running') {
74
+ if (!(await this.isSocketAlive())) {
75
+ this.logger.warn('Daemon marked running but socket is unreachable, recovering stale state');
76
+ this.cleanupStale();
77
+ this.resyncFromDisk();
78
+ await this.start(quiet);
79
+ return;
80
+ }
74
81
  if (this.isBinaryStale()) {
75
82
  this.logger.info('Daemon binary updated since last start, restarting...');
76
83
  await this.restart();
@@ -93,9 +100,14 @@ export class DaemonManager {
93
100
  */
94
101
  async start(quiet = false) {
95
102
  if (this.fsm.state === 'running') {
96
- if (!quiet)
97
- this.logger.debug('Global daemon already running');
98
- return;
103
+ if (await this.isSocketAlive()) {
104
+ if (!quiet)
105
+ this.logger.debug('Global daemon already running');
106
+ return;
107
+ }
108
+ this.logger.warn('Daemon marked running but socket is unreachable, recovering stale state');
109
+ this.cleanupStale();
110
+ this.resyncFromDisk();
99
111
  }
100
112
  // If somehow stuck in starting/stopping, re-sync from disk
101
113
  if (this.fsm.state !== 'stopped') {
@@ -214,6 +226,9 @@ export class DaemonManager {
214
226
  const pid = this.readPid();
215
227
  return { running: true, pid: pid ?? undefined, photonName: 'global' };
216
228
  }
229
+ async isReachable() {
230
+ return this.isSocketAlive();
231
+ }
217
232
  // ═══════════════════════════════════════════════════════════════════════════
218
233
  // PRIVATE
219
234
  // ═══════════════════════════════════════════════════════════════════════════
@@ -357,7 +372,7 @@ export class DaemonManager {
357
372
  const timer = setTimeout(() => {
358
373
  sock.destroy();
359
374
  resolve(false);
360
- }, 500);
375
+ }, 2_000);
361
376
  sock.on('connect', () => {
362
377
  clearTimeout(timer);
363
378
  sock.destroy();
@@ -411,6 +426,21 @@ export class DaemonManager {
411
426
  if (killError.code !== 'ESRCH')
412
427
  throw killError;
413
428
  }
429
+ // Wait for the process to actually exit before cleaning up filesystem state.
430
+ // Without this, a quick stop→start sequence can race: the new daemon creates
431
+ // its socket, then the old daemon's SIGTERM handler deletes it.
432
+ const deadline = Date.now() + 3000;
433
+ while (Date.now() < deadline) {
434
+ try {
435
+ process.kill(pid, 0); // throws ESRCH when process is gone
436
+ // Still alive — spin briefly
437
+ const waitMs = 50;
438
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, waitMs);
439
+ }
440
+ catch {
441
+ break; // Process exited
442
+ }
443
+ }
414
444
  fs.unlinkSync(this.ctx.pidFile);
415
445
  if (fs.existsSync(this.ctx.socketPath) && process.platform !== 'win32') {
416
446
  fs.unlinkSync(this.ctx.socketPath);
@@ -456,7 +486,7 @@ export class DaemonManager {
456
486
  this.logger.info('Started global Photon daemon', { pid: child.pid });
457
487
  }
458
488
  // Wait for socket to actually accept connections (not just file existence)
459
- const maxWait = 3000;
489
+ const maxWait = 10_000;
460
490
  const interval = 100;
461
491
  let waited = 0;
462
492
  while (waited < maxWait) {
@@ -466,9 +496,8 @@ export class DaemonManager {
466
496
  return;
467
497
  }
468
498
  }
469
- if (!quiet) {
470
- this.logger.warn('Daemon started but socket not ready within timeout');
471
- }
499
+ this.cleanupStale();
500
+ throw new Error('Daemon started but socket was not ready within 10s');
472
501
  }
473
502
  /**
474
503
  * Re-sync FSM state from disk (PID file existence).
@@ -507,6 +536,9 @@ export function getGlobalSocketPath() {
507
536
  export function isGlobalDaemonRunning() {
508
537
  return getManager().getStatus().running;
509
538
  }
539
+ export async function isGlobalDaemonReachable() {
540
+ return getManager().isReachable();
541
+ }
510
542
  export async function startGlobalDaemon(quiet = false) {
511
543
  return getManager().start(quiet);
512
544
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/daemon/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/daemon/manager.ts"],"names":[],"mappings":"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"}
@@ -805,15 +805,8 @@ async function getOrCreateSessionManager(photonName, photonPath, workingDir) {
805
805
  // If @worker tagged, spawn in a worker thread instead of in-process
806
806
  if (shouldRunInWorker(pathToUse) && !workerManager.has(key)) {
807
807
  try {
808
- logger.info('Spawning worker thread for @worker photon', { photonName, key });
809
- const info = await workerManager.spawn(key, photonName, pathToUse, workingDir);
810
- photonPaths.set(key, pathToUse);
811
- if (!photonPaths.has(photonName))
812
- photonPaths.set(photonName, pathToUse);
813
- if (workingDir)
814
- workingDirs.set(key, workingDir);
815
- watchPhotonFile(photonName, pathToUse);
816
- // Wire dep resolver to go through main thread's getOrCreateSessionManager
808
+ // Wire dep resolver BEFORE spawn so the worker can resolve @photon deps
809
+ // during initialization (loadFile triggers dep resolution before 'ready').
817
810
  if (!workerManager.depResolver) {
818
811
  workerManager.depResolver = async (depName, depPath, _consumerPhoton) => {
819
812
  const depManager = await getOrCreateSessionManager(depName, depPath, workingDir);
@@ -832,6 +825,14 @@ async function getOrCreateSessionManager(photonName, photonPath, workingDir) {
832
825
  return depManager.loader.executeTool(loaded, method, args);
833
826
  };
834
827
  }
828
+ logger.info('Spawning worker thread for @worker photon', { photonName, key });
829
+ const info = await workerManager.spawn(key, photonName, pathToUse, workingDir);
830
+ photonPaths.set(key, pathToUse);
831
+ if (!photonPaths.has(photonName))
832
+ photonPaths.set(photonName, pathToUse);
833
+ if (workingDir)
834
+ workingDirs.set(key, workingDir);
835
+ watchPhotonFile(photonName, pathToUse);
835
836
  // Return null — caller should check workerManager.has(key) for routing
836
837
  // We store a marker so callers know this is a worker photon
837
838
  logger.info('Worker photon ready', { photonName, tools: info.tools.length });
@@ -1458,7 +1459,8 @@ async function handleRequest(request, socket) {
1458
1459
  // not forwarded to worker threads (workers don't know about _use etc.)
1459
1460
  const runtimeTools = ['_use', '_instances', '_undo', '_redo'];
1460
1461
  const cmdKey = compositeKey(photonName, request.workingDir);
1461
- if (workerManager.has(cmdKey) && !runtimeTools.includes(request.method)) {
1462
+ const readyWorker = workerManager.get(cmdKey);
1463
+ if (readyWorker?.ready && !runtimeTools.includes(request.method)) {
1462
1464
  const startMs = Date.now();
1463
1465
  const result = await workerManager.call(cmdKey, request.method, request.args || {}, request.sessionId || 'default', request.instanceName || '');
1464
1466
  return {
@@ -1470,10 +1472,28 @@ async function handleRequest(request, socket) {
1470
1472
  durationMs: result.durationMs ?? Date.now() - startMs,
1471
1473
  };
1472
1474
  }
1473
- // Trigger worker spawn if needed (getOrCreateSessionManager returns null for workers)
1474
- const sessionManager = await getOrCreateSessionManager(photonName, request.photonPath, request.workingDir);
1475
+ // Trigger worker spawn if needed (getOrCreateSessionManager returns null for workers).
1476
+ // Bound the wait so a slow worker spawn (cascading deps) doesn't block the CLI indefinitely.
1477
+ let sessionManager = null;
1478
+ try {
1479
+ const initPromise = getOrCreateSessionManager(photonName, request.photonPath, request.workingDir);
1480
+ const INIT_TIMEOUT_MS = 60_000;
1481
+ sessionManager = await Promise.race([
1482
+ initPromise,
1483
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`Photon ${photonName} initialization timed out (${INIT_TIMEOUT_MS / 1000}s)`)), INIT_TIMEOUT_MS)),
1484
+ ]);
1485
+ }
1486
+ catch (initErr) {
1487
+ return {
1488
+ type: 'error',
1489
+ id: request.id,
1490
+ error: getErrorMessage(initErr),
1491
+ suggestion: `The photon may still be loading. Try again shortly, or check: cat ${getDefaultContext().logFile}`,
1492
+ };
1493
+ }
1475
1494
  // Re-check: might have spawned a worker
1476
- if (workerManager.has(cmdKey) && !runtimeTools.includes(request.method)) {
1495
+ const readyWorkerAfterInit = workerManager.get(cmdKey);
1496
+ if (readyWorkerAfterInit?.ready && !runtimeTools.includes(request.method)) {
1477
1497
  const startMs = Date.now();
1478
1498
  const result = await workerManager.call(cmdKey, request.method, request.args || {}, request.sessionId || 'default', request.instanceName || '');
1479
1499
  return {
@@ -3030,12 +3050,36 @@ function shutdown() {
3030
3050
  if (webhookServer) {
3031
3051
  webhookServer.close();
3032
3052
  }
3053
+ // Only delete the socket if we still own it.
3054
+ // After `daemon stop` + `daemon start`, a new daemon may have already created
3055
+ // a new socket at this path. Deleting it would orphan the new daemon's listener.
3033
3056
  if (fs.existsSync(socketPath) && process.platform !== 'win32') {
3057
+ let weOwnSocket = true;
3034
3058
  try {
3035
- fs.unlinkSync(socketPath);
3059
+ const pidFile = getDefaultContext().pidFile;
3060
+ const pidContent = fs.readFileSync(pidFile, 'utf-8').trim();
3061
+ const filePid = parseInt(pidContent, 10);
3062
+ if (!isNaN(filePid) && filePid !== process.pid) {
3063
+ // PID file points to a different process — new daemon already started
3064
+ weOwnSocket = false;
3065
+ logger.info('Socket belongs to new daemon, skipping cleanup', {
3066
+ ourPid: process.pid,
3067
+ newPid: filePid,
3068
+ });
3069
+ }
3036
3070
  }
3037
3071
  catch {
3038
- // Ignore cleanup errors
3072
+ // PID file missing (deleted by stop) — another process may own the socket now.
3073
+ // If the socket still exists, it likely belongs to a new daemon. Don't delete.
3074
+ weOwnSocket = false;
3075
+ }
3076
+ if (weOwnSocket) {
3077
+ try {
3078
+ fs.unlinkSync(socketPath);
3079
+ }
3080
+ catch {
3081
+ // Ignore cleanup errors
3082
+ }
3039
3083
  }
3040
3084
  }
3041
3085
  process.exit(0);