@camstack/kernel 0.1.2 → 0.1.3

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.
@@ -0,0 +1,154 @@
1
+ import {
2
+ __commonJS,
3
+ __require
4
+ } from "./chunk-LZOMFHX3.mjs";
5
+
6
+ // src/worker/worker-process-manager.js
7
+ var require_worker_process_manager = __commonJS({
8
+ "src/worker/worker-process-manager.js"(exports) {
9
+ "use strict";
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.WorkerProcessManager = void 0;
12
+ var node_child_process_1 = __require("child_process");
13
+ var WorkerProcessManager = class {
14
+ sendToMain;
15
+ processes = /* @__PURE__ */ new Map();
16
+ constructor(sendToMain) {
17
+ this.sendToMain = sendToMain;
18
+ }
19
+ async spawn(config) {
20
+ const child = (0, node_child_process_1.spawn)(config.command, [...config.args ?? []], {
21
+ cwd: config.cwd,
22
+ env: config.env ? { ...process.env, ...config.env } : void 0,
23
+ stdio: ["pipe", "pipe", "pipe"]
24
+ });
25
+ const managed = new ManagedProcess(child, config, this.sendToMain);
26
+ this.processes.set(child.pid, managed);
27
+ this.sendToMain({
28
+ type: "SUB_PROCESS_SPAWNED",
29
+ pid: child.pid,
30
+ name: config.name,
31
+ command: config.command
32
+ });
33
+ child.on("exit", (code) => {
34
+ this.sendToMain({
35
+ type: "SUB_PROCESS_EXITED",
36
+ pid: child.pid,
37
+ code
38
+ });
39
+ if (config.autoRestart && managed.restartCount < (config.maxRestarts ?? 3)) {
40
+ managed.restartCount++;
41
+ setTimeout(() => {
42
+ this.spawn(config).catch(() => {
43
+ });
44
+ }, 2e3);
45
+ }
46
+ });
47
+ return managed;
48
+ }
49
+ listProcesses() {
50
+ return [...this.processes.values()].map((p) => p.toInfo());
51
+ }
52
+ getWorkerStats() {
53
+ const mem = process.memoryUsage();
54
+ const cpu = process.cpuUsage();
55
+ return {
56
+ pid: process.pid,
57
+ cpuPercent: (cpu.user + cpu.system) / 1e6,
58
+ memoryRss: mem.rss,
59
+ heapUsed: mem.heapUsed,
60
+ uptimeSeconds: Math.round(process.uptime()),
61
+ restartCount: 0,
62
+ state: "running"
63
+ };
64
+ }
65
+ async killAll() {
66
+ for (const [, proc] of this.processes) {
67
+ proc.kill("SIGTERM");
68
+ }
69
+ this.processes.clear();
70
+ }
71
+ };
72
+ exports.WorkerProcessManager = WorkerProcessManager;
73
+ var ManagedProcess = class {
74
+ child;
75
+ config;
76
+ sendToMain;
77
+ pid;
78
+ name;
79
+ restartCount = 0;
80
+ startedAt = Date.now();
81
+ exitHandlers = [];
82
+ errorHandlers = [];
83
+ constructor(child, config, sendToMain) {
84
+ this.child = child;
85
+ this.config = config;
86
+ this.sendToMain = sendToMain;
87
+ this.pid = child.pid;
88
+ this.name = config.name;
89
+ child.on("exit", (code) => {
90
+ for (const handler of this.exitHandlers)
91
+ handler(code);
92
+ });
93
+ child.on("error", (err) => {
94
+ for (const handler of this.errorHandlers)
95
+ handler(err);
96
+ });
97
+ }
98
+ getStats() {
99
+ return {
100
+ pid: this.pid,
101
+ cpuPercent: 0,
102
+ memoryRss: 0,
103
+ uptimeSeconds: Math.round((Date.now() - this.startedAt) / 1e3),
104
+ restartCount: this.restartCount,
105
+ state: this.child.exitCode !== null ? "stopped" : "running"
106
+ };
107
+ }
108
+ write(data) {
109
+ this.child.stdin?.write(data);
110
+ }
111
+ get stdout() {
112
+ return this.child.stdout;
113
+ }
114
+ get stderr() {
115
+ return this.child.stderr;
116
+ }
117
+ kill(signal = "SIGTERM") {
118
+ this.child.kill(signal);
119
+ }
120
+ wait() {
121
+ if (this.child.exitCode !== null) {
122
+ return Promise.resolve({ code: this.child.exitCode, signal: null });
123
+ }
124
+ return new Promise((resolve) => {
125
+ this.child.on("exit", (code, signal) => {
126
+ resolve({ code, signal });
127
+ });
128
+ });
129
+ }
130
+ onExit(handler) {
131
+ this.exitHandlers.push(handler);
132
+ }
133
+ onError(handler) {
134
+ this.errorHandlers.push(handler);
135
+ }
136
+ toInfo() {
137
+ return {
138
+ pid: this.pid,
139
+ name: this.name,
140
+ command: this.config.command,
141
+ state: this.child.exitCode !== null ? "stopped" : "running",
142
+ cpuPercent: 0,
143
+ memoryRss: 0,
144
+ uptimeSeconds: Math.round((Date.now() - this.startedAt) / 1e3)
145
+ };
146
+ }
147
+ };
148
+ }
149
+ });
150
+
151
+ export {
152
+ require_worker_process_manager
153
+ };
154
+ //# sourceMappingURL=chunk-RHK5CCAL.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/worker/worker-process-manager.ts"],"sourcesContent":["import { spawn, type ChildProcess } from 'node:child_process'\nimport type {\n WorkerToMainMessage,\n WorkerProcessStats,\n SubProcessInfo,\n} from '@camstack/types'\nimport type {\n IAddonProcessManager,\n SubProcessConfig,\n IManagedSubProcess,\n} from '@camstack/types'\n\nexport class WorkerProcessManager implements IAddonProcessManager {\n private readonly processes = new Map<number, ManagedProcess>()\n\n constructor(\n private readonly sendToMain: (msg: WorkerToMainMessage) => void,\n ) {}\n\n async spawn(config: SubProcessConfig): Promise<IManagedSubProcess> {\n const child = spawn(config.command, [...(config.args ?? [])], {\n cwd: config.cwd,\n env: config.env ? { ...process.env, ...config.env } : undefined,\n stdio: ['pipe', 'pipe', 'pipe'],\n })\n\n const managed = new ManagedProcess(child, config, this.sendToMain)\n this.processes.set(child.pid!, managed)\n\n this.sendToMain({\n type: 'SUB_PROCESS_SPAWNED',\n pid: child.pid!,\n name: config.name,\n command: config.command,\n })\n\n child.on('exit', (code) => {\n this.sendToMain({\n type: 'SUB_PROCESS_EXITED',\n pid: child.pid!,\n code,\n })\n\n if (config.autoRestart && managed.restartCount < (config.maxRestarts ?? 3)) {\n managed.restartCount++\n setTimeout(() => {\n this.spawn(config).catch(() => {})\n }, 2000)\n }\n })\n\n return managed\n }\n\n listProcesses(): readonly SubProcessInfo[] {\n return [...this.processes.values()].map((p) => p.toInfo())\n }\n\n getWorkerStats(): WorkerProcessStats {\n const mem = process.memoryUsage()\n const cpu = process.cpuUsage()\n return {\n pid: process.pid,\n cpuPercent: (cpu.user + cpu.system) / 1_000_000,\n memoryRss: mem.rss,\n heapUsed: mem.heapUsed,\n uptimeSeconds: Math.round(process.uptime()),\n restartCount: 0,\n state: 'running',\n }\n }\n\n async killAll(): Promise<void> {\n for (const [, proc] of this.processes) {\n proc.kill('SIGTERM')\n }\n this.processes.clear()\n }\n}\n\nclass ManagedProcess implements IManagedSubProcess {\n readonly pid: number\n readonly name: string\n restartCount = 0\n private readonly startedAt = Date.now()\n private exitHandlers: Array<(code: number | null) => void> = []\n private errorHandlers: Array<(error: Error) => void> = []\n\n constructor(\n private readonly child: ChildProcess,\n private readonly config: SubProcessConfig,\n private readonly sendToMain: (msg: WorkerToMainMessage) => void,\n ) {\n this.pid = child.pid!\n this.name = config.name\n\n child.on('exit', (code) => {\n for (const handler of this.exitHandlers) handler(code)\n })\n\n child.on('error', (err) => {\n for (const handler of this.errorHandlers) handler(err)\n })\n }\n\n getStats(): WorkerProcessStats {\n return {\n pid: this.pid,\n cpuPercent: 0,\n memoryRss: 0,\n uptimeSeconds: Math.round((Date.now() - this.startedAt) / 1000),\n restartCount: this.restartCount,\n state: this.child.exitCode !== null ? 'stopped' : 'running',\n }\n }\n\n write(data: Buffer): void {\n this.child.stdin?.write(data)\n }\n\n get stdout(): AsyncIterable<Buffer> {\n return this.child.stdout as AsyncIterable<Buffer>\n }\n\n get stderr(): AsyncIterable<Buffer> {\n return this.child.stderr as AsyncIterable<Buffer>\n }\n\n kill(signal: NodeJS.Signals = 'SIGTERM'): void {\n this.child.kill(signal)\n }\n\n wait(): Promise<{ code: number | null; signal: string | null }> {\n if (this.child.exitCode !== null) {\n return Promise.resolve({ code: this.child.exitCode, signal: null })\n }\n return new Promise((resolve) => {\n this.child.on('exit', (code, signal) => {\n resolve({ code, signal })\n })\n })\n }\n\n onExit(handler: (code: number | null) => void): void {\n this.exitHandlers.push(handler)\n }\n\n onError(handler: (error: Error) => void): void {\n this.errorHandlers.push(handler)\n }\n\n toInfo(): SubProcessInfo {\n return {\n pid: this.pid,\n name: this.name,\n command: this.config.command,\n state: this.child.exitCode !== null ? 'stopped' : 'running',\n cpuPercent: 0,\n memoryRss: 0,\n uptimeSeconds: Math.round((Date.now() - this.startedAt) / 1000),\n }\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/worker/worker-process-manager.ts"],"sourcesContent":["import { spawn, type ChildProcess } from 'node:child_process'\nimport type {\n WorkerToMainMessage,\n WorkerProcessStats,\n SubProcessInfo,\n} from '@camstack/types'\nimport type {\n IAddonProcessManager,\n SubProcessConfig,\n IManagedSubProcess,\n} from '@camstack/types'\n\nexport class WorkerProcessManager implements IAddonProcessManager {\n private readonly processes = new Map<number, ManagedProcess>()\n\n constructor(\n private readonly sendToMain: (msg: WorkerToMainMessage) => void,\n ) {}\n\n async spawn(config: SubProcessConfig): Promise<IManagedSubProcess> {\n const child = spawn(config.command, [...(config.args ?? [])], {\n cwd: config.cwd,\n env: config.env ? { ...process.env, ...config.env } : undefined,\n stdio: ['pipe', 'pipe', 'pipe'],\n })\n\n const managed = new ManagedProcess(child, config, this.sendToMain)\n this.processes.set(child.pid!, managed)\n\n this.sendToMain({\n type: 'SUB_PROCESS_SPAWNED',\n pid: child.pid!,\n name: config.name,\n command: config.command,\n })\n\n child.on('exit', (code) => {\n this.sendToMain({\n type: 'SUB_PROCESS_EXITED',\n pid: child.pid!,\n code,\n })\n\n if (config.autoRestart && managed.restartCount < (config.maxRestarts ?? 3)) {\n managed.restartCount++\n setTimeout(() => {\n this.spawn(config).catch(() => {})\n }, 2000)\n }\n })\n\n return managed\n }\n\n listProcesses(): readonly SubProcessInfo[] {\n return [...this.processes.values()].map((p) => p.toInfo())\n }\n\n getWorkerStats(): WorkerProcessStats {\n const mem = process.memoryUsage()\n const cpu = process.cpuUsage()\n return {\n pid: process.pid,\n cpuPercent: (cpu.user + cpu.system) / 1_000_000,\n memoryRss: mem.rss,\n heapUsed: mem.heapUsed,\n uptimeSeconds: Math.round(process.uptime()),\n restartCount: 0,\n state: 'running',\n }\n }\n\n async killAll(): Promise<void> {\n for (const [, proc] of this.processes) {\n proc.kill('SIGTERM')\n }\n this.processes.clear()\n }\n}\n\nclass ManagedProcess implements IManagedSubProcess {\n readonly pid: number\n readonly name: string\n restartCount = 0\n private readonly startedAt = Date.now()\n private exitHandlers: Array<(code: number | null) => void> = []\n private errorHandlers: Array<(error: Error) => void> = []\n\n constructor(\n private readonly child: ChildProcess,\n private readonly config: SubProcessConfig,\n private readonly sendToMain: (msg: WorkerToMainMessage) => void,\n ) {\n this.pid = child.pid!\n this.name = config.name\n\n child.on('exit', (code) => {\n for (const handler of this.exitHandlers) handler(code)\n })\n\n child.on('error', (err) => {\n for (const handler of this.errorHandlers) handler(err)\n })\n }\n\n getStats(): WorkerProcessStats {\n return {\n pid: this.pid,\n cpuPercent: 0,\n memoryRss: 0,\n uptimeSeconds: Math.round((Date.now() - this.startedAt) / 1000),\n restartCount: this.restartCount,\n state: this.child.exitCode !== null ? 'stopped' : 'running',\n }\n }\n\n write(data: Buffer): void {\n this.child.stdin?.write(data)\n }\n\n get stdout(): AsyncIterable<Buffer> {\n return this.child.stdout as AsyncIterable<Buffer>\n }\n\n get stderr(): AsyncIterable<Buffer> {\n return this.child.stderr as AsyncIterable<Buffer>\n }\n\n kill(signal: NodeJS.Signals = 'SIGTERM'): void {\n this.child.kill(signal)\n }\n\n wait(): Promise<{ code: number | null; signal: string | null }> {\n if (this.child.exitCode !== null) {\n return Promise.resolve({ code: this.child.exitCode, signal: null })\n }\n return new Promise((resolve) => {\n this.child.on('exit', (code, signal) => {\n resolve({ code, signal })\n })\n })\n }\n\n onExit(handler: (code: number | null) => void): void {\n this.exitHandlers.push(handler)\n }\n\n onError(handler: (error: Error) => void): void {\n this.errorHandlers.push(handler)\n }\n\n toInfo(): SubProcessInfo {\n return {\n pid: this.pid,\n name: this.name,\n command: this.config.command,\n state: this.child.exitCode !== null ? 'stopped' : 'running',\n cpuPercent: 0,\n memoryRss: 0,\n uptimeSeconds: Math.round((Date.now() - this.startedAt) / 1000),\n }\n }\n}\n"],"mappings":"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","names":[]}
package/dist/index.d.mts CHANGED
@@ -372,24 +372,24 @@ declare const bootstrapSchema: z.ZodObject<{
372
372
  keyPath?: string | undefined;
373
373
  }>>;
374
374
  }, "strip", z.ZodTypeAny, {
375
- hub: {
376
- url: string;
377
- token: string;
378
- };
379
375
  agent: {
380
376
  name: string;
381
377
  statusPort: number;
382
378
  };
383
- mode: "hub" | "agent";
379
+ mode: "agent" | "hub";
380
+ auth: {
381
+ jwtSecret: string | null;
382
+ adminUsername: string;
383
+ adminPassword: string;
384
+ };
384
385
  server: {
385
386
  port: number;
386
387
  host: string;
387
388
  dataPath: string;
388
389
  };
389
- auth: {
390
- jwtSecret: string | null;
391
- adminUsername: string;
392
- adminPassword: string;
390
+ hub: {
391
+ url: string;
392
+ token: string;
393
393
  };
394
394
  tls: {
395
395
  enabled: boolean;
@@ -397,24 +397,24 @@ declare const bootstrapSchema: z.ZodObject<{
397
397
  keyPath?: string | undefined;
398
398
  };
399
399
  }, {
400
- hub?: {
401
- url?: string | undefined;
402
- token?: string | undefined;
403
- } | undefined;
404
400
  agent?: {
405
401
  name?: string | undefined;
406
402
  statusPort?: number | undefined;
407
403
  } | undefined;
408
- mode?: "hub" | "agent" | undefined;
404
+ mode?: "agent" | "hub" | undefined;
405
+ auth?: {
406
+ jwtSecret?: string | null | undefined;
407
+ adminUsername?: string | undefined;
408
+ adminPassword?: string | undefined;
409
+ } | undefined;
409
410
  server?: {
410
411
  port?: number | undefined;
411
412
  host?: string | undefined;
412
413
  dataPath?: string | undefined;
413
414
  } | undefined;
414
- auth?: {
415
- jwtSecret?: string | null | undefined;
416
- adminUsername?: string | undefined;
417
- adminPassword?: string | undefined;
415
+ hub?: {
416
+ url?: string | undefined;
417
+ token?: string | undefined;
418
418
  } | undefined;
419
419
  tls?: {
420
420
  enabled?: boolean | undefined;
package/dist/index.d.ts CHANGED
@@ -372,24 +372,24 @@ declare const bootstrapSchema: z.ZodObject<{
372
372
  keyPath?: string | undefined;
373
373
  }>>;
374
374
  }, "strip", z.ZodTypeAny, {
375
- hub: {
376
- url: string;
377
- token: string;
378
- };
379
375
  agent: {
380
376
  name: string;
381
377
  statusPort: number;
382
378
  };
383
- mode: "hub" | "agent";
379
+ mode: "agent" | "hub";
380
+ auth: {
381
+ jwtSecret: string | null;
382
+ adminUsername: string;
383
+ adminPassword: string;
384
+ };
384
385
  server: {
385
386
  port: number;
386
387
  host: string;
387
388
  dataPath: string;
388
389
  };
389
- auth: {
390
- jwtSecret: string | null;
391
- adminUsername: string;
392
- adminPassword: string;
390
+ hub: {
391
+ url: string;
392
+ token: string;
393
393
  };
394
394
  tls: {
395
395
  enabled: boolean;
@@ -397,24 +397,24 @@ declare const bootstrapSchema: z.ZodObject<{
397
397
  keyPath?: string | undefined;
398
398
  };
399
399
  }, {
400
- hub?: {
401
- url?: string | undefined;
402
- token?: string | undefined;
403
- } | undefined;
404
400
  agent?: {
405
401
  name?: string | undefined;
406
402
  statusPort?: number | undefined;
407
403
  } | undefined;
408
- mode?: "hub" | "agent" | undefined;
404
+ mode?: "agent" | "hub" | undefined;
405
+ auth?: {
406
+ jwtSecret?: string | null | undefined;
407
+ adminUsername?: string | undefined;
408
+ adminPassword?: string | undefined;
409
+ } | undefined;
409
410
  server?: {
410
411
  port?: number | undefined;
411
412
  host?: string | undefined;
412
413
  dataPath?: string | undefined;
413
414
  } | undefined;
414
- auth?: {
415
- jwtSecret?: string | null | undefined;
416
- adminUsername?: string | undefined;
417
- adminPassword?: string | undefined;
415
+ hub?: {
416
+ url?: string | undefined;
417
+ token?: string | undefined;
418
418
  } | undefined;
419
419
  tls?: {
420
420
  enabled?: boolean | undefined;