@tyvm/knowhow 0.0.132 → 0.0.135

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/src/worker.ts CHANGED
@@ -306,6 +306,26 @@ export async function worker(options?: {
306
306
  let lastJwt: string | null = null;
307
307
  let unauthorizedJwt: string | null = null;
308
308
 
309
+ // ---------------------------------------------------------------------------
310
+ // Liveness watchdog state
311
+ // ---------------------------------------------------------------------------
312
+ // After a full snapshot (mem + disk) the VM is paused and later resumed,
313
+ // potentially on a different host. The guest kernel resumes believing its
314
+ // TCP socket to the backend is still ESTABLISHED, but the server tore that
315
+ // connection down long ago. This produces a "zombie" half-open socket:
316
+ // - ws.on("close") never fires (guest never saw a FIN/RST)
317
+ // - ws.ping() does NOT throw (kernel still thinks the socket is open)
318
+ // so `connected` would stay true forever and we'd never reconnect.
319
+ //
320
+ // The fix is an active heartbeat with a pong DEADLINE: we send a ping every
321
+ // loop tick and require a pong before the next tick. If the pong never
322
+ // arrives, we treat the socket as dead, terminate() it (frees the zombie
323
+ // immediately and fires "close"), and let the reconnect loop take over.
324
+ const PONG_TIMEOUT_MS = 15000;
325
+ let awaitingPong = false;
326
+ let lastPongAt = Date.now();
327
+ let tunnelAwaitingPong = false;
328
+ let tunnelLastPongAt = Date.now();
309
329
  // Check if tunnel is enabled.
310
330
  // When allowedTools is passed as an override (e.g. from `knowhow tunnel`),
311
331
  // the tunnel is always forced on — that's the whole point of tunnel mode.
@@ -446,6 +466,13 @@ export async function worker(options?: {
446
466
  authService,
447
467
  onOpen: (handler) => {
448
468
  tunnelHandler = handler;
469
+ // Reset tunnel heartbeat state for the fresh connection
470
+ tunnelAwaitingPong = false;
471
+ tunnelLastPongAt = Date.now();
472
+ },
473
+ onPong: () => {
474
+ tunnelAwaitingPong = false;
475
+ tunnelLastPongAt = Date.now();
449
476
  },
450
477
  onClose: (code, _reason) => {
451
478
  if (code === 1008) {
@@ -478,6 +505,16 @@ export async function worker(options?: {
478
505
  ws.on("open", () => {
479
506
  console.log("Worker WebSocket connected");
480
507
  connected = true;
508
+ // Reset heartbeat state for the fresh connection
509
+ awaitingPong = false;
510
+ lastPongAt = Date.now();
511
+ });
512
+
513
+ // Pong watchdog: the server responds to our ws.ping() with a pong frame.
514
+ // Receiving it proves the socket is genuinely alive (not a snapshot zombie).
515
+ ws.on("pong", () => {
516
+ awaitingPong = false;
517
+ lastPongAt = Date.now();
481
518
  });
482
519
 
483
520
  ws.on("close", async (code, reason) => {
@@ -517,13 +554,17 @@ export async function worker(options?: {
517
554
  return { ws, mcpServer, tunnelWs };
518
555
  }
519
556
 
520
- while (true) {
521
- let connection: {
522
- ws: WebSocket;
523
- mcpServer: McpServerService;
524
- tunnelWs: WebSocket | null;
525
- } | null = null;
557
+ // Keep the active connection reference OUTSIDE the loop so it persists across
558
+ // heartbeat ticks. (Previously this was declared inside the loop and reset to
559
+ // null every iteration, so the heartbeat only ever ran on the tick right after
560
+ // a (re)connect — meaning a live connection was never actively pinged.)
561
+ let connection: {
562
+ ws: WebSocket;
563
+ mcpServer: McpServerService;
564
+ tunnelWs: WebSocket | null;
565
+ } | null = null;
526
566
 
567
+ while (true) {
527
568
  if (!connected) {
528
569
  // If we got an Unauthorized error, check if the JWT has changed before retrying
529
570
  if (unauthorizedJwt !== null) {
@@ -541,12 +582,63 @@ export async function worker(options?: {
541
582
  console.log("Attempting to connect...");
542
583
  connection = await connectWebSocket();
543
584
  }
585
+
544
586
  if (connection && connected) {
545
- try {
546
- await connection.ws.ping();
547
- } catch (error) {
548
- console.error("WebSocket ping failed:", error);
587
+ // -----------------------------------------------------------------------
588
+ // Worker socket liveness: active ping + pong DEADLINE.
589
+ //
590
+ // On the previous tick we sent a ping and set awaitingPong=true. If the
591
+ // "pong" handler fired, it cleared awaitingPong. If it's still set here
592
+ // AND the deadline has elapsed, the socket is a zombie (e.g. after a full
593
+ // snapshot resume where the guest's TCP connection is dead but the kernel
594
+ // still thinks it's open, so ws.ping() won't throw and "close" won't fire).
595
+ // Terminate it to free the socket immediately and drive a reconnect.
596
+ // -----------------------------------------------------------------------
597
+ if (awaitingPong && Date.now() - lastPongAt > PONG_TIMEOUT_MS) {
598
+ console.error(
599
+ `WebSocket pong timeout (${PONG_TIMEOUT_MS}ms) — connection is dead (likely a snapshot-resume zombie). Forcing reconnect...`
600
+ );
601
+ try {
602
+ connection.ws.terminate();
603
+ } catch {
604
+ // ignore
605
+ }
549
606
  connected = false;
607
+ } else {
608
+ try {
609
+ awaitingPong = true;
610
+ connection.ws.ping();
611
+ } catch (error) {
612
+ console.error("WebSocket ping failed:", error);
613
+ connected = false;
614
+ }
615
+ }
616
+
617
+ // -----------------------------------------------------------------------
618
+ // Tunnel socket liveness: same pong-deadline watchdog on the separate
619
+ // tunnel WebSocket, which has the identical zombie problem after resume.
620
+ // -----------------------------------------------------------------------
621
+ if (connected && tunnelWs && tunnelWs.readyState === WebSocket.OPEN) {
622
+ if (tunnelAwaitingPong && Date.now() - tunnelLastPongAt > PONG_TIMEOUT_MS) {
623
+ console.error(
624
+ `Tunnel WebSocket pong timeout (${PONG_TIMEOUT_MS}ms) — tunnel connection is dead. Forcing reconnect...`
625
+ );
626
+ try {
627
+ tunnelWs.terminate();
628
+ } catch {
629
+ // ignore
630
+ }
631
+ // Dropping the tunnel forces the whole connection cycle to re-establish.
632
+ connected = false;
633
+ } else {
634
+ try {
635
+ tunnelAwaitingPong = true;
636
+ tunnelWs.ping();
637
+ } catch (error) {
638
+ console.error("Tunnel WebSocket ping failed:", error);
639
+ connected = false;
640
+ }
641
+ }
550
642
  }
551
643
  }
552
644
  await wait(5000);
@@ -0,0 +1,207 @@
1
+ /**
2
+ * Tests for the BaseAgent interrupt / makeInterruptible mechanism.
3
+ *
4
+ * These verify the fix for the "agent gets stuck after /poke" bug:
5
+ * 1. A stale (slow) operation that finishes AFTER its window was interrupted
6
+ * must NOT clobber a newer interruptible window's resolver.
7
+ * 2. An interrupt() arriving with no active window must be queued and fire on
8
+ * the next makeInterruptible window (not silently dropped).
9
+ * 3. Normal (non-interrupted) resolution still works.
10
+ * 4. Errors propagate when not interrupted, and are swallowed when interrupted.
11
+ */
12
+
13
+ // Minimal harness exposing the protected members of BaseAgent's interrupt logic.
14
+ // We replicate the class shape just enough to exercise makeInterruptible/interrupt
15
+ // by importing the real implementation would require constructing a full agent
16
+ // (abstract, many deps). Instead we test the exact algorithm via a tiny stand-in
17
+ // that mirrors src/agents/base/base.ts. If the base implementation changes, these
18
+ // tests document the intended contract.
19
+
20
+ class InterruptHarness {
21
+ private _interruptResolve: (() => void) | null = null;
22
+ private _interruptToken = 0;
23
+ private _pendingInterrupt = false;
24
+ public pendingUserMessages: any[] = [];
25
+
26
+ addPendingUserMessage(m: any) {
27
+ this.pendingUserMessages.push(m);
28
+ }
29
+
30
+ makeInterruptible<T>(promise: Promise<T>, interruptValue: T): Promise<T> {
31
+ return new Promise<T>((resolve, reject) => {
32
+ const myToken = ++this._interruptToken;
33
+ let settled = false;
34
+
35
+ const finish = (fn: () => void) => {
36
+ if (settled) return;
37
+ settled = true;
38
+ if (this._interruptToken === myToken) {
39
+ this._interruptResolve = null;
40
+ }
41
+ fn();
42
+ };
43
+
44
+ this._interruptResolve = () => finish(() => resolve(interruptValue));
45
+
46
+ if (this._pendingInterrupt) {
47
+ this._pendingInterrupt = false;
48
+ finish(() => resolve(interruptValue));
49
+ return;
50
+ }
51
+
52
+ promise
53
+ .then((result) => {
54
+ finish(() => resolve(result));
55
+ })
56
+ .catch((err) => {
57
+ if (settled) return;
58
+ finish(() => reject(err));
59
+ });
60
+ });
61
+ }
62
+
63
+ interrupt(message = "User interrupted this action you were waiting on") {
64
+ if (
65
+ message &&
66
+ message !== "User interrupted this action you were waiting on"
67
+ ) {
68
+ this.addPendingUserMessage({ role: "user", content: message });
69
+ }
70
+ if (this._interruptResolve) {
71
+ this._interruptResolve();
72
+ } else {
73
+ this._pendingInterrupt = true;
74
+ }
75
+ }
76
+
77
+ get hasActiveResolver() {
78
+ return this._interruptResolve !== null;
79
+ }
80
+ }
81
+
82
+ const deferred = <T,>() => {
83
+ let resolve!: (v: T) => void;
84
+ let reject!: (e: any) => void;
85
+ const promise = new Promise<T>((res, rej) => {
86
+ resolve = res;
87
+ reject = rej;
88
+ });
89
+ return { promise, resolve, reject };
90
+ };
91
+
92
+ describe("BaseAgent interrupt / makeInterruptible", () => {
93
+ test("normal resolution passes through the real result", async () => {
94
+ const h = new InterruptHarness();
95
+ const wrapped = h.makeInterruptible(Promise.resolve("real"), "INT");
96
+ await expect(wrapped).resolves.toBe("real");
97
+ });
98
+
99
+ test("interrupt() resolves the active window with the interrupt value", async () => {
100
+ const h = new InterruptHarness();
101
+ const slow = deferred<string>();
102
+ const wrapped = h.makeInterruptible(slow.promise, "INT");
103
+ h.interrupt();
104
+ await expect(wrapped).resolves.toBe("INT");
105
+ // The slow op finishing later must not throw or affect anything.
106
+ slow.resolve("late");
107
+ await slow.promise;
108
+ });
109
+
110
+ test("STALE completion does NOT clobber a newer window (the stuck bug)", async () => {
111
+ const h = new InterruptHarness();
112
+
113
+ // Window 1: a slow tool call (like sleep 360).
114
+ const slowTool = deferred<string>();
115
+ const w1 = h.makeInterruptible(slowTool.promise, "INT1");
116
+
117
+ // User pokes -> window 1 resolves with the interrupt value.
118
+ h.interrupt();
119
+ await expect(w1).resolves.toBe("INT1");
120
+
121
+ // Agent moves on to window 2 (the next AI completion).
122
+ const nextOp = deferred<string>();
123
+ const w2 = h.makeInterruptible(nextOp.promise, "INT2");
124
+
125
+ // Now the OLD slow tool finally finishes in the background.
126
+ // Before the fix, this stale .then() would null out window 2's resolver.
127
+ slowTool.resolve("stale-tool-result");
128
+ // Give microtasks a chance to run.
129
+ await Promise.resolve();
130
+ await Promise.resolve();
131
+
132
+ // Window 2 must still be interruptible — resolver intact.
133
+ expect(h.hasActiveResolver).toBe(true);
134
+
135
+ // And interrupting window 2 must still work.
136
+ h.interrupt();
137
+ await expect(w2).resolves.toBe("INT2");
138
+ });
139
+
140
+ test("stale completion does not resolve the newer window with old result", async () => {
141
+ const h = new InterruptHarness();
142
+ const slowTool = deferred<string>();
143
+ const w1 = h.makeInterruptible(slowTool.promise, "INT1");
144
+ h.interrupt();
145
+ await expect(w1).resolves.toBe("INT1");
146
+
147
+ const nextOp = deferred<string>();
148
+ const w2 = h.makeInterruptible(nextOp.promise, "INT2");
149
+
150
+ // Old tool completes late with its (now irrelevant) result.
151
+ slowTool.resolve("stale-tool-result");
152
+ await Promise.resolve();
153
+ await Promise.resolve();
154
+
155
+ // Window 2 resolves with ITS OWN op result, not the stale one.
156
+ nextOp.resolve("fresh-result");
157
+ await expect(w2).resolves.toBe("fresh-result");
158
+ });
159
+
160
+ test("interrupt() with no active window is queued and fires next window", async () => {
161
+ const h = new InterruptHarness();
162
+ // No active window yet.
163
+ expect(h.hasActiveResolver).toBe(false);
164
+ h.interrupt(); // queued, not dropped
165
+
166
+ // Next window should fire immediately with the interrupt value.
167
+ const op = deferred<string>();
168
+ const w = h.makeInterruptible(op.promise, "INT");
169
+ await expect(w).resolves.toBe("INT");
170
+ // Underlying op finishing later must be harmless.
171
+ op.resolve("later");
172
+ await op.promise;
173
+ });
174
+
175
+ test("errors propagate when not interrupted", async () => {
176
+ const h = new InterruptHarness();
177
+ const failing = Promise.reject(new Error("boom"));
178
+ const wrapped = h.makeInterruptible(failing, "INT");
179
+ await expect(wrapped).rejects.toThrow("boom");
180
+ });
181
+
182
+ test("errors are swallowed if the window was already interrupted", async () => {
183
+ const h = new InterruptHarness();
184
+ const failing = deferred<string>();
185
+ const wrapped = h.makeInterruptible(failing.promise, "INT");
186
+ h.interrupt();
187
+ await expect(wrapped).resolves.toBe("INT");
188
+ // The underlying op rejects late — must not cause an unhandled rejection
189
+ // or re-settle the already-resolved window.
190
+ failing.reject(new Error("late-boom"));
191
+ await failing.promise.catch(() => {});
192
+ });
193
+
194
+ test("/poke with a message queues it as a pending user message", () => {
195
+ const h = new InterruptHarness();
196
+ h.interrupt("please check the logs");
197
+ expect(h.pendingUserMessages).toEqual([
198
+ { role: "user", content: "please check the logs" },
199
+ ]);
200
+ });
201
+
202
+ test("/poke with the default reason does NOT add a pending user message", () => {
203
+ const h = new InterruptHarness();
204
+ h.interrupt();
205
+ expect(h.pendingUserMessages).toEqual([]);
206
+ });
207
+ });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tyvm/knowhow",
3
- "version": "0.0.132",
3
+ "version": "0.0.135",
4
4
  "description": "ai cli with plugins and agents",
5
5
  "main": "ts_build/src/index.js",
6
6
  "bin": {
@@ -49,6 +49,8 @@ export declare abstract class BaseAgent implements IAgent {
49
49
  protected compressThreshold: number;
50
50
  protected compressMinMessages: number;
51
51
  private _interruptResolve;
52
+ private _interruptToken;
53
+ private _pendingInterrupt;
52
54
  protected threads: Message[][];
53
55
  protected pendingUserMessages: Message[];
54
56
  protected pendingMessages: Message[];
@@ -33,6 +33,8 @@ class BaseAgent {
33
33
  compressThreshold = 30000;
34
34
  compressMinMessages = 30;
35
35
  _interruptResolve = null;
36
+ _interruptToken = 0;
37
+ _pendingInterrupt = false;
36
38
  threads = [];
37
39
  pendingUserMessages = [];
38
40
  pendingMessages = [];
@@ -135,6 +137,8 @@ class BaseAgent {
135
137
  this.turnCount = 0;
136
138
  this.startTimeMs = Date.now();
137
139
  this.currentTaskId = taskId || this.startTimeMs.toString();
140
+ this._interruptResolve = null;
141
+ this._pendingInterrupt = false;
138
142
  const id = taskId || this.startTimeMs.toString();
139
143
  this.events.emit(this.eventTypes.agentNewTask, {
140
144
  taskId: id,
@@ -505,39 +509,46 @@ class BaseAgent {
505
509
  }
506
510
  makeInterruptible(promise, interruptValue) {
507
511
  return new Promise((resolve, reject) => {
508
- let interrupted = false;
509
- this._interruptResolve = () => {
510
- interrupted = true;
511
- this._interruptResolve = null;
512
- resolve(interruptValue);
512
+ const myToken = ++this._interruptToken;
513
+ let settled = false;
514
+ const finish = (fn) => {
515
+ if (settled)
516
+ return;
517
+ settled = true;
518
+ if (this._interruptToken === myToken) {
519
+ this._interruptResolve = null;
520
+ }
521
+ fn();
513
522
  };
523
+ this._interruptResolve = () => finish(() => resolve(interruptValue));
524
+ if (this._pendingInterrupt) {
525
+ this._pendingInterrupt = false;
526
+ finish(() => resolve(interruptValue));
527
+ return;
528
+ }
514
529
  promise
515
530
  .then((result) => {
516
- if (this._interruptResolve) {
517
- this._interruptResolve = null;
518
- resolve(result);
519
- }
531
+ finish(() => resolve(result));
520
532
  })
521
533
  .catch((err) => {
522
- if (this._interruptResolve) {
523
- this._interruptResolve = null;
524
- }
525
- if (interrupted) {
526
- resolve(interruptValue);
527
- }
528
- else {
529
- reject(err);
530
- }
534
+ if (settled)
535
+ return;
536
+ finish(() => reject(err));
531
537
  });
532
538
  });
533
539
  }
534
540
  interrupt(message = "User interrupted this action you were waiting on") {
535
541
  this.log(`Interrupting current operation: ${message}`);
542
+ if (message &&
543
+ message !== "User interrupted this action you were waiting on") {
544
+ this.addPendingUserMessage({ role: "user", content: message });
545
+ }
536
546
  if (this._interruptResolve) {
537
547
  this._interruptResolve();
538
548
  }
539
549
  else {
540
- this.log("No active interruptible operation to interrupt", "warn");
550
+ this._pendingInterrupt = true;
551
+ this.log("No active interruptible operation — queued interrupt for next step", "warn");
541
552
  }
542
553
  }
543
554
  async call(userInput, _messages, retryCount = 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/agents/base/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/agents/base/base.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ const behaviors_1 = require("./commands/behaviors");
32
32
  const skills_1 = require("./commands/skills");
33
33
  const agents_1 = require("./commands/agents");
34
34
  const hash_1 = require("./commands/hash");
35
+ const sandbox_1 = require("./commands/sandbox");
35
36
  process.on("unhandledRejection", (reason) => {
36
37
  const message = reason instanceof Error ? reason.message : String(reason);
37
38
  console.warn(`⚠ Unhandled MCP/async error (non-fatal): ${message}`);
@@ -80,6 +81,7 @@ async function main() {
80
81
  (0, skills_1.addSkillsCommand)(program);
81
82
  (0, agents_1.addAgentsCommand)(program);
82
83
  (0, hash_1.addHashCommand)(program);
84
+ (0, sandbox_1.addSandboxCommand)(program);
83
85
  try {
84
86
  const globalConfig = await (0, config_2.getGlobalConfig)();
85
87
  const allModulePaths = [
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}