visionclaw 0.1.50 → 0.1.52

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 (45) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/agent/fast-responder.d.ts +2 -0
  3. package/dist/agent/fast-responder.d.ts.map +1 -1
  4. package/dist/agent/fast-responder.js +17 -6
  5. package/dist/agent/fast-responder.js.map +1 -1
  6. package/dist/agent/gather-context.js +1 -1
  7. package/dist/agent/gather-context.js.map +1 -1
  8. package/dist/agent/image-pruner.d.ts +9 -0
  9. package/dist/agent/image-pruner.d.ts.map +1 -1
  10. package/dist/agent/image-pruner.js +71 -23
  11. package/dist/agent/image-pruner.js.map +1 -1
  12. package/dist/agent/interrupt-handler.d.ts +23 -0
  13. package/dist/agent/interrupt-handler.d.ts.map +1 -1
  14. package/dist/agent/interrupt-handler.js +154 -51
  15. package/dist/agent/interrupt-handler.js.map +1 -1
  16. package/dist/agent/loop.d.ts.map +1 -1
  17. package/dist/agent/loop.js +24 -0
  18. package/dist/agent/loop.js.map +1 -1
  19. package/dist/agent/session.d.ts +1 -0
  20. package/dist/agent/session.d.ts.map +1 -1
  21. package/dist/agent/session.js +30 -44
  22. package/dist/agent/session.js.map +1 -1
  23. package/dist/agent/state.d.ts +2 -0
  24. package/dist/agent/state.d.ts.map +1 -1
  25. package/dist/agent/state.js.map +1 -1
  26. package/dist/agent/stream-handler.d.ts.map +1 -1
  27. package/dist/agent/stream-handler.js +7 -13
  28. package/dist/agent/stream-handler.js.map +1 -1
  29. package/dist/obs/ui.d.ts.map +1 -1
  30. package/dist/obs/ui.js +53 -20
  31. package/dist/obs/ui.js.map +1 -1
  32. package/dist/tools/desktop-executor.d.ts +2 -3
  33. package/dist/tools/desktop-executor.d.ts.map +1 -1
  34. package/dist/tools/desktop-executor.js +5 -2
  35. package/dist/tools/desktop-executor.js.map +1 -1
  36. package/dist/tools/notify.d.ts.map +1 -1
  37. package/dist/tools/notify.js +3 -16
  38. package/dist/tools/notify.js.map +1 -1
  39. package/dist/tools/screenshot.d.ts +13 -2
  40. package/dist/tools/screenshot.d.ts.map +1 -1
  41. package/dist/tools/screenshot.js +56 -4
  42. package/dist/tools/screenshot.js.map +1 -1
  43. package/dist/tools/wait.js +1 -1
  44. package/dist/tools/wait.js.map +1 -1
  45. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## [0.1.52](https://github.com/babelcloud/visionclaw/compare/v0.1.51...v0.1.52) (2026-02-28)
2
+
3
+
4
+ ### Features
5
+
6
+ * implement watchdog mechanism for fast responses ([9c0423d](https://github.com/babelcloud/visionclaw/commit/9c0423da15500ea206481f95880cd22b52a96284))
7
+
8
+
9
+
10
+ ## [0.1.51](https://github.com/babelcloud/visionclaw/compare/v0.1.50...v0.1.51) (2026-02-28)
11
+
12
+
13
+ ### Features
14
+
15
+ * add image resizing functionality to image pruner ([1e768a5](https://github.com/babelcloud/visionclaw/commit/1e768a5267b59a24fe83d852461e9538f87fe1e7))
16
+ * implement base64 truncation and byte formatting in JSON handling ([6bcddb0](https://github.com/babelcloud/visionclaw/commit/6bcddb0644a9f6da79fe15dd3c9594d66e69b986))
17
+ * implement fast response tracking in interrupt handler ([501a834](https://github.com/babelcloud/visionclaw/commit/501a834fbb7db58772a0e0786f432828c14d7f3f))
18
+
19
+
20
+
1
21
  ## [0.1.50](https://github.com/babelcloud/visionclaw/compare/v0.1.49...v0.1.50) (2026-02-28)
2
22
 
3
23
 
@@ -11,6 +11,7 @@ declare const FastResponseSchema: z.ZodObject<{
11
11
  briefForPrimary: z.ZodString;
12
12
  }, z.core.$strip>;
13
13
  export type FastResponse = z.infer<typeof FastResponseSchema>;
14
+ export type FastResponseMode = "interrupt" | "watchdog";
14
15
  /**
15
16
  * Make a single lightweight API call to acknowledge one or more user messages
16
17
  * that arrived while the primary agent is busy. Handles the batch case where
@@ -28,6 +29,7 @@ export declare function fastRespond(options: {
28
29
  messages: CommandMessage[];
29
30
  activitySummary: string;
30
31
  config: VisionClawConfig;
32
+ mode?: FastResponseMode;
31
33
  }): Promise<FastResponse | null>;
32
34
  export {};
33
35
  //# sourceMappingURL=fast-responder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fast-responder.d.ts","sourceRoot":"","sources":["../../src/agent/fast-responder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgB3D,QAAA,MAAM,kBAAkB;;;;;;;;iBAiBtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,gBAAgB,CAAC;CAC1B,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAiF/B"}
1
+ {"version":3,"file":"fast-responder.d.ts","sourceRoot":"","sources":["../../src/agent/fast-responder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgB3D,QAAA,MAAM,kBAAkB;;;;;;;;iBAiBtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,UAAU,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA6F/B"}
@@ -39,7 +39,7 @@ const FastResponseSchema = z.object({
39
39
  * interrupt-injection path.
40
40
  */
41
41
  export async function fastRespond(options) {
42
- const { systemPrompt, messages, activitySummary, config } = options;
42
+ const { systemPrompt, messages, activitySummary, config, mode = "interrupt" } = options;
43
43
  if (messages.length === 0)
44
44
  return null;
45
45
  // Pre-compute unique recipients so the prompt can list them explicitly
@@ -66,6 +66,21 @@ export async function fastRespond(options) {
66
66
  return parts.join("\n");
67
67
  })
68
68
  .join("\n");
69
+ const preamble = mode === "watchdog"
70
+ ? [
71
+ `You are working on a task but haven't responded to the user yet. Send a quick acknowledgment so they know their message was received and you are working on it.`,
72
+ "1. Acknowledge the user's message(s) so they know they were received.",
73
+ "2. If the message is a simple greeting or conversational, respond naturally.",
74
+ "3. If the user sends a task or request, let them know you're starting on it.",
75
+ "4. Keep each reply concise and friendly (1-3 sentences).",
76
+ ]
77
+ : [
78
+ `Because you are currently working on a task, this is a side process that you should handle the incoming messages as quickly as possible.`,
79
+ "1. Acknowledge the user's message(s) so they know they were received.",
80
+ "2. If the user is asking about status or what the agent is doing, summarize the current activity.",
81
+ "3. If the user sends a new task or request, tell them it has been queued.",
82
+ "4. Keep each reply concise and friendly (1-3 sentences).",
83
+ ];
69
84
  const response = await client.messages.create({
70
85
  model: getModelId(config),
71
86
  max_tokens: MAX_TOKENS,
@@ -74,11 +89,7 @@ export async function fastRespond(options) {
74
89
  effort: "low",
75
90
  },
76
91
  system: systemPrompt + [
77
- `Because you are currently working on a task, this is a side process that you should handle the incoming messages as quickly as possible.`,
78
- "1. Acknowledge the user's message(s) so they know they were received.",
79
- "2. If the user is asking about status or what the agent is doing, summarize the current activity.",
80
- "3. If the user sends a new task or request, tell them it has been queued.",
81
- "4. Keep each reply concise and friendly (1-3 sentences).",
92
+ ...preamble,
82
93
  "",
83
94
  `You MUST produce exactly one reply per unique recipient. The recipients are:\n${recipientList}`,
84
95
  "Each reply should be personalized — address the sender and reference their specific message(s).",
@@ -1 +1 @@
1
- {"version":3,"file":"fast-responder.js","sourceRoot":"","sources":["../../src/agent/fast-responder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fast-responder.js","sourceRoot":"","sources":["../../src/agent/fast-responder.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export async function gatherWakeContext(config, doVersionCheck) {
11
11
  const [screenshotResult, calendarResult, versionResult] = await Promise.allSettled([
12
12
  (async () => {
13
13
  const t0 = Date.now();
14
- const base64 = await takeScreenshot();
14
+ const { base64 } = await takeScreenshot();
15
15
  logger.debug(`Screenshot captured in ${Date.now() - t0}ms`);
16
16
  return { base64 };
17
17
  })(),
@@ -1 +1 @@
1
- {"version":3,"file":"gather-context.js","sourceRoot":"","sources":["../../src/agent/gather-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gather-context.js","sourceRoot":"","sources":["../../src/agent/gather-context.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,17 @@ export interface PruneImagesResult {
2
2
  totalImageBlocks: number;
3
3
  keptImageBlocks: number;
4
4
  prunedImageBlocks: number;
5
+ resizedImageBlocks: number;
5
6
  fileChanged: boolean;
6
7
  }
8
+ /**
9
+ * Scan a tool output (arbitrary JSON structure) for base64 image blocks that
10
+ * exceed the many-image dimension limit and resize them in-place.
11
+ * Returns the (possibly mutated) output and how many images were resized.
12
+ */
13
+ export declare function resizeOversizedImagesInToolOutput(toolOutput: unknown): Promise<{
14
+ resizedCount: number;
15
+ }>;
7
16
  export declare function pruneSessionImages(options: {
8
17
  transcriptPath: string;
9
18
  keepLastNBase64Images: number;
@@ -1 +1 @@
1
- {"version":3,"file":"image-pruner.d.ts","sourceRoot":"","sources":["../../src/agent/image-pruner.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;CACtB;AAuED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;CAC/B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuH7B"}
1
+ {"version":3,"file":"image-pruner.d.ts","sourceRoot":"","sources":["../../src/agent/image-pruner.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;CACtB;AAqED;;;;GAIG;AACH,wBAAsB,iCAAiC,CACrD,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAQnC;AAqCD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;CAC/B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyH7B"}
@@ -4,6 +4,7 @@ import os from "os";
4
4
  import path from "path";
5
5
  import readline from "readline";
6
6
  import { logger } from "../logger.js";
7
+ import { getImageDimensions, resizeBase64ForVision, CLAUDE_MAX_LONG_EDGE_PX } from "../tools/screenshot.js";
7
8
  const PLACEHOLDER_PNG_BASE64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==";
8
9
  function isObject(v) {
9
10
  return typeof v === "object" && v !== null;
@@ -31,6 +32,51 @@ function replaceBase64ImageBlock(block) {
31
32
  source.media_type = "image/png";
32
33
  source.data = PLACEHOLDER_PNG_BASE64;
33
34
  }
35
+ /**
36
+ * Check if a base64 image exceeds the many-image dimension limit and resize
37
+ * it in-place if needed. Returns true if the image was resized.
38
+ */
39
+ async function resizeOversizedImageBlock(block) {
40
+ const source = block.source;
41
+ if (!isObject(source))
42
+ return false;
43
+ const data = source.data;
44
+ if (typeof data !== "string" || data.length === 0)
45
+ return false;
46
+ try {
47
+ const buffer = Buffer.from(data, "base64");
48
+ const dims = await getImageDimensions(buffer);
49
+ if (!dims)
50
+ return false;
51
+ const longEdge = Math.max(dims.width, dims.height);
52
+ if (longEdge <= CLAUDE_MAX_LONG_EDGE_PX)
53
+ return false;
54
+ const resized = await resizeBase64ForVision(data);
55
+ if (resized === data)
56
+ return false;
57
+ source.data = resized;
58
+ return true;
59
+ }
60
+ catch (err) {
61
+ logger.warn(`[image-pruner] resize check failed: ${err instanceof Error ? err.message : String(err)}`);
62
+ return false;
63
+ }
64
+ }
65
+ /**
66
+ * Scan a tool output (arbitrary JSON structure) for base64 image blocks that
67
+ * exceed the many-image dimension limit and resize them in-place.
68
+ * Returns the (possibly mutated) output and how many images were resized.
69
+ */
70
+ export async function resizeOversizedImagesInToolOutput(toolOutput) {
71
+ const refs = collectBase64ImageBlockRefs(toolOutput);
72
+ let resizedCount = 0;
73
+ for (const ref of refs) {
74
+ const didResize = await resizeOversizedImageBlock(ref);
75
+ if (didResize)
76
+ resizedCount++;
77
+ }
78
+ return { resizedCount };
79
+ }
34
80
  function collectBase64ImageBlockRefs(root) {
35
81
  const refs = [];
36
82
  const visit = (node) => {
@@ -68,6 +114,7 @@ export async function pruneSessionImages(options) {
68
114
  totalImageBlocks: 0,
69
115
  keptImageBlocks: 0,
70
116
  prunedImageBlocks: 0,
117
+ resizedImageBlocks: 0,
71
118
  fileChanged: false,
72
119
  };
73
120
  }
@@ -93,21 +140,14 @@ export async function pruneSessionImages(options) {
93
140
  const keep = Math.max(0, keepLastNBase64Images);
94
141
  const pruneCount = Math.max(0, totalImageBlocks - keep);
95
142
  logger.debug(`[image-pruner] scanned totalBase64Images=${totalImageBlocks} prune=${pruneCount} keep=${keep}`);
96
- if (pruneCount === 0) {
97
- logger.debug("[image-pruner] no-op (nothing to prune)");
98
- return {
99
- totalImageBlocks,
100
- keptImageBlocks: totalImageBlocks,
101
- prunedImageBlocks: 0,
102
- fileChanged: false,
103
- };
104
- }
105
- // Pass 2: rewrite file with earliest base64 image blocks replaced.
143
+ // Pass 2: rewrite file — prune oldest images, then resize any oversized kept images.
106
144
  const input2 = fs.createReadStream(transcriptPath, { encoding: "utf8" });
107
145
  const rl2 = readline.createInterface({ input: input2, crlfDelay: Infinity });
108
146
  let remainingToPrune = pruneCount;
109
147
  let prunedImageBlocks = 0;
110
148
  let fileChanged = false;
149
+ // Collect kept image refs for a separate resize pass
150
+ const keptImageRefs = [];
111
151
  const outLines = [];
112
152
  for await (const line of rl2) {
113
153
  if (!line.trim()) {
@@ -122,32 +162,39 @@ export async function pruneSessionImages(options) {
122
162
  outLines.push(line);
123
163
  continue;
124
164
  }
125
- if (remainingToPrune > 0) {
126
- const refs = collectBase64ImageBlockRefs(parsed);
127
- if (refs.length > 0) {
128
- for (const ref of refs) {
129
- if (remainingToPrune <= 0)
130
- break;
131
- replaceBase64ImageBlock(ref);
132
- remainingToPrune -= 1;
133
- prunedImageBlocks += 1;
134
- fileChanged = true;
135
- }
165
+ const refs = collectBase64ImageBlockRefs(parsed);
166
+ for (const ref of refs) {
167
+ if (remainingToPrune > 0) {
168
+ replaceBase64ImageBlock(ref);
169
+ remainingToPrune -= 1;
170
+ prunedImageBlocks += 1;
171
+ fileChanged = true;
172
+ }
173
+ else {
174
+ keptImageRefs.push(ref);
136
175
  }
137
176
  }
138
177
  try {
139
178
  outLines.push(JSON.stringify(parsed));
140
179
  }
141
180
  catch {
142
- // If serialization fails, fall back to original line.
143
181
  outLines.push(line);
144
182
  }
145
183
  }
146
184
  rl2.close();
147
185
  input2.close();
186
+ // Resize pass: check kept images for oversized dimensions
187
+ let resizedImageBlocks = 0;
188
+ for (const ref of keptImageRefs) {
189
+ const didResize = await resizeOversizedImageBlock(ref);
190
+ if (didResize) {
191
+ resizedImageBlocks += 1;
192
+ fileChanged = true;
193
+ }
194
+ }
148
195
  if (fileChanged) {
149
196
  await writeFileAtomic(transcriptPath, outLines.join(os.EOL) + os.EOL);
150
- logger.debug(`[image-pruner] wrote changes pruned=${prunedImageBlocks} remainingToPrune=${remainingToPrune}`);
197
+ logger.debug(`[image-pruner] wrote changes pruned=${prunedImageBlocks} resized=${resizedImageBlocks}`);
151
198
  }
152
199
  else {
153
200
  logger.debug("[image-pruner] completed without changes");
@@ -156,6 +203,7 @@ export async function pruneSessionImages(options) {
156
203
  totalImageBlocks,
157
204
  keptImageBlocks: totalImageBlocks - prunedImageBlocks,
158
205
  prunedImageBlocks,
206
+ resizedImageBlocks,
159
207
  fileChanged,
160
208
  };
161
209
  }
@@ -1 +1 @@
1
- {"version":3,"file":"image-pruner.js","sourceRoot":"","sources":["../../src/agent/image-pruner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image-pruner.js","sourceRoot":"","sources":["../../src/agent/image-pruner.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { VisionClawConfig, OwnerConfig } from "../config/types.js";
2
+ import type { CommandMessage } from "../channels/interface.js";
2
3
  import type { ChannelManager } from "../channels/manager.js";
3
4
  import type { MessageQueue } from "../channels/queue.js";
4
5
  import type { AgentSession } from "./session.js";
@@ -20,19 +21,41 @@ export declare class InterruptHandler {
20
21
  private timer;
21
22
  private inFlight;
22
23
  private lastInjectedBatch;
24
+ /** Message IDs that already received a fast response in this wake cycle. */
25
+ private fastRespondedIds;
23
26
  constructor(deps: InterruptHandlerDeps);
27
+ /**
28
+ * Clear fast-response tracking. Call at the start of each wake cycle
29
+ * so messages that were re-queued across cycles can get a fresh response.
30
+ */
31
+ clearFastResponseTracking(): void;
24
32
  /**
25
33
  * Called from the channelManager "message" event when the agent is busy.
26
34
  * Schedules a debounced interrupt batch.
27
35
  */
28
36
  schedule(): void;
29
37
  dispose(): void;
38
+ /**
39
+ * Watchdog fallback: called when the primary agent hasn't replied within
40
+ * the watchdog timeout on a message-triggered wake. Runs the fast
41
+ * responder and injects a briefing into the active session.
42
+ */
43
+ fireWatchdog(messages: CommandMessage[]): Promise<void>;
30
44
  private requeue;
31
45
  /**
32
46
  * If injected messages were orphaned (accepted but never delivered to SDK),
33
47
  * re-queue the original CommandMessages so they're handled on the next wake.
34
48
  */
35
49
  requeueIfOrphaned(): void;
50
+ /**
51
+ * Shared logic: call fastRespond with a timeout, match replies to actual
52
+ * recipients, and send them. Returns the fast response and how many
53
+ * recipients were sent to, or null if the call failed/timed out.
54
+ *
55
+ * @param shouldSend Optional guard checked before sending each reply.
56
+ * If it returns false, remaining sends are skipped.
57
+ */
58
+ private callFastRespondAndSend;
36
59
  private processBatch;
37
60
  }
38
61
  //# sourceMappingURL=interrupt-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interrupt-handler.d.ts","sourceRoot":"","sources":["../../src/agent/interrupt-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAU7C,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,YAAY,CAAC;IACtB,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,MAAM,UAAU,CAAC;CACjC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAiC;gBAE9C,IAAI,EAAE,oBAAoB;IAItC;;;OAGG;IACH,QAAQ,IAAI,IAAI;IAQhB,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,OAAO;IAOf;;;OAGG;IACH,iBAAiB,IAAI,IAAI;YAOX,YAAY;CA2I3B"}
1
+ {"version":3,"file":"interrupt-handler.d.ts","sourceRoot":"","sources":["../../src/agent/interrupt-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAU7C,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,YAAY,CAAC;IACtB,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,MAAM,UAAU,CAAC;CACjC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,4EAA4E;IAC5E,OAAO,CAAC,gBAAgB,CAAqB;gBAEjC,IAAI,EAAE,oBAAoB;IAItC;;;OAGG;IACH,yBAAyB,IAAI,IAAI;IAIjC;;;OAGG;IACH,QAAQ,IAAI,IAAI;IAQhB,OAAO,IAAI,IAAI;IAOf;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC7D,OAAO,CAAC,OAAO;IAOf;;;OAGG;IACH,iBAAiB,IAAI,IAAI;IAOzB;;;;;;;OAOG;YACW,sBAAsB;YAsFtB,YAAY;CAqH3B"}