visionclaw 0.1.21 → 0.1.23

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.
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Maintains a rolling summary of the primary agent's current activity.
3
+ * Read by the fast responder to give context-aware quick replies when the
4
+ * agent is busy.
5
+ */
6
+ export declare class ActivityTracker {
7
+ private currentTaskDescription;
8
+ private recentActions;
9
+ private lastAssistantText;
10
+ private taskStartedAt;
11
+ private readonly maxActions;
12
+ constructor(maxActions?: number);
13
+ startTask(description: string): void;
14
+ recordAssistantText(text: string): void;
15
+ recordToolCall(name: string, inputSummary: string): void;
16
+ recordToolResult(name: string, outputSummary: string): void;
17
+ /**
18
+ * Produce a concise summary of the agent's current activity for the fast
19
+ * responder's system context.
20
+ */
21
+ getSummary(): string;
22
+ clear(): void;
23
+ private push;
24
+ }
25
+ //# sourceMappingURL=activity-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-tracker.d.ts","sourceRoot":"","sources":["../../src/agent/activity-tracker.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,sBAAsB,CAAM;IACpC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,UAAU,SAAK;IAI3B,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAQpC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIvC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAOxD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAO3D;;;OAGG;IACH,UAAU,IAAI,MAAM;IA0BpB,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,IAAI;CAMb"}
@@ -0,0 +1,77 @@
1
+ import { logger } from "../logger.js";
2
+ /**
3
+ * Maintains a rolling summary of the primary agent's current activity.
4
+ * Read by the fast responder to give context-aware quick replies when the
5
+ * agent is busy.
6
+ */
7
+ export class ActivityTracker {
8
+ currentTaskDescription = "";
9
+ recentActions = [];
10
+ lastAssistantText = "";
11
+ taskStartedAt = null;
12
+ maxActions;
13
+ constructor(maxActions = 15) {
14
+ this.maxActions = maxActions;
15
+ }
16
+ startTask(description) {
17
+ this.currentTaskDescription = description;
18
+ this.recentActions = [];
19
+ this.lastAssistantText = "";
20
+ this.taskStartedAt = Date.now();
21
+ logger.debug("[activity-tracker] task started");
22
+ }
23
+ recordAssistantText(text) {
24
+ this.lastAssistantText = text;
25
+ }
26
+ recordToolCall(name, inputSummary) {
27
+ const truncated = inputSummary.length > 120
28
+ ? inputSummary.substring(0, 120) + "…"
29
+ : inputSummary;
30
+ this.push(`→ ${name}(${truncated})`);
31
+ }
32
+ recordToolResult(name, outputSummary) {
33
+ const truncated = outputSummary.length > 120
34
+ ? outputSummary.substring(0, 120) + "…"
35
+ : outputSummary;
36
+ this.push(`← ${name}: ${truncated}`);
37
+ }
38
+ /**
39
+ * Produce a concise summary of the agent's current activity for the fast
40
+ * responder's system context.
41
+ */
42
+ getSummary() {
43
+ if (this.taskStartedAt === null)
44
+ return "Agent is idle.";
45
+ const elapsedSec = Math.round((Date.now() - this.taskStartedAt) / 1000);
46
+ const lines = [];
47
+ if (this.currentTaskDescription) {
48
+ lines.push(`Current task: ${this.currentTaskDescription}`);
49
+ }
50
+ lines.push(`Running for: ${elapsedSec}s`);
51
+ if (this.lastAssistantText) {
52
+ const preview = this.lastAssistantText.length > 300
53
+ ? this.lastAssistantText.substring(0, 300) + "…"
54
+ : this.lastAssistantText;
55
+ lines.push(`Last agent message: ${preview}`);
56
+ }
57
+ if (this.recentActions.length > 0) {
58
+ lines.push("Recent actions:");
59
+ for (const a of this.recentActions)
60
+ lines.push(` ${a}`);
61
+ }
62
+ return lines.join("\n");
63
+ }
64
+ clear() {
65
+ this.currentTaskDescription = "";
66
+ this.recentActions = [];
67
+ this.lastAssistantText = "";
68
+ this.taskStartedAt = null;
69
+ }
70
+ push(entry) {
71
+ this.recentActions.push(entry);
72
+ if (this.recentActions.length > this.maxActions) {
73
+ this.recentActions.shift();
74
+ }
75
+ }
76
+ }
77
+ //# sourceMappingURL=activity-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-tracker.js","sourceRoot":"","sources":["../../src/agent/activity-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { VisionClawConfig } from "../config/types.js";
2
2
  import type { CommandMessage } from "../channels/interface.js";
3
+ import type { FastResponse } from "./fast-responder.js";
3
4
  /**
4
5
  * A content block in a multimodal user message.
5
6
  * Matches the Anthropic Messages API content block types.
@@ -47,6 +48,15 @@ export declare function buildWakeContext(options: {
47
48
  export declare function buildInterruptContext(options: {
48
49
  messages: CommandMessage[];
49
50
  }): Promise<ContentBlock[]>;
51
+ /**
52
+ * Build an interrupt context that includes the fast responder's briefing.
53
+ * The primary agent sees what the user said AND what was already replied,
54
+ * so it can decide whether to follow up or skip.
55
+ */
56
+ export declare function buildInterruptWithBriefing(options: {
57
+ messages: CommandMessage[];
58
+ fastResponse: FastResponse;
59
+ }): ContentBlock[];
50
60
  /**
51
61
  * Build a fresh context after compaction. Returns multimodal blocks.
52
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI/D;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IACE,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EACF;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACzD;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC,CAAC;AAEN;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAqG1B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAuD1B;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,MAAM,EAAE,gBAAgB,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,YAAY,EAAE,CAqBjB"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIxD;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IACE,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EACF;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACzD;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC,CAAC;AAEN;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAqG1B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAuD1B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;CAC5B,GAAG,YAAY,EAAE,CAuCjB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,MAAM,EAAE,gBAAgB,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,YAAY,EAAE,CAqBjB"}
@@ -148,6 +148,41 @@ export async function buildInterruptContext(options) {
148
148
  }
149
149
  return blocks;
150
150
  }
151
+ /**
152
+ * Build an interrupt context that includes the fast responder's briefing.
153
+ * The primary agent sees what the user said AND what was already replied,
154
+ * so it can decide whether to follow up or skip.
155
+ */
156
+ export function buildInterruptWithBriefing(options) {
157
+ const { messages, fastResponse } = options;
158
+ const now = new Date().toLocaleString();
159
+ const parts = [];
160
+ parts.push(`[Interrupt — auto-acknowledged] at ${now}`);
161
+ parts.push("");
162
+ for (const msg of messages) {
163
+ parts.push(`- [${msg.channel}] from ${msg.sender} at ${msg.timestamp}: ${msg.text}`);
164
+ if (msg.attachments.length > 0) {
165
+ for (const att of msg.attachments) {
166
+ const location = att.url ?? att.localPath ?? "(embedded)";
167
+ parts.push(` Attachment [${att.type}]: ${location}${att.filename ? ` (${att.filename})` : ""}`);
168
+ }
169
+ }
170
+ }
171
+ parts.push("");
172
+ parts.push("Your quick-response handler already replied:");
173
+ for (const r of fastResponse.replies) {
174
+ parts.push(` → [${r.channel}] ${r.sender}: "${r.reply}"`);
175
+ }
176
+ parts.push(`Handler assessment: ${fastResponse.briefForPrimary}`);
177
+ parts.push("");
178
+ if (fastResponse.needsPrimaryAction) {
179
+ parts.push("Action needed: Please follow up on this when you finish your current task.");
180
+ }
181
+ else {
182
+ parts.push("No further action needed — the quick-response handler fully handled this.");
183
+ }
184
+ return [{ type: "text", text: parts.join("\n") }];
185
+ }
151
186
  /**
152
187
  * Build a fresh context after compaction. Returns multimodal blocks.
153
188
  */
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAwBtC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAMtC;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACnE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;IAExC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,0BAA0B;IAC1B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,SAAS,GAAG,EAAE,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,mBAAmB;IACnB,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,kBAAkB;IAClB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CACR,MAAM,GAAG,CAAC,OAAO,UAAU,GAAG,CAAC,MAAM,OAAO,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,IAAI,EAAE,CACzE,CAAC;YACF,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,IAAI,YAAY,CAAC;oBAC1D,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnG,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;SAAM,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,kBAAkB;IAClB,IAAI,UAAU,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,oGAAoG,CACrG,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEtD,8DAA8D;IAC9D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1D,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,OAAO;wBACb,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE,OAAO,CAAC,QAAuB;4BAC3C,IAAI,EAAE,OAAO,CAAC,MAAM;yBACrB;qBACF,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,qDAAqD;oBACrD,MAAM,CAAC,IAAI,CAAC,sDAAsD,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC7E,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,OAAO;wBACb,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;qBACtC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,UAAU,EAAE,GAAG,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,OAAO;YACb,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,WAAW;gBACvB,IAAI,EAAE,UAAU,CAAC,MAAM;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAE3C;IACC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;IAExC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,0CAA0C,GAAG,yBAAyB,CAAC,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,MAAM,GAAG,CAAC,OAAO,UAAU,GAAG,CAAC,MAAM,OAAO,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,IAAI,EAAE,CACzE,CAAC;QACF,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,IAAI,YAAY,CAAC;gBAC1D,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,6EAA6E,CAC9E,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEtD,0DAA0D;IAC1D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1D,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,OAAO;wBACb,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE,OAAO,CAAC,QAAuB;4BAC3C,IAAI,EAAE,OAAO,CAAC,MAAM;yBACrB;qBACF,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,sDAAsD,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC7E,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,OAAO;wBACb,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;qBACtC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAI1C;IACC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IACjE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;IAExC,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,wCAAwC,GAAG;;iBAEtC,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,KAAK;YACtC,OAAO,CAAC,QAAQ;;;EAG1B,eAAe,IAAI,qBAAqB;;;EAGxC,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,mBAAmB,+BAA+B,CAAC,CAAC,CAAC,sBAAsB;;wEAElC;SACnE;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+ import type { CommandMessage } from "../channels/interface.js";
3
+ declare const FastResponseSchema: z.ZodObject<{
4
+ replies: z.ZodArray<z.ZodObject<{
5
+ channel: z.ZodString;
6
+ sender: z.ZodString;
7
+ reply: z.ZodString;
8
+ }, z.core.$strip>>;
9
+ needsPrimaryAction: z.ZodBoolean;
10
+ briefForPrimary: z.ZodString;
11
+ }, z.core.$strip>;
12
+ export type FastResponse = z.infer<typeof FastResponseSchema>;
13
+ /**
14
+ * Make a single lightweight API call to acknowledge one or more user messages
15
+ * that arrived while the primary agent is busy. Handles the batch case where
16
+ * multiple messages arrive in quick succession — the model sees all of them
17
+ * and produces per-sender personalized replies + a unified briefing.
18
+ *
19
+ * Uses structured outputs (json_schema) so the response is guaranteed to be
20
+ * valid JSON matching {@link FastResponseSchema}.
21
+ *
22
+ * Returns null if the call fails so the caller can fall back to the original
23
+ * interrupt-injection path.
24
+ */
25
+ export declare function fastRespond(options: {
26
+ messages: CommandMessage[];
27
+ activitySummary: string;
28
+ agentName: string;
29
+ apiKey: string;
30
+ }): Promise<FastResponse | null>;
31
+ export {};
32
+ //# sourceMappingURL=fast-responder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fast-responder.d.ts","sourceRoot":"","sources":["../../src/agent/fast-responder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAkB/D,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,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA+E/B"}
@@ -0,0 +1,111 @@
1
+ import Anthropic from "@anthropic-ai/sdk";
2
+ import { z } from "zod";
3
+ import { zodOutputFormat } from "@anthropic-ai/sdk/helpers/zod";
4
+ import { logger } from "../logger.js";
5
+ const FAST_MODEL = "claude-haiku-4-5-20251001";
6
+ const MAX_TOKENS = 1024;
7
+ const RecipientReplySchema = z.object({
8
+ channel: z
9
+ .string()
10
+ .describe("The channel name, exactly as it appears in the incoming messages (e.g. 'telegram', 'discord', 'gmail')."),
11
+ sender: z
12
+ .string()
13
+ .describe("The sender identifier, exactly as it appears in the incoming messages."),
14
+ reply: z
15
+ .string()
16
+ .describe("A personalized, concise reply for this specific recipient (1-3 sentences)."),
17
+ });
18
+ const FastResponseSchema = z.object({
19
+ replies: z
20
+ .array(RecipientReplySchema)
21
+ .describe("One reply per unique (channel, sender) pair from the incoming messages. " +
22
+ "Each reply should be personalized — address the sender by name and reference their specific message(s)."),
23
+ needsPrimaryAction: z
24
+ .boolean()
25
+ .describe("True if the primary agent should follow up on any of these messages; false if the replies fully handle all of them (e.g. pure status queries)."),
26
+ briefForPrimary: z
27
+ .string()
28
+ .describe("A concise summary for the primary agent describing what these messages are about and what you told each sender."),
29
+ });
30
+ /**
31
+ * Make a single lightweight API call to acknowledge one or more user messages
32
+ * that arrived while the primary agent is busy. Handles the batch case where
33
+ * multiple messages arrive in quick succession — the model sees all of them
34
+ * and produces per-sender personalized replies + a unified briefing.
35
+ *
36
+ * Uses structured outputs (json_schema) so the response is guaranteed to be
37
+ * valid JSON matching {@link FastResponseSchema}.
38
+ *
39
+ * Returns null if the call fails so the caller can fall back to the original
40
+ * interrupt-injection path.
41
+ */
42
+ export async function fastRespond(options) {
43
+ const { messages, activitySummary, agentName, apiKey } = options;
44
+ if (messages.length === 0)
45
+ return null;
46
+ // Pre-compute unique recipients so the prompt can list them explicitly
47
+ const recipientKeys = new Map();
48
+ for (const m of messages) {
49
+ const key = `${m.channel}::${m.sender}`;
50
+ if (!recipientKeys.has(key)) {
51
+ recipientKeys.set(key, { channel: m.channel, sender: m.sender });
52
+ }
53
+ }
54
+ const recipientList = [...recipientKeys.values()]
55
+ .map((r) => ` - channel="${r.channel}", sender="${r.sender}"`)
56
+ .join("\n");
57
+ try {
58
+ const client = new Anthropic({ apiKey });
59
+ const messageSummary = messages
60
+ .map((m) => {
61
+ const parts = [
62
+ `- [${m.channel}] from ${m.sender} at ${m.timestamp}: ${m.text}`,
63
+ ];
64
+ if (m.attachments.length > 0) {
65
+ parts.push(` Attachments: ${m.attachments.map((a) => `[${a.type}] ${a.filename ?? a.url ?? "(embedded)"}`).join(", ")}`);
66
+ }
67
+ return parts.join("\n");
68
+ })
69
+ .join("\n");
70
+ const response = await client.messages.create({
71
+ model: FAST_MODEL,
72
+ max_tokens: MAX_TOKENS,
73
+ output_config: {
74
+ format: zodOutputFormat(FastResponseSchema),
75
+ },
76
+ system: [
77
+ `You are the quick-response handler for an AI desktop agent named "${agentName}".`,
78
+ "The main agent is currently busy with a task. Your job is to:",
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
+ "",
84
+ `You MUST produce exactly one reply per unique recipient. The recipients are:\n${recipientList}`,
85
+ "Each reply should be personalized — address the sender and reference their specific message(s).",
86
+ "Use the exact channel and sender strings listed above in your output.",
87
+ "",
88
+ "IMPORTANT: You must NOT commit to performing any action. You can only acknowledge, summarize status, and inform the user their message(s) are queued.",
89
+ ].join("\n"),
90
+ messages: [
91
+ {
92
+ role: "user",
93
+ content: [
94
+ "## Current Agent Activity",
95
+ activitySummary,
96
+ "",
97
+ `## Incoming Message${messages.length > 1 ? `s (${messages.length})` : ""}`,
98
+ messageSummary,
99
+ ].join("\n"),
100
+ },
101
+ ],
102
+ });
103
+ const text = response.content[0]?.type === "text" ? response.content[0].text : "";
104
+ return FastResponseSchema.parse(JSON.parse(text));
105
+ }
106
+ catch (err) {
107
+ logger.warn(`Fast responder failed: ${err instanceof Error ? err.message : String(err)}`);
108
+ return null;
109
+ }
110
+ }
111
+ //# sourceMappingURL=fast-responder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fast-responder.js","sourceRoot":"","sources":["../../src/agent/fast-responder.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import type { VisionClawConfig } from "../config/types.js";
2
2
  import { MessageQueue } from "../channels/queue.js";
3
3
  import { ChannelManager } from "../channels/manager.js";
4
+ import { ActivityTracker } from "./activity-tracker.js";
4
5
  /** Shared state visible to tools (e.g. notify_user needs channel access) */
5
6
  export interface AgentState {
6
7
  config: VisionClawConfig;
7
8
  channelManager: ChannelManager;
8
9
  messageQueue: MessageQueue;
10
+ activityTracker: ActivityTracker;
9
11
  busy: boolean;
10
12
  lastMessageChannel?: string;
11
13
  lastMessageSender?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMxD,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,gBAAgB,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,wBAAgB,aAAa,IAAI,UAAU,CAK1C;AAiFD;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CA2bf"}
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,gBAAgB,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,wBAAgB,aAAa,IAAI,UAAU,CAK1C;AAiFD;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CAmiBf"}
@@ -1,12 +1,14 @@
1
1
  import { buildSystemPrompt } from "./system-prompt.js";
2
2
  import { AgentSession } from "./session.js";
3
- import { buildWakeContext, buildInterruptContext } from "./context.js";
3
+ import { buildWakeContext, buildInterruptContext, buildInterruptWithBriefing } from "./context.js";
4
4
  import { createToolServer } from "../tools/index.js";
5
5
  import { MessageQueue } from "../channels/queue.js";
6
6
  import { ChannelManager } from "../channels/manager.js";
7
7
  import { takeScreenshot } from "../tools/screenshot.js";
8
8
  import { getCalendarSummary } from "../calendar/scheduler.js";
9
9
  import { initScreenshotUploader, uploadScreenshot } from "../files.js";
10
+ import { ActivityTracker } from "./activity-tracker.js";
11
+ import { fastRespond } from "./fast-responder.js";
10
12
  import { logger } from "../logger.js";
11
13
  // Module-level state so tools can access it
12
14
  let agentState = null;
@@ -82,10 +84,12 @@ export async function startAgentLoop(config) {
82
84
  // --- Initialize components ---
83
85
  const messageQueue = new MessageQueue();
84
86
  const channelManager = new ChannelManager(config, messageQueue);
87
+ const activityTracker = new ActivityTracker();
85
88
  agentState = {
86
89
  config,
87
90
  channelManager,
88
91
  messageQueue,
92
+ activityTracker,
89
93
  busy: false,
90
94
  };
91
95
  // Initialize S3 client for screenshot uploads
@@ -110,48 +114,128 @@ export async function startAgentLoop(config) {
110
114
  await channelManager.startAll();
111
115
  // Listen for incoming messages to wake the agent or inject interrupts
112
116
  let wakeResolver = null;
113
- channelManager.on("message", () => void (async () => {
114
- // If agent is sleeping, wake it up
115
- if (wakeResolver !== null) {
116
- wakeResolver();
117
- wakeResolver = null;
117
+ // Debounce + concurrency guard for interrupt handling.
118
+ // When messages arrive in quick succession while the agent is busy, we
119
+ // wait a short window to batch them, then process the batch in a single
120
+ // fast-responder call. Only one interrupt batch runs at a time; messages
121
+ // arriving while a batch is in-flight are picked up by the next batch.
122
+ const INTERRUPT_DEBOUNCE_MS = 2000;
123
+ let interruptTimer = null;
124
+ let interruptInFlight = false;
125
+ async function processInterruptBatch() {
126
+ if (interruptInFlight || !agentState?.busy)
118
127
  return;
119
- }
120
- // If agent is busy, inject interrupt messages into the active session
121
- if (agentState?.busy) {
122
- const interruptMessages = [];
128
+ interruptInFlight = true;
129
+ try {
130
+ // Drain everything currently in the queue
131
+ const batch = [];
123
132
  while (!messageQueue.isEmpty()) {
124
133
  const msg = messageQueue.dequeue();
125
134
  if (msg)
126
- interruptMessages.push(msg);
135
+ batch.push(msg);
127
136
  }
128
- if (interruptMessages.length > 0) {
129
- // Update last message tracking
130
- const last = interruptMessages[interruptMessages.length - 1];
131
- agentState.lastMessageChannel = last.channel;
132
- agentState.lastMessageSender = last.sender;
133
- // Log the interrupt
134
- for (const msg of interruptMessages) {
135
- logger.log("info", "incoming", `[interrupt] [${msg.channel}] ${msg.sender}: ${msg.text}`, {
136
- channel: msg.channel,
137
- sender: msg.sender,
138
- text: msg.text,
139
- id: msg.id,
140
- interrupt: true,
137
+ if (batch.length === 0)
138
+ return;
139
+ // Update last-message tracking
140
+ const last = batch[batch.length - 1];
141
+ agentState.lastMessageChannel = last.channel;
142
+ agentState.lastMessageSender = last.sender;
143
+ // Log each interrupt message
144
+ for (const msg of batch) {
145
+ logger.log("info", "incoming", `[interrupt] [${msg.channel}] ${msg.sender}: ${msg.text}`, {
146
+ channel: msg.channel,
147
+ sender: msg.sender,
148
+ text: msg.text,
149
+ id: msg.id,
150
+ interrupt: true,
151
+ });
152
+ }
153
+ // Single fast-responder call for the entire batch
154
+ const fr = await fastRespond({
155
+ messages: batch,
156
+ activitySummary: activityTracker.getSummary(),
157
+ agentName: config.agentName,
158
+ apiKey: config.anthropicApiKey,
159
+ });
160
+ if (fr) {
161
+ // Build a lookup from the per-recipient replies
162
+ const replyMap = new Map();
163
+ for (const r of fr.replies) {
164
+ replyMap.set(`${r.channel}::${r.sender}`, r.reply);
165
+ }
166
+ // Send each recipient their personalized reply
167
+ const sent = new Set();
168
+ for (const msg of batch) {
169
+ const key = `${msg.channel}::${msg.sender}`;
170
+ if (sent.has(key))
171
+ continue;
172
+ sent.add(key);
173
+ const reply = replyMap.get(key);
174
+ if (!reply)
175
+ continue;
176
+ try {
177
+ await channelManager.sendMessage(msg.channel, msg.sender, reply);
178
+ }
179
+ catch (sendErr) {
180
+ logger.warn(`Failed to send fast response: ${sendErr instanceof Error ? sendErr.message : String(sendErr)}`);
181
+ }
182
+ }
183
+ logger.log("info", "fast_response", `Replied to ${sent.size} recipient(s) for ${batch.length} message(s)`, {
184
+ messageCount: batch.length,
185
+ recipientCount: sent.size,
186
+ needsPrimaryAction: fr.needsPrimaryAction,
187
+ });
188
+ // Inject briefing into the primary session if follow-up is needed
189
+ if (fr.needsPrimaryAction) {
190
+ const briefingBlocks = buildInterruptWithBriefing({
191
+ messages: batch,
192
+ fastResponse: fr,
141
193
  });
194
+ session.injectMessage(briefingBlocks);
142
195
  }
143
- // Build interrupt context and inject into session
144
- const interruptBlocks = await buildInterruptContext({ messages: interruptMessages });
145
- const interruptContent = interruptBlocks;
146
- session.injectMessage(interruptContent);
196
+ }
197
+ else {
198
+ // Fast responder failed — fall back to the original interrupt path
199
+ const interruptBlocks = await buildInterruptContext({ messages: batch });
200
+ session.injectMessage(interruptBlocks);
147
201
  }
148
202
  }
149
- })());
203
+ finally {
204
+ interruptInFlight = false;
205
+ // If more messages arrived while we were processing, schedule another batch
206
+ // Re-check module-level state since it may have changed during async work.
207
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- agentState is module-level and may change across awaits
208
+ if (!messageQueue.isEmpty() && agentState?.busy) {
209
+ scheduleInterruptBatch();
210
+ }
211
+ }
212
+ }
213
+ function scheduleInterruptBatch() {
214
+ if (interruptTimer !== null)
215
+ return; // already scheduled
216
+ interruptTimer = setTimeout(() => {
217
+ interruptTimer = null;
218
+ void processInterruptBatch();
219
+ }, INTERRUPT_DEBOUNCE_MS);
220
+ }
221
+ channelManager.on("message", () => {
222
+ // If agent is sleeping, wake it up immediately
223
+ if (wakeResolver !== null) {
224
+ wakeResolver();
225
+ wakeResolver = null;
226
+ return;
227
+ }
228
+ // If agent is busy, schedule a debounced interrupt batch
229
+ if (agentState?.busy) {
230
+ scheduleInterruptBatch();
231
+ }
232
+ });
150
233
  logger.system("Agent loop started. Waiting for messages or heartbeat...");
151
234
  // --- Main loop ---
152
235
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- intentional infinite loop
153
236
  while (true) {
154
237
  agentState.busy = false;
238
+ activityTracker.clear();
155
239
  // Sleep until heartbeat or new message
156
240
  await new Promise((resolve) => {
157
241
  wakeResolver = resolve;
@@ -168,6 +252,7 @@ export async function startAgentLoop(config) {
168
252
  }
169
253
  });
170
254
  agentState.busy = true;
255
+ activityTracker.clear();
171
256
  // Determine trigger
172
257
  const hasMessages = !messageQueue.isEmpty();
173
258
  const trigger = hasMessages ? "message" : "heartbeat";
@@ -184,6 +269,11 @@ export async function startAgentLoop(config) {
184
269
  agentState.lastMessageChannel = last.channel;
185
270
  agentState.lastMessageSender = last.sender;
186
271
  }
272
+ // Start tracking this wake cycle's activity
273
+ const taskDesc = messages.length > 0
274
+ ? messages.map((m) => `[${m.channel}] ${m.sender}: ${m.text}`).join("; ")
275
+ : "heartbeat";
276
+ activityTracker.startTask(taskDesc);
187
277
  // Log the wake event
188
278
  logger.wake(trigger, messages.length);
189
279
  // If this is a heartbeat wake (no new messages), it's a good time to compact.
@@ -330,6 +420,9 @@ export async function startAgentLoop(config) {
330
420
  : {}),
331
421
  ...(subagentMeta?.agentId ? { subagent_agent_id: subagentMeta.agentId } : {}),
332
422
  });
423
+ if (!parentToolUseId) {
424
+ activityTracker.recordToolResult(resolvedName, summary);
425
+ }
333
426
  }
334
427
  }
335
428
  break;
@@ -358,6 +451,7 @@ export async function startAgentLoop(config) {
358
451
  }
359
452
  else {
360
453
  logger.assistant(block.text);
454
+ activityTracker.recordAssistantText(block.text);
361
455
  }
362
456
  }
363
457
  break;
@@ -387,6 +481,10 @@ export async function startAgentLoop(config) {
387
481
  : {}),
388
482
  ...(subagentMeta?.agentId ? { subagent_agent_id: subagentMeta.agentId } : {}),
389
483
  });
484
+ if (!parentToolUseId) {
485
+ const inputStr = block.input ? JSON.stringify(block.input) : "";
486
+ activityTracker.recordToolCall(block.name, inputStr);
487
+ }
390
488
  }
391
489
  if (block.name === "finish" || block.name === "mcp__visionclaw__finish") {
392
490
  finishCalled = true;
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
@@ -6,93 +6,33 @@ export declare const GoogleTokensSchema: z.ZodObject<{
6
6
  token_type: z.ZodDefault<z.ZodString>;
7
7
  expiry_date: z.ZodNumber;
8
8
  scope: z.ZodString;
9
- }, "strip", z.ZodTypeAny, {
10
- access_token: string;
11
- refresh_token: string;
12
- token_type: string;
13
- expiry_date: number;
14
- scope: string;
15
- }, {
16
- access_token: string;
17
- refresh_token: string;
18
- expiry_date: number;
19
- scope: string;
20
- token_type?: string | undefined;
21
- }>;
9
+ }, z.core.$strip>;
22
10
  export type GoogleTokens = z.infer<typeof GoogleTokensSchema>;
23
11
  export declare const ChannelConfigSchema: z.ZodObject<{
24
12
  telegram: z.ZodOptional<z.ZodObject<{
25
13
  enabled: z.ZodDefault<z.ZodBoolean>;
26
14
  botToken: z.ZodOptional<z.ZodString>;
27
- allowedChatIds: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
28
- }, "strip", z.ZodTypeAny, {
29
- enabled: boolean;
30
- allowedChatIds: number[];
31
- botToken?: string | undefined;
32
- }, {
33
- enabled?: boolean | undefined;
34
- botToken?: string | undefined;
35
- allowedChatIds?: number[] | undefined;
36
- }>>;
15
+ allowedChatIds: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
16
+ }, z.core.$strip>>;
37
17
  discord: z.ZodOptional<z.ZodObject<{
38
18
  enabled: z.ZodDefault<z.ZodBoolean>;
39
19
  botToken: z.ZodOptional<z.ZodString>;
40
- allowedChannelIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
41
- }, "strip", z.ZodTypeAny, {
42
- enabled: boolean;
43
- allowedChannelIds: string[];
44
- botToken?: string | undefined;
45
- }, {
46
- enabled?: boolean | undefined;
47
- botToken?: string | undefined;
48
- allowedChannelIds?: string[] | undefined;
49
- }>>;
50
- }, "strip", z.ZodTypeAny, {
51
- telegram?: {
52
- enabled: boolean;
53
- allowedChatIds: number[];
54
- botToken?: string | undefined;
55
- } | undefined;
56
- discord?: {
57
- enabled: boolean;
58
- allowedChannelIds: string[];
59
- botToken?: string | undefined;
60
- } | undefined;
61
- }, {
62
- telegram?: {
63
- enabled?: boolean | undefined;
64
- botToken?: string | undefined;
65
- allowedChatIds?: number[] | undefined;
66
- } | undefined;
67
- discord?: {
68
- enabled?: boolean | undefined;
69
- botToken?: string | undefined;
70
- allowedChannelIds?: string[] | undefined;
71
- } | undefined;
72
- }>;
20
+ allowedChannelIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
21
+ }, z.core.$strip>>;
22
+ }, z.core.$strip>;
73
23
  export type ChannelConfig = z.infer<typeof ChannelConfigSchema>;
74
24
  export declare const ObsConfigSchema: z.ZodObject<{
75
25
  enabled: z.ZodDefault<z.ZodBoolean>;
76
26
  host: z.ZodDefault<z.ZodString>;
77
27
  port: z.ZodDefault<z.ZodNumber>;
78
28
  bufferSize: z.ZodDefault<z.ZodNumber>;
79
- }, "strip", z.ZodTypeAny, {
80
- enabled: boolean;
81
- host: string;
82
- port: number;
83
- bufferSize: number;
84
- }, {
85
- enabled?: boolean | undefined;
86
- host?: string | undefined;
87
- port?: number | undefined;
88
- bufferSize?: number | undefined;
89
- }>;
29
+ }, z.core.$strip>;
90
30
  export type ObsConfig = z.infer<typeof ObsConfigSchema>;
91
31
  export declare const VisionClawConfigSchema: z.ZodObject<{
92
32
  agentName: z.ZodDefault<z.ZodString>;
93
33
  ownerName: z.ZodDefault<z.ZodString>;
94
34
  ownerEmail: z.ZodOptional<z.ZodString>;
95
- gmail: z.ZodString;
35
+ gmail: z.ZodEmail;
96
36
  googleClientId: z.ZodString;
97
37
  googleClientSecret: z.ZodString;
98
38
  phoneNumber: z.ZodOptional<z.ZodString>;
@@ -101,128 +41,22 @@ export declare const VisionClawConfigSchema: z.ZodObject<{
101
41
  telegram: z.ZodOptional<z.ZodObject<{
102
42
  enabled: z.ZodDefault<z.ZodBoolean>;
103
43
  botToken: z.ZodOptional<z.ZodString>;
104
- allowedChatIds: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
105
- }, "strip", z.ZodTypeAny, {
106
- enabled: boolean;
107
- allowedChatIds: number[];
108
- botToken?: string | undefined;
109
- }, {
110
- enabled?: boolean | undefined;
111
- botToken?: string | undefined;
112
- allowedChatIds?: number[] | undefined;
113
- }>>;
44
+ allowedChatIds: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
45
+ }, z.core.$strip>>;
114
46
  discord: z.ZodOptional<z.ZodObject<{
115
47
  enabled: z.ZodDefault<z.ZodBoolean>;
116
48
  botToken: z.ZodOptional<z.ZodString>;
117
- allowedChannelIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
118
- }, "strip", z.ZodTypeAny, {
119
- enabled: boolean;
120
- allowedChannelIds: string[];
121
- botToken?: string | undefined;
122
- }, {
123
- enabled?: boolean | undefined;
124
- botToken?: string | undefined;
125
- allowedChannelIds?: string[] | undefined;
126
- }>>;
127
- }, "strip", z.ZodTypeAny, {
128
- telegram?: {
129
- enabled: boolean;
130
- allowedChatIds: number[];
131
- botToken?: string | undefined;
132
- } | undefined;
133
- discord?: {
134
- enabled: boolean;
135
- allowedChannelIds: string[];
136
- botToken?: string | undefined;
137
- } | undefined;
138
- }, {
139
- telegram?: {
140
- enabled?: boolean | undefined;
141
- botToken?: string | undefined;
142
- allowedChatIds?: number[] | undefined;
143
- } | undefined;
144
- discord?: {
145
- enabled?: boolean | undefined;
146
- botToken?: string | undefined;
147
- allowedChannelIds?: string[] | undefined;
148
- } | undefined;
149
- }>>;
49
+ allowedChannelIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
50
+ }, z.core.$strip>>;
51
+ }, z.core.$strip>>;
150
52
  obs: z.ZodDefault<z.ZodObject<{
151
53
  enabled: z.ZodDefault<z.ZodBoolean>;
152
54
  host: z.ZodDefault<z.ZodString>;
153
55
  port: z.ZodDefault<z.ZodNumber>;
154
56
  bufferSize: z.ZodDefault<z.ZodNumber>;
155
- }, "strip", z.ZodTypeAny, {
156
- enabled: boolean;
157
- host: string;
158
- port: number;
159
- bufferSize: number;
160
- }, {
161
- enabled?: boolean | undefined;
162
- host?: string | undefined;
163
- port?: number | undefined;
164
- bufferSize?: number | undefined;
165
- }>>;
57
+ }, z.core.$strip>>;
166
58
  heartbeatIntervalMs: z.ZodDefault<z.ZodNumber>;
167
59
  skillsDir: z.ZodOptional<z.ZodString>;
168
- }, "strip", z.ZodTypeAny, {
169
- agentName: string;
170
- ownerName: string;
171
- gmail: string;
172
- googleClientId: string;
173
- googleClientSecret: string;
174
- anthropicApiKey: string;
175
- channels: {
176
- telegram?: {
177
- enabled: boolean;
178
- allowedChatIds: number[];
179
- botToken?: string | undefined;
180
- } | undefined;
181
- discord?: {
182
- enabled: boolean;
183
- allowedChannelIds: string[];
184
- botToken?: string | undefined;
185
- } | undefined;
186
- };
187
- obs: {
188
- enabled: boolean;
189
- host: string;
190
- port: number;
191
- bufferSize: number;
192
- };
193
- heartbeatIntervalMs: number;
194
- ownerEmail?: string | undefined;
195
- phoneNumber?: string | undefined;
196
- skillsDir?: string | undefined;
197
- }, {
198
- gmail: string;
199
- googleClientId: string;
200
- googleClientSecret: string;
201
- anthropicApiKey: string;
202
- agentName?: string | undefined;
203
- ownerName?: string | undefined;
204
- ownerEmail?: string | undefined;
205
- phoneNumber?: string | undefined;
206
- channels?: {
207
- telegram?: {
208
- enabled?: boolean | undefined;
209
- botToken?: string | undefined;
210
- allowedChatIds?: number[] | undefined;
211
- } | undefined;
212
- discord?: {
213
- enabled?: boolean | undefined;
214
- botToken?: string | undefined;
215
- allowedChannelIds?: string[] | undefined;
216
- } | undefined;
217
- } | undefined;
218
- obs?: {
219
- enabled?: boolean | undefined;
220
- host?: string | undefined;
221
- port?: number | undefined;
222
- bufferSize?: number | undefined;
223
- } | undefined;
224
- heartbeatIntervalMs?: number | undefined;
225
- skillsDir?: string | undefined;
226
- }>;
60
+ }, z.core.$strip>;
227
61
  export type VisionClawConfig = z.infer<typeof VisionClawConfigSchema>;
228
62
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,6BAA6B,QAAgB,CAAC;AAE3D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAM7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAK1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAajC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,6BAA6B,QAAgB,CAAC;AAE3D,eAAO,MAAM,kBAAkB;;;;;;iBAM7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;iBAe9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,eAAe;;;;;iBAK1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -34,13 +34,18 @@ export const VisionClawConfigSchema = z.object({
34
34
  agentName: z.string().default("VisionClaw"),
35
35
  ownerName: z.string().default(""),
36
36
  ownerEmail: z.string().optional(),
37
- gmail: z.string().email(),
37
+ gmail: z.email(),
38
38
  googleClientId: z.string(),
39
39
  googleClientSecret: z.string(),
40
40
  phoneNumber: z.string().optional(),
41
41
  anthropicApiKey: z.string(),
42
42
  channels: ChannelConfigSchema.default({}),
43
- obs: ObsConfigSchema.default({}),
43
+ obs: ObsConfigSchema.default({
44
+ enabled: true,
45
+ host: "0.0.0.0",
46
+ port: 3101,
47
+ bufferSize: 1000,
48
+ }),
44
49
  heartbeatIntervalMs: z.number().default(DEFAULT_HEARTBEAT_INTERVAL_MS),
45
50
  skillsDir: z.string().optional(),
46
51
  });
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sEAAsE;AACtE,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAExE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KAChD,CAAC;SACD,QAAQ,EAAE;IACb,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KACnD,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC3C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACzC,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAChC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;IACtE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  import { z } from "zod";
2
2
  export declare const manageCalendarTool: import("@anthropic-ai/claude-agent-sdk").SdkMcpToolDefinition<{
3
- action: z.ZodEnum<["create_event", "update_event", "delete_event", "list_events", "find_free_time"]>;
3
+ action: z.ZodEnum<{
4
+ create_event: "create_event";
5
+ update_event: "update_event";
6
+ delete_event: "delete_event";
7
+ list_events: "list_events";
8
+ find_free_time: "find_free_time";
9
+ }>;
4
10
  summary: z.ZodOptional<z.ZodString>;
5
11
  description: z.ZodOptional<z.ZodString>;
6
12
  start: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,kBAAkB;;;;;;;;;EA2O9B,CAAC"}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EA2O9B,CAAC"}
@@ -5,11 +5,20 @@
5
5
  import { z } from "zod";
6
6
  export declare const computerUseClickTool: import("@anthropic-ai/claude-agent-sdk").SdkMcpToolDefinition<{
7
7
  target: z.ZodString;
8
- button: z.ZodDefault<z.ZodOptional<z.ZodEnum<["left", "right", "double"]>>>;
8
+ button: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
9
+ left: "left";
10
+ right: "right";
11
+ double: "double";
12
+ }>>>;
9
13
  }>;
10
14
  export declare const computerUseScrollTool: import("@anthropic-ai/claude-agent-sdk").SdkMcpToolDefinition<{
11
15
  target: z.ZodString;
12
- direction: z.ZodEnum<["up", "down", "left", "right"]>;
16
+ direction: z.ZodEnum<{
17
+ up: "up";
18
+ down: "down";
19
+ left: "left";
20
+ right: "right";
21
+ }>;
13
22
  amount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
14
23
  }>;
15
24
  export declare const computerUseDragTool: import("@anthropic-ai/claude-agent-sdk").SdkMcpToolDefinition<{
@@ -1 +1 @@
1
- {"version":3,"file":"computer-use.d.ts","sourceRoot":"","sources":["../../src/tools/computer-use.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+ExB,eAAO,MAAM,oBAAoB;;;EAgDhC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;EA4CjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;EA2F/B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;EA8C/B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;EA0C9B,CAAC"}
1
+ {"version":3,"file":"computer-use.d.ts","sourceRoot":"","sources":["../../src/tools/computer-use.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+ExB,eAAO,MAAM,oBAAoB;;;;;;;EAgDhC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;EA4CjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;EA2F/B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;EA8C/B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;EA0C9B,CAAC"}
@@ -1,6 +1,15 @@
1
1
  import { z } from "zod";
2
2
  export declare const manageEmailTool: import("@anthropic-ai/claude-agent-sdk").SdkMcpToolDefinition<{
3
- action: z.ZodEnum<["list", "search", "read", "send", "reply", "mark_read", "mark_unread", "archive"]>;
3
+ action: z.ZodEnum<{
4
+ search: "search";
5
+ send: "send";
6
+ list: "list";
7
+ reply: "reply";
8
+ read: "read";
9
+ mark_read: "mark_read";
10
+ mark_unread: "mark_unread";
11
+ archive: "archive";
12
+ }>;
4
13
  label: z.ZodOptional<z.ZodString>;
5
14
  unread_only: z.ZodOptional<z.ZodBoolean>;
6
15
  query: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/tools/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,eAAe;;;;;;;;;;;EAqL3B,CAAC"}
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/tools/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;EAqL3B,CAAC"}
@@ -1,6 +1,13 @@
1
1
  import { z } from "zod";
2
2
  export declare const memoryTool: import("@anthropic-ai/claude-agent-sdk").SdkMcpToolDefinition<{
3
- command: z.ZodEnum<["view", "create", "str_replace", "insert", "delete", "rename"]>;
3
+ command: z.ZodEnum<{
4
+ create: "create";
5
+ delete: "delete";
6
+ view: "view";
7
+ str_replace: "str_replace";
8
+ insert: "insert";
9
+ rename: "rename";
10
+ }>;
4
11
  path: z.ZodOptional<z.ZodString>;
5
12
  file_text: z.ZodOptional<z.ZodString>;
6
13
  old_str: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/tools/memory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgQxB,eAAO,MAAM,UAAU;;;;;;;;;;;EAgGtB,CAAC"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/tools/memory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgQxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;EAgGtB,CAAC"}
@@ -1,6 +1,11 @@
1
1
  import { z } from "zod";
2
2
  export declare const manageSkillsTool: import("@anthropic-ai/claude-agent-sdk").SdkMcpToolDefinition<{
3
- action: z.ZodEnum<["create", "update", "delete", "list"]>;
3
+ action: z.ZodEnum<{
4
+ list: "list";
5
+ create: "create";
6
+ update: "update";
7
+ delete: "delete";
8
+ }>;
4
9
  name: z.ZodOptional<z.ZodString>;
5
10
  description: z.ZodOptional<z.ZodString>;
6
11
  content: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/tools/skill.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,gBAAgB;;;;;EAgJ5B,CAAC"}
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/tools/skill.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,gBAAgB;;;;;;;;;;EAgJ5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "visionclaw",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "description": "A personal assistant agent that runs on your desktop, receives commands from messaging channels, and executes tasks autonomously.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -27,7 +27,7 @@
27
27
  "open": "^10.1.0",
28
28
  "playwright": "^1.49.0",
29
29
  "prompts": "^2.4.2",
30
- "zod": "^3.24.0"
30
+ "zod": "^4.3.6"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@eslint/js": "^9.39.2",