@descryy/runtime-orchestrator 0.4.9 → 0.4.10

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 (49) hide show
  1. package/dist/attach-to-running-jvm-process.d.ts +86 -0
  2. package/dist/attach-to-running-jvm-process.d.ts.map +1 -0
  3. package/dist/attach-to-running-jvm-process.js +408 -0
  4. package/dist/attach-to-running-jvm-process.js.map +1 -0
  5. package/dist/attach-to-running-node-process.d.ts +80 -0
  6. package/dist/attach-to-running-node-process.d.ts.map +1 -0
  7. package/dist/attach-to-running-node-process.js +290 -0
  8. package/dist/attach-to-running-node-process.js.map +1 -0
  9. package/dist/attach-to-running-process.d.ts +83 -0
  10. package/dist/attach-to-running-process.d.ts.map +1 -0
  11. package/dist/attach-to-running-process.js +86 -0
  12. package/dist/attach-to-running-process.js.map +1 -0
  13. package/dist/cdp-client.d.ts +27 -0
  14. package/dist/cdp-client.d.ts.map +1 -0
  15. package/dist/cdp-client.js +98 -0
  16. package/dist/cdp-client.js.map +1 -0
  17. package/dist/cgroup-partial-restriction.d.ts +80 -0
  18. package/dist/cgroup-partial-restriction.d.ts.map +1 -0
  19. package/dist/cgroup-partial-restriction.js +189 -0
  20. package/dist/cgroup-partial-restriction.js.map +1 -0
  21. package/dist/collector-version.d.ts +7 -0
  22. package/dist/collector-version.d.ts.map +1 -0
  23. package/dist/collector-version.js +9 -0
  24. package/dist/collector-version.js.map +1 -0
  25. package/dist/index.d.ts +19 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +10 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/instrumented-execution.d.ts +136 -0
  30. package/dist/instrumented-execution.d.ts.map +1 -0
  31. package/dist/instrumented-execution.js +696 -0
  32. package/dist/instrumented-execution.js.map +1 -0
  33. package/dist/jvm-agent/build.d.ts +48 -0
  34. package/dist/jvm-agent/build.d.ts.map +1 -0
  35. package/dist/jvm-agent/build.js +129 -0
  36. package/dist/jvm-agent/build.js.map +1 -0
  37. package/dist/polling-output-source.d.ts +43 -0
  38. package/dist/polling-output-source.d.ts.map +1 -0
  39. package/dist/polling-output-source.js +64 -0
  40. package/dist/polling-output-source.js.map +1 -0
  41. package/dist/profile-backend-observation.d.ts +67 -0
  42. package/dist/profile-backend-observation.d.ts.map +1 -0
  43. package/dist/profile-backend-observation.js +107 -0
  44. package/dist/profile-backend-observation.js.map +1 -0
  45. package/dist/respawn-and-supervise.d.ts +86 -0
  46. package/dist/respawn-and-supervise.d.ts.map +1 -0
  47. package/dist/respawn-and-supervise.js +171 -0
  48. package/dist/respawn-and-supervise.js.map +1 -0
  49. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"respawn-and-supervise.d.ts","sourceRoot":"","sources":["../src/respawn-and-supervise.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAI1G,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;AAE/E;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;CACvC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oGAAoG;IACpG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qHAAqH;IACrH,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,uIAAuI;IACvI,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAChE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IACpE,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,yBAAyB;IACxC,sHAAsH;IACtH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,6KAA6K;IAC7K,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;CAC9C;AAmDD;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA6BjH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,cAAc,GAAG,IAAI,CA4C5H"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Respawn-and-supervise: a separate execution mode next to attach mode, not a
3
+ * change to attach mode itself.
4
+ *
5
+ * **The tradeoff, stated up front — must never apply silently.** Attach mode
6
+ * reaches an already-running, unconfined process; there is no honest way to
7
+ * retroactively sandbox it (`sandbox.ts`). This module doesn't try — it kills the
8
+ * attached target and spawns a fresh equivalent via the existing `spawnProcess()`,
9
+ * which gets full sandboxing for anything it spawns. Price: in-memory state, open
10
+ * connections, anything unpersisted is gone the moment the old process is killed.
11
+ * A caller must choose this explicitly — nothing upgrades an attach into a respawn
12
+ * on its own.
13
+ *
14
+ * **How this learns what to respawn.** Follows RT-032's "declared, never inferred"
15
+ * precedent: caller-declared (`source: "caller-declared"`) is the recommended,
16
+ * default path. `/proc/<pid>/cmdline` readback is a real but best-effort,
17
+ * opt-in-only fallback (`inferRespawnCommandFromProc`), labelled `source:
18
+ * "proc-cmdline-inferred"` so it's never mistaken for a declaration.
19
+ *
20
+ * **Killing the old process.** Doesn't assume ownership of the target's process
21
+ * group — it may not even be its own group leader — so this signals the individual
22
+ * pid only (SIGTERM, then SIGKILL after `gracePeriodMs`), not `spawnProcess`'s
23
+ * group-kill escape hatch (`signalGroup`), which is only valid for a group it
24
+ * created itself.
25
+ */
26
+ import { spawnProcess } from "@descryy/runtime-controller";
27
+ import { readFileSync, readlinkSync } from "node:fs";
28
+ import { isProcessAlive } from "./attach-to-running-process.js";
29
+ const DEFAULT_GRACE_PERIOD_MS = 5000;
30
+ function sleep(ms) {
31
+ return new Promise((resolve) => setTimeout(resolve, ms));
32
+ }
33
+ /**
34
+ * Waits until `isProcessAlive(pid)` is false or `deadlineMs` elapses.
35
+ * Returns whether the process was confirmed dead.
36
+ */
37
+ async function waitForDeath(pid, deadlineMs) {
38
+ const deadline = Date.now() + deadlineMs;
39
+ while (Date.now() < deadline) {
40
+ if (!isProcessAlive(pid))
41
+ return true;
42
+ await sleep(20);
43
+ }
44
+ return !isProcessAlive(pid);
45
+ }
46
+ /**
47
+ * Kills `pid` directly (not its process group, see file header), escalating
48
+ * SIGTERM to SIGKILL after `gracePeriodMs`. Throws if it survives even SIGKILL
49
+ * (unreapable zombie, or a permission boundary) rather than reporting an unobserved
50
+ * success.
51
+ */
52
+ async function killTarget(pid, gracePeriodMs) {
53
+ if (!isProcessAlive(pid))
54
+ return { killedViaSigkill: false };
55
+ try {
56
+ process.kill(pid, "SIGTERM");
57
+ }
58
+ catch {
59
+ // race: already gone between the isProcessAlive check and this signal
60
+ }
61
+ if (await waitForDeath(pid, gracePeriodMs))
62
+ return { killedViaSigkill: false };
63
+ try {
64
+ process.kill(pid, "SIGKILL");
65
+ }
66
+ catch {
67
+ // same race, at the SIGKILL stage
68
+ }
69
+ const dead = await waitForDeath(pid, Math.max(gracePeriodMs, 2000));
70
+ if (!dead) {
71
+ throw new Error(`respawnAndSupervise: pid ${String(pid)} did not exit even after SIGKILL -- refusing to report a kill that was not observed. ` +
72
+ "This can happen for a zombie this process cannot reap (owned by a different parent) or a permission boundary this caller's uid cannot cross.");
73
+ }
74
+ return { killedViaSigkill: true };
75
+ }
76
+ /**
77
+ * Kills the process at `options.targetPid` and spawns a fresh, supervised,
78
+ * optionally sandboxed replacement via `spawnProcess()`.
79
+ *
80
+ * Not a silent behavior change to attach mode — reached only by explicit call,
81
+ * never an automatic upgrade path. `ATTACH_MODE_SCOPE_DISCLOSURE` still governs
82
+ * attach mode itself regardless.
83
+ *
84
+ * Throws if `targetPid` isn't alive at call time, matching `attachToRunningProcess`'s
85
+ * refuse-rather-than-operate-on-nonexistent-target contract.
86
+ */
87
+ export async function respawnAndSupervise(options) {
88
+ if (!isProcessAlive(options.targetPid)) {
89
+ throw new Error(`respawnAndSupervise: pid ${String(options.targetPid)} for "${options.processId}" is not running -- ` +
90
+ "respawn-and-supervise requires a target that already exists, the same as attach mode does.");
91
+ }
92
+ const { killedViaSigkill } = await killTarget(options.targetPid, options.gracePeriodMs ?? DEFAULT_GRACE_PERIOD_MS);
93
+ const managedProcess = spawnProcess({
94
+ processId: options.processId,
95
+ command: options.respawn.command,
96
+ args: options.respawn.args ?? [],
97
+ cwd: options.respawn.cwd,
98
+ ...(options.respawn.env === undefined ? {} : { env: options.respawn.env }),
99
+ ...(options.serviceName === undefined ? {} : { serviceName: options.serviceName }),
100
+ ...(options.port === undefined ? {} : { port: options.port }),
101
+ ...(options.resourceLimits === undefined ? {} : { resourceLimits: options.resourceLimits }),
102
+ ...(options.filesystemPolicy === undefined ? {} : { filesystemPolicy: options.filesystemPolicy }),
103
+ ...(options.networkPolicy === undefined ? {} : { networkPolicy: options.networkPolicy }),
104
+ });
105
+ return {
106
+ managedProcess,
107
+ killedPid: options.targetPid,
108
+ killedViaSigkill,
109
+ respawnSource: options.respawn.source,
110
+ };
111
+ }
112
+ /**
113
+ * Opt-in, best-effort convenience — never the default. Reads `/proc/<pid>/cmdline`,
114
+ * `/cwd` and `/environ` to reconstruct a `RespawnCommand`, labelled `source:
115
+ * "proc-cmdline-inferred"` so it's never mistaken for a caller declaration.
116
+ *
117
+ * Disclosed limitations: Linux-only; `/proc/<pid>/environ` reflects only the
118
+ * environment at `execve()` time, so env vars set programmatically after exec are
119
+ * invisible; already-open file descriptors (inherited sockets/pipes) have no
120
+ * command-line representation and can't be recovered. Returns `null` — never
121
+ * throws, never guesses partially — when cmdline can't be read or is empty.
122
+ */
123
+ export function inferRespawnCommandFromProc(pid, platform = process.platform) {
124
+ if (platform !== "linux")
125
+ return null;
126
+ let cmdlineRaw;
127
+ try {
128
+ cmdlineRaw = readFileSync(`/proc/${String(pid)}/cmdline`, "utf8");
129
+ }
130
+ catch {
131
+ return null;
132
+ }
133
+ // NUL-separated with a trailing NUL; drop the empty tail entry
134
+ const parts = cmdlineRaw.split("\0").filter((part) => part !== "");
135
+ if (parts.length === 0)
136
+ return null;
137
+ const [command, ...args] = parts;
138
+ if (command === undefined)
139
+ return null;
140
+ let cwd;
141
+ try {
142
+ cwd = readlinkSync(`/proc/${String(pid)}/cwd`);
143
+ }
144
+ catch {
145
+ return null;
146
+ }
147
+ let env;
148
+ try {
149
+ const environRaw = readFileSync(`/proc/${String(pid)}/environ`, "utf8");
150
+ env = {};
151
+ for (const entry of environRaw.split("\0").filter((part) => part !== "")) {
152
+ const eq = entry.indexOf("=");
153
+ if (eq === -1)
154
+ continue;
155
+ env[entry.slice(0, eq)] = entry.slice(eq + 1);
156
+ }
157
+ }
158
+ catch {
159
+ // environ is commonly permission-denied across uids even when cmdline/cwd
160
+ // are readable; degrade to no env rather than failing the whole inference
161
+ env = undefined;
162
+ }
163
+ return {
164
+ command,
165
+ args,
166
+ cwd,
167
+ ...(env === undefined ? {} : { env }),
168
+ source: "proc-cmdline-inferred",
169
+ };
170
+ }
171
+ //# sourceMappingURL=respawn-and-supervise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"respawn-and-supervise.js","sourceRoot":"","sources":["../src/respawn-and-supervise.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descryy/runtime-orchestrator",
3
- "version": "0.4.9",
3
+ "version": "0.4.10",
4
4
  "type": "module",
5
5
  "description": "Assembles the runtime: controller-spawned services, live process output, collectors from a RuntimeAdapter, and a CollectorContext that can resolve script origins to source roots.",
6
6
  "license": "UNLICENSED",
@@ -28,7 +28,7 @@
28
28
  "dependencies": {
29
29
  "@descryy/runtime-contracts": "0.3.3",
30
30
  "@descryy/runtime-backend-observation": "0.3.6",
31
- "@descryy/runtime-controller": "0.3.8",
31
+ "@descryy/runtime-controller": "0.3.9",
32
32
  "@descryy/runtime-evidence-store": "0.4.2",
33
33
  "@descryy/runtime-adapter-typescript": "0.3.7",
34
34
  "@descryy/runtime-environment-profile": "0.4.5",