@action-llama/action-llama 0.19.2 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/agents/container-runner.d.ts +1 -0
  2. package/dist/agents/container-runner.d.ts.map +1 -1
  3. package/dist/agents/container-runner.js +3 -0
  4. package/dist/agents/container-runner.js.map +1 -1
  5. package/dist/build-info.json +1 -1
  6. package/dist/cli/commands/doctor.d.ts.map +1 -1
  7. package/dist/cli/commands/doctor.js +40 -7
  8. package/dist/cli/commands/doctor.js.map +1 -1
  9. package/dist/control/routes/control.d.ts +4 -0
  10. package/dist/control/routes/control.d.ts.map +1 -1
  11. package/dist/control/routes/control.js.map +1 -1
  12. package/dist/control/routes/stats.d.ts +10 -1
  13. package/dist/control/routes/stats.d.ts.map +1 -1
  14. package/dist/control/routes/stats.js +111 -1
  15. package/dist/control/routes/stats.js.map +1 -1
  16. package/dist/docker/host-user-runtime.d.ts +19 -4
  17. package/dist/docker/host-user-runtime.d.ts.map +1 -1
  18. package/dist/docker/host-user-runtime.js +265 -93
  19. package/dist/docker/host-user-runtime.js.map +1 -1
  20. package/dist/events/event-queue-sqlite.d.ts +1 -0
  21. package/dist/events/event-queue-sqlite.d.ts.map +1 -1
  22. package/dist/events/event-queue-sqlite.js +13 -0
  23. package/dist/events/event-queue-sqlite.js.map +1 -1
  24. package/dist/events/event-queue-unified.d.ts +1 -0
  25. package/dist/events/event-queue-unified.d.ts.map +1 -1
  26. package/dist/events/event-queue-unified.js +9 -0
  27. package/dist/events/event-queue-unified.js.map +1 -1
  28. package/dist/events/event-queue.d.ts +1 -0
  29. package/dist/events/event-queue.d.ts.map +1 -1
  30. package/dist/events/event-queue.js +6 -0
  31. package/dist/events/event-queue.js.map +1 -1
  32. package/dist/execution/call-dispatcher.d.ts.map +1 -1
  33. package/dist/execution/call-dispatcher.js +24 -14
  34. package/dist/execution/call-dispatcher.js.map +1 -1
  35. package/dist/execution/dispatch-policy.d.ts +53 -0
  36. package/dist/execution/dispatch-policy.d.ts.map +1 -0
  37. package/dist/execution/dispatch-policy.js +53 -0
  38. package/dist/execution/dispatch-policy.js.map +1 -0
  39. package/dist/execution/execution.d.ts.map +1 -1
  40. package/dist/execution/execution.js +26 -15
  41. package/dist/execution/execution.js.map +1 -1
  42. package/dist/execution/index.d.ts +2 -0
  43. package/dist/execution/index.d.ts.map +1 -1
  44. package/dist/execution/index.js +1 -0
  45. package/dist/execution/index.js.map +1 -1
  46. package/dist/execution/runtime-factory.d.ts +7 -0
  47. package/dist/execution/runtime-factory.d.ts.map +1 -1
  48. package/dist/execution/runtime-factory.js +19 -5
  49. package/dist/execution/runtime-factory.js.map +1 -1
  50. package/dist/frontend/assets/index-CtDub1yn.css +2 -0
  51. package/dist/frontend/assets/index-Dp0WUSmO.js +13 -0
  52. package/dist/frontend/index.html +2 -2
  53. package/dist/gateway/index.d.ts.map +1 -1
  54. package/dist/gateway/index.js +1 -0
  55. package/dist/gateway/index.js.map +1 -1
  56. package/dist/gateway/routes/dashboard.d.ts +2 -0
  57. package/dist/gateway/routes/dashboard.d.ts.map +1 -1
  58. package/dist/gateway/routes/dashboard.js +1 -1
  59. package/dist/gateway/routes/dashboard.js.map +1 -1
  60. package/dist/scheduler/gateway-setup.d.ts.map +1 -1
  61. package/dist/scheduler/gateway-setup.js +30 -23
  62. package/dist/scheduler/gateway-setup.js.map +1 -1
  63. package/dist/scheduler/index.d.ts.map +1 -1
  64. package/dist/scheduler/index.js +45 -30
  65. package/dist/scheduler/index.js.map +1 -1
  66. package/dist/scheduler/orphan-recovery.d.ts.map +1 -1
  67. package/dist/scheduler/orphan-recovery.js +14 -0
  68. package/dist/scheduler/orphan-recovery.js.map +1 -1
  69. package/dist/scheduler/shutdown.d.ts +2 -0
  70. package/dist/scheduler/shutdown.d.ts.map +1 -1
  71. package/dist/scheduler/shutdown.js +8 -1
  72. package/dist/scheduler/shutdown.js.map +1 -1
  73. package/dist/scheduler/watcher.d.ts.map +1 -1
  74. package/dist/scheduler/watcher.js +27 -1
  75. package/dist/scheduler/watcher.js.map +1 -1
  76. package/dist/shared/config/types.d.ts +1 -0
  77. package/dist/shared/config/types.d.ts.map +1 -1
  78. package/dist/shared/validation.js +1 -1
  79. package/dist/shared/validation.js.map +1 -1
  80. package/dist/shared/work-queue.d.ts +2 -0
  81. package/dist/shared/work-queue.d.ts.map +1 -1
  82. package/package.json +9 -2
  83. package/dist/frontend/assets/index-BO_q8PRQ.css +0 -2
  84. package/dist/frontend/assets/index-Stc3A2k0.js +0 -13
@@ -7,21 +7,32 @@
7
7
  * - Working directory: /tmp/al-runs/<instance-id>/ (chowned to agent user)
8
8
  * - Logs written to /tmp/al-runs/<instance-id>.log (owned by scheduler)
9
9
  * - No image builds, no containers, no Docker dependency
10
+ *
11
+ * Stdio is directed to the log file (not pipes), so the child process survives
12
+ * scheduler restarts. On restart, `reattach()` reconstructs the in-memory state
13
+ * from the PID file, and all methods (streamLogs, waitForExit, kill) follow the
14
+ * same code path as a freshly launched process.
10
15
  */
11
16
  import type { Runtime, RuntimeLaunchOpts, RuntimeCredentials, RunningAgent } from "./runtime.js";
12
17
  export declare class HostUserRuntime implements Runtime {
13
18
  readonly needsGateway = false;
14
19
  private runAs;
20
+ private groups;
15
21
  private processes;
16
22
  private runAgentNames;
17
- private logStreams;
18
- constructor(runAs?: string);
23
+ constructor(runAs?: string, groups?: string[]);
19
24
  isAgentRunning(agentName: string): Promise<boolean>;
20
25
  listRunningAgents(): Promise<RunningAgent[]>;
21
26
  prepareCredentials(credRefs: string[]): Promise<RuntimeCredentials>;
22
27
  cleanupCredentials(creds: RuntimeCredentials): void;
23
28
  launch(opts: RuntimeLaunchOpts): Promise<string>;
24
- streamLogs(runId: string, onLine: (line: string) => void, onStderr?: (text: string) => void): {
29
+ /**
30
+ * Re-attach to an orphaned process from a previous scheduler session.
31
+ * Reads the PID file and reconstructs in-memory state so that streamLogs,
32
+ * waitForExit, and kill all work through the same code path as launch().
33
+ */
34
+ reattach(runId: string): boolean;
35
+ streamLogs(runId: string, onLine: (line: string) => void, _onStderr?: (text: string) => void): {
25
36
  stop: () => void;
26
37
  };
27
38
  waitForExit(runId: string, timeoutSeconds: number): Promise<number>;
@@ -32,6 +43,10 @@ export declare class HostUserRuntime implements Runtime {
32
43
  stop: () => void;
33
44
  };
34
45
  getTaskUrl(): string | null;
35
- inspectContainer(): Promise<null>;
46
+ inspectContainer(runId: string): Promise<{
47
+ env: Record<string, string>;
48
+ } | null>;
49
+ /** Terminate all tracked child processes (called during graceful shutdown). */
50
+ shutdown(): Promise<void>;
36
51
  }
37
52
  //# sourceMappingURL=host-user-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-user-runtime.d.ts","sourceRoot":"","sources":["../../src/docker/host-user-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,OAAO,KAAK,EACV,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAC5B,YAAY,EAC/B,MAAM,cAAc,CAAC;AA2CtB,qBAAa,eAAgB,YAAW,OAAO;IAC7C,QAAQ,CAAC,YAAY,SAAS;IAE9B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,UAAU,CAAqC;gBAE3C,KAAK,GAAE,MAAmB;IAIhC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOnD,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAe5C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoDzE,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAM7C,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IA6GtD,UAAU,CACR,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC;QAAE,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE;IAkCvB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B7D,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwBpE,UAAU,CACR,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC/B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GACjC;QAAE,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE;IAKvB,UAAU,IAAI,MAAM,GAAG,IAAI;IAIrB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxC"}
1
+ {"version":3,"file":"host-user-runtime.d.ts","sourceRoot":"","sources":["../../src/docker/host-user-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAaH,OAAO,KAAK,EACV,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAC5B,YAAY,EAC/B,MAAM,cAAc,CAAC;AA4HtB,qBAAa,eAAgB,YAAW,OAAO;IAC7C,QAAQ,CAAC,YAAY,SAAS;IAE9B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,aAAa,CAA6B;gBAEtC,KAAK,GAAE,MAAmB,EAAE,MAAM,GAAE,MAAM,EAAO;IAKvD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBnD,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAgD5C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoDzE,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAM7C,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAoFtD;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAoBhC,UAAU,CACR,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GACjC;QAAE,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE;IAmDvB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B7D,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgClC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASpC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAuBpE,UAAU,CACR,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC/B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GACjC;QAAE,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE;IAKvB,UAAU,IAAI,MAAM,GAAG,IAAI;IAIrB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAUtF,+EAA+E;IACzE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC"}
@@ -7,15 +7,55 @@
7
7
  * - Working directory: /tmp/al-runs/<instance-id>/ (chowned to agent user)
8
8
  * - Logs written to /tmp/al-runs/<instance-id>.log (owned by scheduler)
9
9
  * - No image builds, no containers, no Docker dependency
10
+ *
11
+ * Stdio is directed to the log file (not pipes), so the child process survives
12
+ * scheduler restarts. On restart, `reattach()` reconstructs the in-memory state
13
+ * from the PID file, and all methods (streamLogs, waitForExit, kill) follow the
14
+ * same code path as a freshly launched process.
10
15
  */
11
16
  import { spawn, execFileSync } from "child_process";
17
+ import { EventEmitter } from "events";
12
18
  import { randomUUID } from "crypto";
13
- import { mkdtempSync, mkdirSync, writeFileSync, rmSync, chmodSync, chownSync, readFileSync, existsSync, createWriteStream, } from "fs";
19
+ import { mkdtempSync, mkdirSync, writeFileSync, rmSync, chmodSync, chownSync, readFileSync, existsSync, readdirSync, openSync, readSync, closeSync, statSync, watch, } from "fs";
14
20
  import { join } from "path";
15
21
  import { tmpdir } from "os";
16
22
  import { parseCredentialRef, getDefaultBackend } from "../shared/credentials.js";
17
23
  import { CONSTANTS } from "../shared/constants.js";
18
24
  const RUNS_DIR = join(tmpdir(), "al-runs");
25
+ const ORPHAN_POLL_MS = 500;
26
+ function pidFilePath(runId) {
27
+ return join(RUNS_DIR, `${runId}.pid`);
28
+ }
29
+ function writePidFile(runId, data) {
30
+ try {
31
+ writeFileSync(pidFilePath(runId), JSON.stringify(data) + "\n", { mode: 0o644 });
32
+ }
33
+ catch { /* best effort */ }
34
+ }
35
+ function readPidFile(runId) {
36
+ try {
37
+ const content = readFileSync(pidFilePath(runId), "utf-8");
38
+ return JSON.parse(content.trim());
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ }
44
+ function removePidFile(runId) {
45
+ try {
46
+ rmSync(pidFilePath(runId));
47
+ }
48
+ catch { /* best effort */ }
49
+ }
50
+ function isProcessAlive(pid) {
51
+ try {
52
+ process.kill(pid, 0);
53
+ return true;
54
+ }
55
+ catch {
56
+ return false;
57
+ }
58
+ }
19
59
  /** Resolve the UID for an OS user. Returns undefined if user doesn't exist. */
20
60
  function resolveUid(username) {
21
61
  try {
@@ -44,24 +84,76 @@ function resolveGid(username) {
44
84
  return undefined;
45
85
  }
46
86
  }
87
+ /**
88
+ * Wraps a bare OS PID (discovered via PID file) so it behaves like a
89
+ * ChildProcess to the rest of the runtime. Polls liveness and emits
90
+ * "exit" when the process disappears.
91
+ */
92
+ class OrphanProcess extends EventEmitter {
93
+ pid;
94
+ pollTimer = null;
95
+ constructor(pid) {
96
+ super();
97
+ this.pid = pid;
98
+ this.pollTimer = setInterval(() => {
99
+ if (!isProcessAlive(pid)) {
100
+ this.stop();
101
+ this.emit("exit", 0, null);
102
+ }
103
+ }, ORPHAN_POLL_MS);
104
+ }
105
+ kill(signal) {
106
+ try {
107
+ process.kill(this.pid, signal);
108
+ return true;
109
+ }
110
+ catch {
111
+ return false;
112
+ }
113
+ }
114
+ stop() {
115
+ if (this.pollTimer) {
116
+ clearInterval(this.pollTimer);
117
+ this.pollTimer = null;
118
+ }
119
+ }
120
+ }
47
121
  export class HostUserRuntime {
48
122
  needsGateway = false;
49
123
  runAs;
124
+ groups;
50
125
  processes = new Map();
51
126
  runAgentNames = new Map();
52
- logStreams = new Map();
53
- constructor(runAs = "al-agent") {
127
+ constructor(runAs = "al-agent", groups = []) {
54
128
  this.runAs = runAs;
129
+ this.groups = groups;
55
130
  }
56
131
  async isAgentRunning(agentName) {
57
132
  for (const [, name] of this.runAgentNames) {
58
133
  if (name === agentName)
59
134
  return true;
60
135
  }
136
+ // Check PID files for orphaned processes from a previous scheduler session
137
+ try {
138
+ if (!existsSync(RUNS_DIR))
139
+ return false;
140
+ const prefix = `al-${agentName}-`;
141
+ for (const f of readdirSync(RUNS_DIR)) {
142
+ if (!f.startsWith(prefix) || !f.endsWith(".pid"))
143
+ continue;
144
+ const runId = f.slice(0, -4);
145
+ const data = readPidFile(runId);
146
+ if (data && isProcessAlive(data.pid))
147
+ return true;
148
+ }
149
+ }
150
+ catch { /* best effort */ }
61
151
  return false;
62
152
  }
63
153
  async listRunningAgents() {
64
154
  const agents = [];
155
+ const knownRunIds = new Set();
156
+ // In-memory tracked processes (current scheduler session)
65
157
  for (const [runId, agentName] of this.runAgentNames) {
66
158
  if (this.processes.has(runId)) {
67
159
  agents.push({
@@ -70,8 +162,39 @@ export class HostUserRuntime {
70
162
  runtimeId: runId,
71
163
  status: "running",
72
164
  });
165
+ knownRunIds.add(runId);
73
166
  }
74
167
  }
168
+ // Scan PID files for orphaned processes from a previous scheduler session
169
+ try {
170
+ if (!existsSync(RUNS_DIR))
171
+ return agents;
172
+ for (const file of readdirSync(RUNS_DIR)) {
173
+ if (!file.endsWith(".pid"))
174
+ continue;
175
+ const runId = file.slice(0, -4);
176
+ if (knownRunIds.has(runId))
177
+ continue;
178
+ const data = readPidFile(runId);
179
+ if (!data) {
180
+ removePidFile(runId);
181
+ continue;
182
+ }
183
+ if (isProcessAlive(data.pid)) {
184
+ agents.push({
185
+ agentName: data.agentName,
186
+ taskId: runId,
187
+ runtimeId: runId,
188
+ status: "running",
189
+ startedAt: new Date(data.startedAt),
190
+ });
191
+ }
192
+ else {
193
+ removePidFile(runId);
194
+ }
195
+ }
196
+ }
197
+ catch { /* best effort */ }
75
198
  return agents;
76
199
  }
77
200
  async prepareCredentials(credRefs) {
@@ -145,9 +268,10 @@ export class HostUserRuntime {
145
268
  }
146
269
  catch { /* non-root */ }
147
270
  }
148
- // Create log file (owned by scheduler user, not agent user)
271
+ // Create log file child writes directly to this fd so output survives
272
+ // scheduler restarts. streamLogs() tails this file using fs.watch().
149
273
  const logPath = join(RUNS_DIR, `${runId}.log`);
150
- const logStream = createWriteStream(logPath, { flags: "a" });
274
+ const logFd = openSync(logPath, "a");
151
275
  // Build env vars for the child process
152
276
  const env = {
153
277
  ...process.env,
@@ -158,106 +282,117 @@ export class HostUserRuntime {
158
282
  };
159
283
  // Find the `al` binary path
160
284
  const alBin = process.argv[1] || "al";
161
- // Spawn: sudo -u <runAs> <al> _run-agent <agentName>
162
- const proc = spawn("sudo", [
163
- "-u", this.runAs,
164
- "--preserve-env=AL_CREDENTIALS_PATH,AL_WORK_DIR,AL_INSTANCE_ID,PROMPT,GATEWAY_URL,SHUTDOWN_SECRET,OTEL_TRACE_PARENT,OTEL_EXPORTER_OTLP_ENDPOINT,PATH,HOME",
165
- alBin, "_run-agent", opts.agentName,
166
- "--project", process.cwd(),
167
- ], {
168
- stdio: ["ignore", "pipe", "pipe"],
285
+ // Build sudo args: sudo -u <runAs> [-g <group>] --preserve-env=... <al> _run-agent <agentName>
286
+ // When groups are configured, set the first group as the primary group so the agent
287
+ // process has the required group access (e.g. "docker" for Docker socket access).
288
+ // sudo running as root can set the group regardless of the user's /etc/group membership.
289
+ const sudoArgs = ["-u", this.runAs];
290
+ if (this.groups.length > 0) {
291
+ sudoArgs.push("-g", this.groups[0]);
292
+ }
293
+ sudoArgs.push("--preserve-env=AL_CREDENTIALS_PATH,AL_WORK_DIR,AL_INSTANCE_ID,PROMPT,GATEWAY_URL,SHUTDOWN_SECRET,OTEL_TRACE_PARENT,OTEL_EXPORTER_OTLP_ENDPOINT,PATH,HOME", alBin, "_run-agent", opts.agentName, "--project", process.cwd());
294
+ // Spawn: sudo -u <runAs> [-g <group>] <al> _run-agent <agentName>
295
+ const proc = spawn("sudo", sudoArgs, {
296
+ stdio: ["ignore", logFd, logFd],
169
297
  env,
170
298
  cwd: workDir,
171
299
  });
172
- // Set up buffering stream statecaptures all output from process start,
173
- // so streamLogs() can flush buffered lines without any data loss.
174
- const streamState = {
175
- stdoutBuffer: "",
176
- stderrBuffer: "",
177
- bufferedLines: [],
178
- bufferedStderr: [],
179
- onLine: null,
180
- onStderr: null,
181
- };
182
- proc.stdout?.on("data", (chunk) => {
183
- const text = chunk.toString();
184
- // Always write raw data to the run log file
185
- logStream.write(text);
186
- // Assemble complete lines and forward or buffer them
187
- streamState.stdoutBuffer += text;
188
- const lines = streamState.stdoutBuffer.split("\n");
189
- streamState.stdoutBuffer = lines.pop() || "";
190
- for (const line of lines) {
191
- if (streamState.onLine) {
192
- streamState.onLine(line);
193
- }
194
- else {
195
- streamState.bufferedLines.push(line);
196
- }
197
- }
198
- });
199
- proc.stderr?.on("data", (chunk) => {
200
- const text = chunk.toString();
201
- logStream.write(text);
202
- const trimmed = text.trim();
203
- if (trimmed) {
204
- if (streamState.onStderr) {
205
- streamState.onStderr(trimmed);
206
- }
207
- else {
208
- streamState.bufferedStderr.push(trimmed);
209
- }
210
- }
211
- });
212
- this.logStreams.set(runId, streamState);
300
+ // Close the fd in the parent child has its own copy
301
+ closeSync(logFd);
213
302
  this.processes.set(runId, proc);
214
303
  this.runAgentNames.set(runId, opts.agentName);
304
+ // Write PID file for orphan recovery across scheduler restarts
305
+ if (proc.pid) {
306
+ writePidFile(runId, {
307
+ pid: proc.pid,
308
+ agentName: opts.agentName,
309
+ env: {
310
+ ...(opts.env.SHUTDOWN_SECRET ? { SHUTDOWN_SECRET: opts.env.SHUTDOWN_SECRET } : {}),
311
+ ...(opts.env.GATEWAY_URL ? { GATEWAY_URL: opts.env.GATEWAY_URL } : {}),
312
+ AL_CREDENTIALS_PATH: opts.credentials.stagingDir,
313
+ },
314
+ startedAt: new Date().toISOString(),
315
+ });
316
+ }
215
317
  // Clean up tracking on exit
216
318
  proc.on("exit", () => {
217
- // Flush any remaining partial stdout line
218
- if (streamState.stdoutBuffer.trim()) {
219
- if (streamState.onLine) {
220
- streamState.onLine(streamState.stdoutBuffer);
221
- }
222
- else {
223
- streamState.bufferedLines.push(streamState.stdoutBuffer);
224
- }
225
- streamState.stdoutBuffer = "";
226
- }
227
- logStream.end();
228
319
  this.processes.delete(runId);
229
320
  this.runAgentNames.delete(runId);
230
- this.logStreams.delete(runId);
321
+ removePidFile(runId);
231
322
  });
232
323
  return runId;
233
324
  }
234
- streamLogs(runId, onLine, onStderr) {
235
- const proc = this.processes.get(runId);
236
- if (!proc)
237
- return { stop: () => { } };
238
- const streamState = this.logStreams.get(runId);
239
- if (!streamState)
325
+ /**
326
+ * Re-attach to an orphaned process from a previous scheduler session.
327
+ * Reads the PID file and reconstructs in-memory state so that streamLogs,
328
+ * waitForExit, and kill all work through the same code path as launch().
329
+ */
330
+ reattach(runId) {
331
+ if (this.processes.has(runId))
332
+ return true;
333
+ const data = readPidFile(runId);
334
+ if (!data || !isProcessAlive(data.pid))
335
+ return false;
336
+ const orphan = new OrphanProcess(data.pid);
337
+ this.processes.set(runId, orphan);
338
+ this.runAgentNames.set(runId, data.agentName);
339
+ orphan.on("exit", () => {
340
+ orphan.stop();
341
+ this.processes.delete(runId);
342
+ this.runAgentNames.delete(runId);
343
+ removePidFile(runId);
344
+ });
345
+ return true;
346
+ }
347
+ streamLogs(runId, onLine, _onStderr) {
348
+ const logPath = join(RUNS_DIR, `${runId}.log`);
349
+ if (!existsSync(logPath))
240
350
  return { stop: () => { } };
241
- // Flush lines buffered between launch() and now (no data loss)
242
- for (const line of streamState.bufferedLines) {
243
- onLine(line);
244
- }
245
- streamState.bufferedLines.length = 0;
246
- for (const text of streamState.bufferedStderr) {
247
- if (onStderr)
248
- onStderr(text);
351
+ let offset = 0;
352
+ let lineBuffer = "";
353
+ let stopped = false;
354
+ const readNewData = () => {
355
+ if (stopped)
356
+ return;
357
+ try {
358
+ const size = statSync(logPath).size;
359
+ if (size <= offset)
360
+ return;
361
+ const buf = Buffer.alloc(size - offset);
362
+ const fd = openSync(logPath, "r");
363
+ try {
364
+ readSync(fd, buf, 0, buf.length, offset);
365
+ }
366
+ finally {
367
+ closeSync(fd);
368
+ }
369
+ offset = size;
370
+ lineBuffer += buf.toString();
371
+ const lines = lineBuffer.split("\n");
372
+ lineBuffer = lines.pop() || "";
373
+ for (const line of lines) {
374
+ onLine(line);
375
+ }
376
+ }
377
+ catch { /* file may have been removed */ }
378
+ };
379
+ // Read existing content, then watch for new writes (inotify/kqueue)
380
+ readNewData();
381
+ let watcher = null;
382
+ try {
383
+ watcher = watch(logPath, () => readNewData());
249
384
  }
250
- streamState.bufferedStderr.length = 0;
251
- // Forward all future lines through the callbacks
252
- streamState.onLine = onLine;
253
- streamState.onStderr = onStderr ?? null;
385
+ catch { /* watch may fail on some filesystems */ }
254
386
  return {
255
387
  stop: () => {
256
- streamState.onLine = null;
257
- streamState.onStderr = null;
258
- if (streamState.stdoutBuffer.trim()) {
259
- onLine(streamState.stdoutBuffer);
260
- streamState.stdoutBuffer = "";
388
+ stopped = true;
389
+ if (watcher) {
390
+ watcher.close();
391
+ watcher = null;
392
+ }
393
+ if (lineBuffer.trim()) {
394
+ onLine(lineBuffer);
395
+ lineBuffer = "";
261
396
  }
262
397
  },
263
398
  };
@@ -299,22 +434,43 @@ export class HostUserRuntime {
299
434
  proc.kill("SIGKILL");
300
435
  }
301
436
  }, 5000);
437
+ return;
438
+ }
439
+ // Not tracked — try PID file as last resort (e.g. kill called before reattach)
440
+ const data = readPidFile(runId);
441
+ if (data && isProcessAlive(data.pid)) {
442
+ try {
443
+ process.kill(data.pid, "SIGTERM");
444
+ setTimeout(() => {
445
+ try {
446
+ if (isProcessAlive(data.pid)) {
447
+ process.kill(data.pid, "SIGKILL");
448
+ }
449
+ }
450
+ catch { /* process may have exited */ }
451
+ removePidFile(runId);
452
+ }, 5000);
453
+ }
454
+ catch { /* process may have exited */ }
455
+ }
456
+ else {
457
+ removePidFile(runId);
302
458
  }
303
459
  }
304
460
  async remove(runId) {
305
- // Clean up working directory
461
+ // Clean up working directory and PID file
306
462
  const workDir = join(RUNS_DIR, runId);
307
463
  try {
308
464
  rmSync(workDir, { recursive: true, force: true });
309
465
  }
310
466
  catch { /* best effort */ }
467
+ removePidFile(runId);
311
468
  }
312
469
  async fetchLogs(agentName, limit) {
313
470
  // Read from log files in RUNS_DIR matching this agent
314
471
  try {
315
472
  if (!existsSync(RUNS_DIR))
316
473
  return [];
317
- const { readdirSync } = await import("fs");
318
474
  const files = readdirSync(RUNS_DIR)
319
475
  .filter(f => f.startsWith(`al-${agentName}-`) && f.endsWith(".log"))
320
476
  .sort()
@@ -342,8 +498,24 @@ export class HostUserRuntime {
342
498
  getTaskUrl() {
343
499
  return null;
344
500
  }
345
- async inspectContainer() {
346
- return null;
501
+ async inspectContainer(runId) {
502
+ const data = readPidFile(runId);
503
+ if (!data)
504
+ return null;
505
+ if (!isProcessAlive(data.pid)) {
506
+ removePidFile(runId);
507
+ return null;
508
+ }
509
+ return { env: data.env };
510
+ }
511
+ /** Terminate all tracked child processes (called during graceful shutdown). */
512
+ async shutdown() {
513
+ for (const [, proc] of this.processes) {
514
+ try {
515
+ proc.kill("SIGTERM");
516
+ }
517
+ catch { /* best effort */ }
518
+ }
347
519
  }
348
520
  }
349
521
  //# sourceMappingURL=host-user-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-user-runtime.js","sourceRoot":"","sources":["../../src/docker/host-user-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-user-runtime.js","sourceRoot":"","sources":["../../src/docker/host-user-runtime.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ export declare class SqliteWorkQueue<T> implements WorkQueue<T> {
24
24
  constructor(maxSize: number, dbOrPath: string | AppDb);
25
25
  enqueue(agentName: string, context: T, receivedAt?: Date): EnqueueResult<T>;
26
26
  dequeue(agentName: string): QueuedWorkItem<T> | undefined;
27
+ peek(agentName: string, limit?: number): QueuedWorkItem<T>[];
27
28
  size(agentName: string): number;
28
29
  clear(agentName: string): void;
29
30
  clearAll(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"event-queue-sqlite.d.ts","sourceRoot":"","sources":["../../src/events/event-queue-sqlite.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,CAAQ;IAClB,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,mBAAmB,CAIb;IAEd,OAAO,CAAC,mBAAmB,CAKiC;gBAEhD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK;IA8CrD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC;IAoB3E,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS;IASzD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAO/B,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI9B,QAAQ,IAAI,IAAI;IAIhB,KAAK,IAAI,IAAI;CAKd"}
1
+ {"version":3,"file":"event-queue-sqlite.d.ts","sourceRoot":"","sources":["../../src/events/event-queue-sqlite.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,CAAQ;IAClB,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,mBAAmB,CAIb;IAEd,OAAO,CAAC,mBAAmB,CAKiC;gBAEhD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK;IA8CrD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC;IAoB3E,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS;IASzD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE;IAgB5D,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAO/B,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI9B,QAAQ,IAAI,IAAI;IAIhB,KAAK,IAAI,IAAI;CAKd"}
@@ -85,6 +85,19 @@ export class SqliteWorkQueue {
85
85
  receivedAt: new Date(row.received_at),
86
86
  };
87
87
  }
88
+ peek(agentName, limit) {
89
+ const client = this.db.$client;
90
+ const sql = limit !== undefined
91
+ ? "SELECT payload, received_at FROM work_queue WHERE agent = ? ORDER BY rowid ASC LIMIT ?"
92
+ : "SELECT payload, received_at FROM work_queue WHERE agent = ? ORDER BY rowid ASC";
93
+ const rows = limit !== undefined
94
+ ? client.prepare(sql).all(agentName, limit)
95
+ : client.prepare(sql).all(agentName);
96
+ return rows.map((r) => ({
97
+ context: JSON.parse(r.payload),
98
+ receivedAt: new Date(r.received_at),
99
+ }));
100
+ }
88
101
  size(agentName) {
89
102
  const row = this.db.$client
90
103
  .prepare("SELECT COUNT(*) AS n FROM work_queue WHERE agent = ?")
@@ -1 +1 @@
1
- {"version":3,"file":"event-queue-sqlite.js","sourceRoot":"","sources":["../../src/events/event-queue-sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-queue-sqlite.js","sourceRoot":"","sources":["../../src/events/event-queue-sqlite.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare class EventSourcedWorkQueue<T> implements WorkQueue<T> {
19
19
  private enqueueAsync;
20
20
  dequeue(agentName: string): QueuedWorkItem<T> | undefined;
21
21
  private dequeueAsync;
22
+ peek(agentName: string, limit?: number): QueuedWorkItem<T>[];
22
23
  size(agentName: string): number;
23
24
  clear(agentName: string): void;
24
25
  private clearAsync;