fission-worker 0.3.1 → 0.4.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.
package/dist/agent.js CHANGED
@@ -18,32 +18,41 @@ async function agentLoop(config) {
18
18
  };
19
19
  process.on("SIGTERM", shutdown);
20
20
  process.on("SIGINT", shutdown);
21
- // Heartbeat timer
22
- const heartbeatTimer = setInterval(async () => {
21
+ // Send heartbeat and handle cancel responses
22
+ const sendHeartbeat = async () => {
23
23
  try {
24
- await fetch(`${config.fissionUrl}/api/v1/worker/heartbeat`, {
24
+ const res = await fetch(`${config.fissionUrl}/api/v1/worker/heartbeat`, {
25
25
  method: "POST",
26
26
  headers: {
27
27
  Authorization: `Bearer ${config.apiKey}`,
28
28
  "Content-Type": "application/json",
29
29
  },
30
- body: JSON.stringify({ activeSessions: activeSessions.size }),
30
+ body: JSON.stringify({
31
+ activeSessions: activeSessions.size,
32
+ activeSessionIds: [...activeSessions.keys()],
33
+ }),
31
34
  });
35
+ if (res.ok) {
36
+ const data = await res.json();
37
+ if (data.cancelSessions?.length) {
38
+ for (const sessionId of data.cancelSessions) {
39
+ if (activeSessions.has(sessionId)) {
40
+ console.log(`[agent] Stopping session ${sessionId.slice(0, 8)} (cancelled by dashboard)`);
41
+ (0, docker_1.killSession)(sessionId, activeSessions);
42
+ }
43
+ }
44
+ }
45
+ }
32
46
  }
33
47
  catch {
34
48
  // Heartbeat failure is non-fatal
35
49
  }
36
- }, HEARTBEAT_INTERVAL_MS);
50
+ };
51
+ // Heartbeat timer
52
+ const heartbeatTimer = setInterval(sendHeartbeat, HEARTBEAT_INTERVAL_MS);
37
53
  // Send initial heartbeat
38
54
  try {
39
- await fetch(`${config.fissionUrl}/api/v1/worker/heartbeat`, {
40
- method: "POST",
41
- headers: {
42
- Authorization: `Bearer ${config.apiKey}`,
43
- "Content-Type": "application/json",
44
- },
45
- body: JSON.stringify({ activeSessions: 0 }),
46
- });
55
+ await sendHeartbeat();
47
56
  console.log(`[agent] Connected to ${config.fissionUrl}`);
48
57
  }
49
58
  catch (err) {
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/docker.d.ts CHANGED
@@ -20,3 +20,7 @@ export interface PipelineJob {
20
20
  * cleans up when done. Uses the host's Claude subscription auth.
21
21
  */
22
22
  export declare function startSession(job: PipelineJob, config: WorkerConfig, activeSessions: Map<string, ChildProcess>): void;
23
+ /**
24
+ * Kill a running session — sends SIGTERM, then SIGKILL after 10s grace period.
25
+ */
26
+ export declare function killSession(sessionId: string, activeSessions: Map<string, ChildProcess>): void;
package/dist/docker.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.startSession = startSession;
4
+ exports.killSession = killSession;
4
5
  const child_process_1 = require("child_process");
5
6
  const fs_1 = require("fs");
6
7
  const path_1 = require("path");
@@ -138,6 +139,24 @@ function findRunnerScript() {
138
139
  }
139
140
  return null;
140
141
  }
142
+ /**
143
+ * Kill a running session — sends SIGTERM, then SIGKILL after 10s grace period.
144
+ */
145
+ function killSession(sessionId, activeSessions) {
146
+ const proc = activeSessions.get(sessionId);
147
+ if (!proc)
148
+ return;
149
+ const tag = sessionId.slice(0, 8);
150
+ console.log(`[${tag}] Sending SIGTERM...`);
151
+ proc.kill("SIGTERM");
152
+ // Force kill after 10s if still running
153
+ setTimeout(() => {
154
+ if (activeSessions.has(sessionId)) {
155
+ console.log(`[${tag}] Grace period expired, sending SIGKILL`);
156
+ proc.kill("SIGKILL");
157
+ }
158
+ }, 10_000);
159
+ }
141
160
  function emitEvent(config, projectId, type, data) {
142
161
  fetch(`${config.fissionUrl}/api/v1/worker/events`, {
143
162
  method: "POST",
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../src/docker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../src/docker.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,15 +2,24 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const commander_1 = require("commander");
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
5
7
  const config_1 = require("./config");
6
8
  const agent_1 = require("./agent");
7
9
  const setup_1 = require("./setup");
8
10
  const health_1 = require("./health");
11
+ // Read version from package.json at runtime
12
+ let PKG_VERSION = "unknown";
13
+ try {
14
+ const pkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, "..", "package.json"), "utf-8"));
15
+ PKG_VERSION = pkg.version;
16
+ }
17
+ catch { /* fallback */ }
9
18
  const program = new commander_1.Command();
10
19
  program
11
20
  .name("fission-worker")
12
21
  .description("Fission Worker Agent — runs pipeline sessions in Docker containers")
13
- .version("0.1.0");
22
+ .version(PKG_VERSION);
14
23
  program
15
24
  .command("setup")
16
25
  .description("Interactive setup wizard — register this machine as a Fission worker")
@@ -27,7 +36,7 @@ program
27
36
  process.exit(1);
28
37
  }
29
38
  const config = (0, config_1.readConfig)();
30
- console.log(`[fission-worker] Starting worker "${config.workerName}" (${config.workerId.slice(0, 8)})`);
39
+ console.log(`[fission-worker] v${PKG_VERSION} — starting worker "${config.workerName}" (${config.workerId.slice(0, 8)})`);
31
40
  await (0, agent_1.agentLoop)(config);
32
41
  });
33
42
  program
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,qCAAmE;AACnE,mCAAoC;AACpC,mCAAmC;AACnC,qCAA8C;AAE9C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sEAAsE,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,IAAsB,EAAE,EAAE;IACvC,MAAM,IAAA,gBAAQ,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC,IAAA,qBAAY,GAAE,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,qCAAqC,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACxG,MAAM,IAAA,iBAAS,EAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,GAAG,EAAE;IACX,IAAI,CAAC,IAAA,qBAAY,GAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,aAAa,sBAAsB,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAA,sBAAa,GAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,MAAM,GAAG,IAAA,2BAAkB,GAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fission-worker",
3
- "version": "0.3.1",
3
+ "version": "0.4.1",
4
4
  "description": "Fission Worker Agent — polls Fission API for pipeline jobs, runs them in Docker containers",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -123,7 +123,9 @@ class ApiDataService {
123
123
  type,
124
124
  data,
125
125
  sessionId: this.sessionId,
126
- }).catch(() => { });
126
+ }).catch((err) => {
127
+ console.error(`[ApiDataService] Failed to emit ${type}: ${err}`);
128
+ });
127
129
  }
128
130
  // -- Activity Log ----------------------------------------------------- //
129
131
  async log(action, entityType, entityId, userId, details) {
@@ -90,12 +90,53 @@ let PipelineHelpersService = PipelineHelpersService_1 = class PipelineHelpersSer
90
90
  if (options?.jsonOutput) {
91
91
  try {
92
92
  const json = JSON.parse(stdout.trim());
93
- sessionId = json.session_id;
94
- // Replace stdout with just the result text for downstream parsing
95
- stdout = json.result ?? stdout;
93
+ if (Array.isArray(json)) {
94
+ // Array format: [{type:"system",subtype:"init",session_id:...}, ..., {type:"result",result:"..."}]
95
+ const initMsg = json.find((m) => m.type === "system" && m.subtype === "init");
96
+ if (initMsg?.session_id)
97
+ sessionId = initMsg.session_id;
98
+ const resultMsg = [...json].reverse().find((m) => m.type === "result");
99
+ if (resultMsg?.result) {
100
+ stdout = resultMsg.result;
101
+ }
102
+ else {
103
+ // Fallback: last assistant message content
104
+ const lastAssistant = [...json].reverse().find((m) => m.type === "assistant");
105
+ if (lastAssistant) {
106
+ const content = lastAssistant.content;
107
+ if (typeof content === "string") {
108
+ stdout = content;
109
+ }
110
+ else if (Array.isArray(content)) {
111
+ stdout = content
112
+ .filter((b) => b.type === "text")
113
+ .map((b) => b.text)
114
+ .join("\n");
115
+ }
116
+ }
117
+ }
118
+ }
119
+ else {
120
+ // Single object format: {session_id:"...", result:"..."}
121
+ sessionId = json.session_id;
122
+ stdout = json.result ?? stdout;
123
+ }
96
124
  }
97
125
  catch {
98
- // JSON parse failed — leave stdout as-is
126
+ // JSON parse failed — try JSONL (one JSON object per line)
127
+ try {
128
+ const lines = stdout.trim().split("\n").filter(Boolean);
129
+ const messages = lines.map((l) => JSON.parse(l));
130
+ const initMsg = messages.find((m) => m.type === "system" && m.subtype === "init");
131
+ if (initMsg?.session_id)
132
+ sessionId = initMsg.session_id;
133
+ const resultMsg = [...messages].reverse().find((m) => m.type === "result");
134
+ if (resultMsg?.result)
135
+ stdout = resultMsg.result;
136
+ }
137
+ catch {
138
+ // Neither JSON nor JSONL — leave stdout as-is
139
+ }
99
140
  }
100
141
  }
101
142
  resolve({ stdout, stderr, exitCode: code ?? 1, sessionId });
@@ -337,11 +337,22 @@ let PipelineService = PipelineService_1 = class PipelineService {
337
337
  });
338
338
  let killed = 0;
339
339
  let dequeued = 0;
340
+ let dispatched = 0;
340
341
  for (const session of sessions) {
341
342
  if (session.status === "QUEUED") {
342
343
  this.pipelineQueue.cancel(session.id);
343
344
  dequeued++;
344
345
  }
346
+ else if (session.status === "DISPATCHED" || session.workerId) {
347
+ // Remote worker session — mark TERMINATED so heartbeat tells worker to cancel
348
+ dispatched++;
349
+ if (session.workerId) {
350
+ await this.prisma.worker.update({
351
+ where: { id: session.workerId },
352
+ data: { activeSessions: { decrement: 1 } },
353
+ }).catch(() => { });
354
+ }
355
+ }
345
356
  else {
346
357
  this.stopRequested.add(session.id);
347
358
  const proc = this.activeProcesses.get(session.id);
@@ -362,7 +373,14 @@ let PipelineService = PipelineService_1 = class PipelineService {
362
373
  this.helpers.workerTasks.clear();
363
374
  this.helpers.slot3Info = null;
364
375
  this.workerService.clearSessions();
365
- return { message: `Stopped ${killed} process(es), removed ${dequeued} from queue` };
376
+ const parts = [];
377
+ if (killed)
378
+ parts.push(`stopped ${killed} local`);
379
+ if (dispatched)
380
+ parts.push(`cancelling ${dispatched} worker`);
381
+ if (dequeued)
382
+ parts.push(`removed ${dequeued} from queue`);
383
+ return { message: parts.join(", ") || "No active sessions" };
366
384
  }
367
385
  // ------------------------------------------------------------------ //
368
386
  // Autopilot — run pipeline in a continuous loop //
@@ -76,11 +76,16 @@ let WorkerApiController = WorkerApiController_1 = class WorkerApiController {
76
76
  this.logger.warn(`Failed to generate GitHub token for installation ${repoWithInstallation.githubInstallationId}: ${err}`);
77
77
  }
78
78
  }
79
- // Mark as ACTIVE
79
+ // Mark as ACTIVE and notify browser
80
80
  await this.prisma.session.update({
81
81
  where: { id: session.id },
82
82
  data: { status: "ACTIVE" },
83
83
  });
84
+ this.eventBus.emit(session.projectId, "phase_changed", {
85
+ sessionId: session.id,
86
+ phase: "BUILD",
87
+ status: "ACTIVE",
88
+ });
84
89
  return {
85
90
  sessionId: session.id,
86
91
  projectId: session.projectId,
@@ -101,10 +106,23 @@ let WorkerApiController = WorkerApiController_1 = class WorkerApiController {
101
106
  status: "ONLINE",
102
107
  },
103
108
  });
104
- return { ok: true };
109
+ // Check if any sessions the worker thinks are active have been cancelled
110
+ let cancelSessions = [];
111
+ if (body.activeSessionIds?.length) {
112
+ const terminated = await this.prisma.session.findMany({
113
+ where: {
114
+ id: { in: body.activeSessionIds },
115
+ status: "TERMINATED",
116
+ },
117
+ select: { id: true },
118
+ });
119
+ cancelSessions = terminated.map((s) => s.id);
120
+ }
121
+ return { ok: true, cancelSessions };
105
122
  }
106
123
  // ── Event relay (worker → SSE → browser) ──────────────────────── //
107
124
  async relayEvent(body) {
125
+ this.logger.debug(`[EventRelay] ${body.type} for project ${body.projectId?.slice(0, 8)}`);
108
126
  this.eventBus.emit(body.projectId, body.type, body.data);
109
127
  }
110
128
  // ── Tasks ──────────────────────────────────────────────────────── //