visionclaw 0.1.21 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/activity-tracker.d.ts +25 -0
- package/dist/agent/activity-tracker.d.ts.map +1 -0
- package/dist/agent/activity-tracker.js +77 -0
- package/dist/agent/activity-tracker.js.map +1 -0
- package/dist/agent/context.d.ts +10 -0
- package/dist/agent/context.d.ts.map +1 -1
- package/dist/agent/context.js +35 -0
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/fast-responder.d.ts +56 -0
- package/dist/agent/fast-responder.d.ts.map +1 -0
- package/dist/agent/fast-responder.js +111 -0
- package/dist/agent/fast-responder.js.map +1 -0
- package/dist/agent/loop.d.ts +2 -0
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +127 -29
- package/dist/agent/loop.js.map +1 -1
- package/package.json +1 -1
|
@@ -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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"}
|
package/dist/agent/context.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/agent/context.js
CHANGED
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
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
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
channel: string;
|
|
10
|
+
sender: string;
|
|
11
|
+
reply: string;
|
|
12
|
+
}, {
|
|
13
|
+
channel: string;
|
|
14
|
+
sender: string;
|
|
15
|
+
reply: string;
|
|
16
|
+
}>, "many">;
|
|
17
|
+
needsPrimaryAction: z.ZodBoolean;
|
|
18
|
+
briefForPrimary: z.ZodString;
|
|
19
|
+
}, "strip", z.ZodTypeAny, {
|
|
20
|
+
replies: {
|
|
21
|
+
channel: string;
|
|
22
|
+
sender: string;
|
|
23
|
+
reply: string;
|
|
24
|
+
}[];
|
|
25
|
+
needsPrimaryAction: boolean;
|
|
26
|
+
briefForPrimary: string;
|
|
27
|
+
}, {
|
|
28
|
+
replies: {
|
|
29
|
+
channel: string;
|
|
30
|
+
sender: string;
|
|
31
|
+
reply: string;
|
|
32
|
+
}[];
|
|
33
|
+
needsPrimaryAction: boolean;
|
|
34
|
+
briefForPrimary: string;
|
|
35
|
+
}>;
|
|
36
|
+
export type FastResponse = z.infer<typeof FastResponseSchema>;
|
|
37
|
+
/**
|
|
38
|
+
* Make a single lightweight API call to acknowledge one or more user messages
|
|
39
|
+
* that arrived while the primary agent is busy. Handles the batch case where
|
|
40
|
+
* multiple messages arrive in quick succession — the model sees all of them
|
|
41
|
+
* and produces per-sender personalized replies + a unified briefing.
|
|
42
|
+
*
|
|
43
|
+
* Uses structured outputs (json_schema) so the response is guaranteed to be
|
|
44
|
+
* valid JSON matching {@link FastResponseSchema}.
|
|
45
|
+
*
|
|
46
|
+
* Returns null if the call fails so the caller can fall back to the original
|
|
47
|
+
* interrupt-injection path.
|
|
48
|
+
*/
|
|
49
|
+
export declare function fastRespond(options: {
|
|
50
|
+
messages: CommandMessage[];
|
|
51
|
+
activitySummary: string;
|
|
52
|
+
agentName: string;
|
|
53
|
+
apiKey: string;
|
|
54
|
+
}): Promise<FastResponse | null>;
|
|
55
|
+
export {};
|
|
56
|
+
//# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBtB,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-20250315";
|
|
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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"}
|
package/dist/agent/loop.d.ts
CHANGED
|
@@ -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;
|
package/dist/agent/loop.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/agent/loop.js
CHANGED
|
@@ -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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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
|
-
|
|
121
|
-
|
|
122
|
-
const
|
|
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
|
-
|
|
135
|
+
batch.push(msg);
|
|
127
136
|
}
|
|
128
|
-
if (
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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;
|
package/dist/agent/loop.js.map
CHANGED
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "visionclaw",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
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",
|