visionclaw 0.1.91 → 0.1.92
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/CHANGELOG.md +21 -0
- package/README.md +4 -2
- package/dist/agent/browser-launcher.d.ts.map +1 -1
- package/dist/agent/browser-launcher.js +18 -1
- package/dist/agent/browser-launcher.js.map +1 -1
- package/dist/agent/command-handlers.d.ts +1 -1
- package/dist/agent/command-handlers.d.ts.map +1 -1
- package/dist/agent/command-handlers.js +1 -14
- package/dist/agent/command-handlers.js.map +1 -1
- package/dist/agent/context.js +1 -1
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/interrupt-handler.d.ts +1 -0
- package/dist/agent/interrupt-handler.d.ts.map +1 -1
- package/dist/agent/interrupt-handler.js +22 -2
- package/dist/agent/interrupt-handler.js.map +1 -1
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +2 -1
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/openai-file-session.d.ts +19 -0
- package/dist/agent/openai-file-session.d.ts.map +1 -0
- package/dist/agent/openai-file-session.js +78 -0
- package/dist/agent/openai-file-session.js.map +1 -0
- package/dist/agent/openai-session.d.ts +50 -0
- package/dist/agent/openai-session.d.ts.map +1 -0
- package/dist/agent/openai-session.js +413 -0
- package/dist/agent/openai-session.js.map +1 -0
- package/dist/agent/openai-tools.d.ts +11 -0
- package/dist/agent/openai-tools.d.ts.map +1 -0
- package/dist/agent/openai-tools.js +167 -0
- package/dist/agent/openai-tools.js.map +1 -0
- package/dist/agent/providers/claude/session.d.ts +134 -0
- package/dist/agent/providers/claude/session.d.ts.map +1 -0
- package/dist/agent/providers/claude/session.js +525 -0
- package/dist/agent/providers/claude/session.js.map +1 -0
- package/dist/agent/providers/client-factory.d.ts +41 -0
- package/dist/agent/providers/client-factory.d.ts.map +1 -0
- package/dist/agent/providers/client-factory.js +190 -0
- package/dist/agent/providers/client-factory.js.map +1 -0
- package/dist/agent/providers/openai/file-session.d.ts +19 -0
- package/dist/agent/providers/openai/file-session.d.ts.map +1 -0
- package/dist/agent/providers/openai/file-session.js +78 -0
- package/dist/agent/providers/openai/file-session.js.map +1 -0
- package/dist/agent/providers/openai/session.d.ts +47 -0
- package/dist/agent/providers/openai/session.d.ts.map +1 -0
- package/dist/agent/providers/openai/session.js +414 -0
- package/dist/agent/providers/openai/session.js.map +1 -0
- package/dist/agent/providers/openai/tools.d.ts +13 -0
- package/dist/agent/providers/openai/tools.d.ts.map +1 -0
- package/dist/agent/providers/openai/tools.js +208 -0
- package/dist/agent/providers/openai/tools.js.map +1 -0
- package/dist/agent/providers/session-types.d.ts +123 -0
- package/dist/agent/providers/session-types.d.ts.map +1 -0
- package/dist/agent/providers/session-types.js +2 -0
- package/dist/agent/providers/session-types.js.map +1 -0
- package/dist/agent/runtime-surface.d.ts +23 -0
- package/dist/agent/runtime-surface.d.ts.map +1 -0
- package/dist/agent/runtime-surface.js +48 -0
- package/dist/agent/runtime-surface.js.map +1 -0
- package/dist/agent/session-types.d.ts +111 -0
- package/dist/agent/session-types.d.ts.map +1 -0
- package/dist/agent/session-types.js +2 -0
- package/dist/agent/session-types.js.map +1 -0
- package/dist/agent/status.d.ts.map +1 -1
- package/dist/agent/status.js +0 -7
- package/dist/agent/status.js.map +1 -1
- package/dist/agent/system-prompt.js +1 -1
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/builtin-skills/macos-automation/SKILL.md +43 -26
- package/dist/builtin-skills/visionclaw-manual/SKILL.md +3 -3
- package/dist/calendar/google-calendar.d.ts.map +1 -1
- package/dist/calendar/google-calendar.js +3 -1
- package/dist/calendar/google-calendar.js.map +1 -1
- package/dist/channels/interface.d.ts +0 -10
- package/dist/channels/interface.d.ts.map +1 -1
- package/dist/channels/manager.d.ts.map +1 -1
- package/dist/channels/manager.js +0 -3
- package/dist/channels/manager.js.map +1 -1
- package/dist/channels/telegram.d.ts.map +1 -1
- package/dist/channels/telegram.js +0 -13
- package/dist/channels/telegram.js.map +1 -1
- package/dist/config/types.d.ts +5 -5
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +15 -6
- package/dist/config/types.js.map +1 -1
- package/dist/drive/google-drive.d.ts.map +1 -1
- package/dist/drive/google-drive.js +3 -1
- package/dist/drive/google-drive.js.map +1 -1
- package/dist/email/gmail-utils.d.ts.map +1 -1
- package/dist/email/gmail-utils.js +3 -1
- package/dist/email/gmail-utils.js.map +1 -1
- package/dist/google/default-oauth-app.d.ts +6 -0
- package/dist/google/default-oauth-app.d.ts.map +1 -0
- package/dist/google/default-oauth-app.js +7 -0
- package/dist/google/default-oauth-app.js.map +1 -0
- package/dist/google/oauth-credentials.d.ts +10 -0
- package/dist/google/oauth-credentials.d.ts.map +1 -0
- package/dist/google/oauth-credentials.js +39 -0
- package/dist/google/oauth-credentials.js.map +1 -0
- package/dist/index.js +19 -3
- package/dist/index.js.map +1 -1
- package/dist/obs/server.js +1 -1
- package/dist/obs/server.js.map +1 -1
- package/dist/obs/tunnel.d.ts.map +1 -1
- package/dist/obs/tunnel.js +18 -2
- package/dist/obs/tunnel.js.map +1 -1
- package/dist/onboarding/google-auth.d.ts +2 -2
- package/dist/onboarding/google-auth.d.ts.map +1 -1
- package/dist/onboarding/google-auth.js +3 -1
- package/dist/onboarding/google-auth.js.map +1 -1
- package/dist/onboarding/google-cloud-setup.d.ts.map +1 -1
- package/dist/onboarding/google-cloud-setup.js +25 -6
- package/dist/onboarding/google-cloud-setup.js.map +1 -1
- package/dist/onboarding/index.d.ts.map +1 -1
- package/dist/onboarding/index.js +70 -21
- package/dist/onboarding/index.js.map +1 -1
- package/dist/onboarding/onboarding-session.d.ts +1 -0
- package/dist/onboarding/onboarding-session.d.ts.map +1 -1
- package/dist/onboarding/onboarding-session.js +2 -3
- package/dist/onboarding/onboarding-session.js.map +1 -1
- package/dist/onboarding/onboarding-tools.d.ts +0 -1
- package/dist/onboarding/onboarding-tools.d.ts.map +1 -1
- package/dist/onboarding/onboarding-tools.js +0 -6
- package/dist/onboarding/onboarding-tools.js.map +1 -1
- package/dist/onboarding/prepare-windows.d.ts +9 -0
- package/dist/onboarding/prepare-windows.d.ts.map +1 -0
- package/dist/onboarding/prepare-windows.js +250 -0
- package/dist/onboarding/prepare-windows.js.map +1 -0
- package/dist/onboarding/set-owner.js +1 -1
- package/dist/onboarding/set-owner.js.map +1 -1
- package/dist/onboarding/telegram-onboarding.d.ts.map +1 -1
- package/dist/onboarding/telegram-onboarding.js +0 -1
- package/dist/onboarding/telegram-onboarding.js.map +1 -1
- package/dist/onboarding/windows-permissions.d.ts +20 -0
- package/dist/onboarding/windows-permissions.d.ts.map +1 -0
- package/dist/onboarding/windows-permissions.js +195 -0
- package/dist/onboarding/windows-permissions.js.map +1 -0
- package/dist/reconfigure.d.ts.map +1 -1
- package/dist/reconfigure.js +40 -9
- package/dist/reconfigure.js.map +1 -1
- package/dist/tools/computer-use.d.ts +3 -0
- package/dist/tools/computer-use.d.ts.map +1 -1
- package/dist/tools/computer-use.js +43 -11
- package/dist/tools/computer-use.js.map +1 -1
- package/dist/tools/desktop-executor-factory.d.ts +20 -0
- package/dist/tools/desktop-executor-factory.d.ts.map +1 -0
- package/dist/tools/desktop-executor-factory.js +56 -0
- package/dist/tools/desktop-executor-factory.js.map +1 -0
- package/dist/tools/desktop-executor-windows.d.ts +42 -0
- package/dist/tools/desktop-executor-windows.d.ts.map +1 -0
- package/dist/tools/desktop-executor-windows.js +359 -0
- package/dist/tools/desktop-executor-windows.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/screenshot.d.ts.map +1 -1
- package/dist/tools/screenshot.js +101 -17
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/web-fetch.d.ts +5 -0
- package/dist/tools/web-fetch.d.ts.map +1 -0
- package/dist/tools/web-fetch.js +175 -0
- package/dist/tools/web-fetch.js.map +1 -0
- package/dist/utils/restart.d.ts.map +1 -1
- package/dist/utils/restart.js +7 -2
- package/dist/utils/restart.js.map +1 -1
- package/dist/utils/transcribe.d.ts.map +1 -1
- package/dist/utils/transcribe.js +11 -5
- package/dist/utils/transcribe.js.map +1 -1
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +2 -1
- package/dist/utils/version-check.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { MessageParam } from "@anthropic-ai/sdk/resources";
|
|
2
|
+
import type { VisionClawConfig } from "../../config/types.js";
|
|
3
|
+
import type { ScreenshotInjector } from "../screenshot-injector.js";
|
|
4
|
+
import type { SessionMode } from "../mailbox.js";
|
|
5
|
+
import type { RuntimeSurface } from "../runtime-surface.js";
|
|
6
|
+
export type SystemPromptConfig = string | {
|
|
7
|
+
type: "preset";
|
|
8
|
+
preset: "claude_code";
|
|
9
|
+
append?: string;
|
|
10
|
+
};
|
|
11
|
+
export interface AgentTextBlock {
|
|
12
|
+
type: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
}
|
|
15
|
+
export interface AgentThinkingBlock {
|
|
16
|
+
type: "thinking";
|
|
17
|
+
thinking: string;
|
|
18
|
+
}
|
|
19
|
+
export interface AgentToolUseBlock {
|
|
20
|
+
type: "tool_use";
|
|
21
|
+
name: string;
|
|
22
|
+
input: unknown;
|
|
23
|
+
id?: string;
|
|
24
|
+
tool_use_id?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface AgentToolResultBlock {
|
|
27
|
+
type: "tool_result";
|
|
28
|
+
tool_use_id: string;
|
|
29
|
+
content: unknown;
|
|
30
|
+
is_error?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface AgentAssistantMessage {
|
|
33
|
+
type: "assistant";
|
|
34
|
+
session_id?: string;
|
|
35
|
+
message: {
|
|
36
|
+
role: "assistant";
|
|
37
|
+
content: (AgentTextBlock | AgentThinkingBlock | AgentToolUseBlock)[];
|
|
38
|
+
};
|
|
39
|
+
parent_tool_use_id?: string | null;
|
|
40
|
+
error?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface AgentUserMessage {
|
|
43
|
+
type: "user";
|
|
44
|
+
session_id?: string;
|
|
45
|
+
message: {
|
|
46
|
+
role: "user";
|
|
47
|
+
content: AgentToolResultBlock[];
|
|
48
|
+
};
|
|
49
|
+
parent_tool_use_id?: string | null;
|
|
50
|
+
}
|
|
51
|
+
export interface AgentResultMessage {
|
|
52
|
+
type: "result";
|
|
53
|
+
subtype: string;
|
|
54
|
+
num_turns: number;
|
|
55
|
+
usage: {
|
|
56
|
+
input_tokens: number;
|
|
57
|
+
output_tokens: number;
|
|
58
|
+
};
|
|
59
|
+
total_cost_usd: number;
|
|
60
|
+
is_error: boolean;
|
|
61
|
+
errors: string[];
|
|
62
|
+
model?: string;
|
|
63
|
+
modelUsage?: unknown;
|
|
64
|
+
model_usage?: unknown;
|
|
65
|
+
}
|
|
66
|
+
export interface AgentSystemMessage {
|
|
67
|
+
type: "system";
|
|
68
|
+
subtype: string;
|
|
69
|
+
session_id?: string;
|
|
70
|
+
[key: string]: unknown;
|
|
71
|
+
}
|
|
72
|
+
export type AgentStreamMessage = AgentAssistantMessage | AgentUserMessage | AgentResultMessage | AgentSystemMessage;
|
|
73
|
+
export interface CurrentQueryLike {
|
|
74
|
+
mcpServerStatus?(): Promise<unknown>;
|
|
75
|
+
toggleMcpServer?(serverName: string, enabled: boolean): Promise<void>;
|
|
76
|
+
}
|
|
77
|
+
export interface UsageSnapshot {
|
|
78
|
+
usedInputTokens: number;
|
|
79
|
+
contextWindow: number;
|
|
80
|
+
usedPct: number;
|
|
81
|
+
capturedAtMs: number;
|
|
82
|
+
}
|
|
83
|
+
export interface AgentSessionContext {
|
|
84
|
+
mode: SessionMode;
|
|
85
|
+
getDualSessionEnabled: () => boolean;
|
|
86
|
+
}
|
|
87
|
+
export interface AgentSessionConstructorArgs {
|
|
88
|
+
config: VisionClawConfig;
|
|
89
|
+
buildSystemPrompt: () => SystemPromptConfig;
|
|
90
|
+
runtimeSurface: RuntimeSurface;
|
|
91
|
+
sessionContext: AgentSessionContext;
|
|
92
|
+
}
|
|
93
|
+
export interface AgentSessionLike {
|
|
94
|
+
readonly mode: SessionMode;
|
|
95
|
+
sendAndStream(content: MessageParam["content"]): AsyncIterable<AgentStreamMessage>;
|
|
96
|
+
injectMessage(content: MessageParam["content"]): boolean;
|
|
97
|
+
closeInput(): void;
|
|
98
|
+
requestStop(): void;
|
|
99
|
+
clearStop(): void;
|
|
100
|
+
isStopRequested(): boolean;
|
|
101
|
+
requestCompaction(): Promise<void>;
|
|
102
|
+
maybeCompactByTokens(options?: {
|
|
103
|
+
usedPctThreshold?: number;
|
|
104
|
+
cooldownMs?: number;
|
|
105
|
+
}): Promise<void>;
|
|
106
|
+
captureSessionId(id: string | undefined): void;
|
|
107
|
+
captureUsageSnapshot(snapshot: {
|
|
108
|
+
usedInputTokens: number;
|
|
109
|
+
contextWindow: number;
|
|
110
|
+
usedPct: number;
|
|
111
|
+
}): void;
|
|
112
|
+
capturePostCompactionSnapshot(postCompactionTokens: number): void;
|
|
113
|
+
getSessionId(): string | null;
|
|
114
|
+
getTranscriptPath(): string | null;
|
|
115
|
+
getUsageSnapshot(): UsageSnapshot | null;
|
|
116
|
+
getCurrentQuery(): CurrentQueryLike | null;
|
|
117
|
+
setDynamicMcpServers(servers: Record<string, Record<string, unknown>>): void;
|
|
118
|
+
getDynamicMcpServers(): Record<string, Record<string, unknown>>;
|
|
119
|
+
readonly hasOrphanedInjections: boolean;
|
|
120
|
+
readonly isInputClosed: boolean;
|
|
121
|
+
screenshotInjector?: ScreenshotInjector | null;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=session-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-types.d.ts","sourceRoot":"","sources":["../../../src/agent/providers/session-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-types.js","sourceRoot":"","sources":["../../../src/agent/providers/session-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { VisionClawConfig } from "../config/types.js";
|
|
2
|
+
export type OpenAIHostedToolName = "web_search";
|
|
3
|
+
export type NativeToolSurface = {
|
|
4
|
+
kind: "claude-default";
|
|
5
|
+
} | {
|
|
6
|
+
kind: "openai-hosted";
|
|
7
|
+
hostedTools: OpenAIHostedToolName[];
|
|
8
|
+
};
|
|
9
|
+
export interface VisionClawToolTransport {
|
|
10
|
+
transport: "claude-mcp" | "openai-functions";
|
|
11
|
+
supportsSwitchSessionTool: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface RuntimeSurface {
|
|
14
|
+
nativeTools: NativeToolSurface;
|
|
15
|
+
visionClawToolTransport: VisionClawToolTransport;
|
|
16
|
+
externalMcpServers: Record<string, Record<string, unknown>>;
|
|
17
|
+
}
|
|
18
|
+
export interface BuiltRuntimeSurface {
|
|
19
|
+
runtimeSurface: RuntimeSurface;
|
|
20
|
+
startupDynamicMcpServerCount: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function buildRuntimeSurface(config: VisionClawConfig): BuiltRuntimeSurface;
|
|
23
|
+
//# sourceMappingURL=runtime-surface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-surface.d.ts","sourceRoot":"","sources":["../../src/agent/runtime-surface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEhD,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,oBAAoB,EAAE,CAAA;CAAE,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,YAAY,GAAG,kBAAkB,CAAC;IAC7C,yBAAyB,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,4BAA4B,EAAE,MAAM,CAAC;CACtC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,mBAAmB,CAiBjF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { getScreenshotsDir, loadDynamicMcpServers } from "../config/index.js";
|
|
2
|
+
import { getCdpEndpoint } from "./browser-launcher.js";
|
|
3
|
+
export function buildRuntimeSurface(config) {
|
|
4
|
+
const dynamicExternalMcpServers = loadDynamicMcpServers();
|
|
5
|
+
return {
|
|
6
|
+
runtimeSurface: {
|
|
7
|
+
nativeTools: buildNativeToolSurface(config),
|
|
8
|
+
visionClawToolTransport: {
|
|
9
|
+
transport: config.model === "gpt-5.4" ? "openai-functions" : "claude-mcp",
|
|
10
|
+
supportsSwitchSessionTool: true,
|
|
11
|
+
},
|
|
12
|
+
externalMcpServers: {
|
|
13
|
+
...buildBuiltinExternalMcpServers(config),
|
|
14
|
+
...dynamicExternalMcpServers,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
startupDynamicMcpServerCount: Object.keys(dynamicExternalMcpServers).length,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function buildNativeToolSurface(config) {
|
|
21
|
+
if (config.model === "gpt-5.4") {
|
|
22
|
+
return {
|
|
23
|
+
kind: "openai-hosted",
|
|
24
|
+
hostedTools: config.provider === "openai" ? ["web_search"] : [],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return { kind: "claude-default" };
|
|
28
|
+
}
|
|
29
|
+
function buildBuiltinExternalMcpServers(config) {
|
|
30
|
+
const externalMcpServers = {
|
|
31
|
+
playwright: {
|
|
32
|
+
command: "npx",
|
|
33
|
+
args: [
|
|
34
|
+
"@playwright/mcp@latest",
|
|
35
|
+
"--cdp-endpoint", getCdpEndpoint(),
|
|
36
|
+
"--output-dir", getScreenshotsDir(),
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
if (config.provider === "bedrock" && config.serpApiKey) {
|
|
41
|
+
externalMcpServers.serpapi = {
|
|
42
|
+
type: "http",
|
|
43
|
+
url: `https://mcp.serpapi.com/${config.serpApiKey}/mcp`,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return externalMcpServers;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=runtime-surface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-surface.js","sourceRoot":"","sources":["../../src/agent/runtime-surface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAwBvD,MAAM,UAAU,mBAAmB,CAAC,MAAwB;IAC1D,MAAM,yBAAyB,GAAG,qBAAqB,EAAE,CAAC;IAE1D,OAAO;QACL,cAAc,EAAE;YACd,WAAW,EAAE,sBAAsB,CAAC,MAAM,CAAC;YAC3C,uBAAuB,EAAE;gBACvB,SAAS,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY;gBACzE,yBAAyB,EAAE,IAAI;aAChC;YACD,kBAAkB,EAAE;gBAClB,GAAG,8BAA8B,CAAC,MAAM,CAAC;gBACzC,GAAG,yBAAyB;aAC7B;SACF;QACD,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM;KAC5E,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAwB;IACtD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;SAChE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,8BAA8B,CACrC,MAAwB;IAExB,MAAM,kBAAkB,GAA4C;QAClE,UAAU,EAAE;YACV,OAAO,EAAE,KAAK;YACd,IAAI,EAAE;gBACJ,wBAAwB;gBACxB,gBAAgB,EAAE,cAAc,EAAE;gBAClC,cAAc,EAAE,iBAAiB,EAAE;aACpC;SACF;KACF,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACvD,kBAAkB,CAAC,OAAO,GAAG;YAC3B,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,2BAA2B,MAAM,CAAC,UAAU,MAAM;SACxD,CAAC;IACJ,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { MessageParam } from "@anthropic-ai/sdk/resources";
|
|
2
|
+
import type { ScreenshotInjector } from "./screenshot-injector.js";
|
|
3
|
+
import type { SessionMode } from "./mailbox.js";
|
|
4
|
+
export type SystemPromptConfig = string | {
|
|
5
|
+
type: "preset";
|
|
6
|
+
preset: "claude_code";
|
|
7
|
+
append?: string;
|
|
8
|
+
};
|
|
9
|
+
export interface AgentTextBlock {
|
|
10
|
+
type: "text";
|
|
11
|
+
text: string;
|
|
12
|
+
}
|
|
13
|
+
export interface AgentThinkingBlock {
|
|
14
|
+
type: "thinking";
|
|
15
|
+
thinking: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AgentToolUseBlock {
|
|
18
|
+
type: "tool_use";
|
|
19
|
+
name: string;
|
|
20
|
+
input: unknown;
|
|
21
|
+
id?: string;
|
|
22
|
+
tool_use_id?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface AgentToolResultBlock {
|
|
25
|
+
type: "tool_result";
|
|
26
|
+
tool_use_id: string;
|
|
27
|
+
content: unknown;
|
|
28
|
+
is_error?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface AgentAssistantMessage {
|
|
31
|
+
type: "assistant";
|
|
32
|
+
session_id?: string;
|
|
33
|
+
message: {
|
|
34
|
+
role: "assistant";
|
|
35
|
+
content: (AgentTextBlock | AgentThinkingBlock | AgentToolUseBlock)[];
|
|
36
|
+
};
|
|
37
|
+
parent_tool_use_id?: string | null;
|
|
38
|
+
error?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface AgentUserMessage {
|
|
41
|
+
type: "user";
|
|
42
|
+
session_id?: string;
|
|
43
|
+
message: {
|
|
44
|
+
role: "user";
|
|
45
|
+
content: AgentToolResultBlock[];
|
|
46
|
+
};
|
|
47
|
+
parent_tool_use_id?: string | null;
|
|
48
|
+
}
|
|
49
|
+
export interface AgentResultMessage {
|
|
50
|
+
type: "result";
|
|
51
|
+
subtype: string;
|
|
52
|
+
num_turns: number;
|
|
53
|
+
usage: {
|
|
54
|
+
input_tokens: number;
|
|
55
|
+
output_tokens: number;
|
|
56
|
+
};
|
|
57
|
+
total_cost_usd: number;
|
|
58
|
+
is_error: boolean;
|
|
59
|
+
errors: string[];
|
|
60
|
+
model?: string;
|
|
61
|
+
modelUsage?: unknown;
|
|
62
|
+
model_usage?: unknown;
|
|
63
|
+
}
|
|
64
|
+
export interface AgentSystemMessage {
|
|
65
|
+
type: "system";
|
|
66
|
+
subtype: string;
|
|
67
|
+
session_id?: string;
|
|
68
|
+
[key: string]: unknown;
|
|
69
|
+
}
|
|
70
|
+
export type AgentStreamMessage = AgentAssistantMessage | AgentUserMessage | AgentResultMessage | AgentSystemMessage;
|
|
71
|
+
export interface CurrentQueryLike {
|
|
72
|
+
mcpServerStatus?(): Promise<unknown>;
|
|
73
|
+
toggleMcpServer?(serverName: string, enabled: boolean): Promise<void>;
|
|
74
|
+
}
|
|
75
|
+
export interface UsageSnapshot {
|
|
76
|
+
usedInputTokens: number;
|
|
77
|
+
contextWindow: number;
|
|
78
|
+
usedPct: number;
|
|
79
|
+
capturedAtMs: number;
|
|
80
|
+
}
|
|
81
|
+
export interface AgentSessionLike {
|
|
82
|
+
readonly mode: SessionMode;
|
|
83
|
+
sendAndStream(content: MessageParam["content"]): AsyncIterable<AgentStreamMessage>;
|
|
84
|
+
injectMessage(content: MessageParam["content"]): boolean;
|
|
85
|
+
closeInput(): void;
|
|
86
|
+
requestStop(): void;
|
|
87
|
+
clearStop(): void;
|
|
88
|
+
isStopRequested(): boolean;
|
|
89
|
+
requestCompaction(): Promise<void>;
|
|
90
|
+
maybeCompactByTokens(options?: {
|
|
91
|
+
usedPctThreshold?: number;
|
|
92
|
+
cooldownMs?: number;
|
|
93
|
+
}): Promise<void>;
|
|
94
|
+
captureSessionId(id: string | undefined): void;
|
|
95
|
+
captureUsageSnapshot(snapshot: {
|
|
96
|
+
usedInputTokens: number;
|
|
97
|
+
contextWindow: number;
|
|
98
|
+
usedPct: number;
|
|
99
|
+
}): void;
|
|
100
|
+
capturePostCompactionSnapshot(postCompactionTokens: number): void;
|
|
101
|
+
getSessionId(): string | null;
|
|
102
|
+
getTranscriptPath(): string | null;
|
|
103
|
+
getUsageSnapshot(): UsageSnapshot | null;
|
|
104
|
+
getCurrentQuery(): CurrentQueryLike | null;
|
|
105
|
+
setDynamicMcpServers(servers: Record<string, Record<string, unknown>>): void;
|
|
106
|
+
getDynamicMcpServers(): Record<string, Record<string, unknown>>;
|
|
107
|
+
readonly hasOrphanedInjections: boolean;
|
|
108
|
+
readonly isInputClosed: boolean;
|
|
109
|
+
screenshotInjector?: ScreenshotInjector | null;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=session-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-types.d.ts","sourceRoot":"","sources":["../../src/agent/session-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-types.js","sourceRoot":"","sources":["../../src/agent/session-types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/agent/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIxE,wBAAgB,aAAa,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/agent/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIxE,wBAAgB,aAAa,IAAI,MAAM,CAYtC;AAmLD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;CACvB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgElB"}
|
package/dist/agent/status.js
CHANGED
|
@@ -9,7 +9,6 @@ export function buildHelpText() {
|
|
|
9
9
|
"/stop — Stop the current agent task",
|
|
10
10
|
"/sleep <minutes> — Set heartbeat interval (1-1440 min)",
|
|
11
11
|
"/console — Get the web console URL",
|
|
12
|
-
"/dual-session <on|off> — Toggle dual-session mode",
|
|
13
12
|
"/restart — Restart the agent",
|
|
14
13
|
"/tunnel restart — Restart the SSH tunnel",
|
|
15
14
|
].join("\n");
|
|
@@ -174,12 +173,6 @@ export async function buildStatusReport(options) {
|
|
|
174
173
|
lines.push(`Status: ${agentState.busy ? "Busy" : "Idle"}`);
|
|
175
174
|
lines.push(`Uptime: ${formatUptime(process.uptime())}`);
|
|
176
175
|
lines.push(`Heartbeat: every ${Math.round(ownerConfig.heartbeatIntervalMs / 60_000)}m`);
|
|
177
|
-
const dualStatus = sessionManager.dualSessionEnabled ? "on" : "off";
|
|
178
|
-
lines.push(`Session: ${sessionManager.activeMode} (dual-session: ${dualStatus})`);
|
|
179
|
-
const codingStatus = sessionManager.getCodingSessionStatus();
|
|
180
|
-
if (codingStatus) {
|
|
181
|
-
lines.push(`Coding session: ${codingStatus}`);
|
|
182
|
-
}
|
|
183
176
|
const usage = sessionManager.activeSession.getUsageSnapshot();
|
|
184
177
|
if (usage) {
|
|
185
178
|
const pct = (usage.usedPct * 100).toFixed(1);
|
package/dist/agent/status.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/agent/status.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,sBAAsB;QACtB,gCAAgC;QAChC,yDAAyD;QACzD,oDAAoD;QACpD,qCAAqC;QACrC,wDAAwD;QACxD,oCAAoC;QACpC,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/agent/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ You are ${config.agentName}, a personal desktop assistant. You are a long-runnin
|
|
|
23
23
|
- **Calendar**: Google Calendar associated with ${config.gmail} (this is YOUR calendar)
|
|
24
24
|
${config.phoneNumber ? `- **Phone**: ${config.phoneNumber} (this is YOUR phone number)` : "- **Phone**: Not configured"}
|
|
25
25
|
${config.gmailPassword ? `- **Gmail Password**: ${config.gmailPassword}` : ""}
|
|
26
|
-
${config.
|
|
26
|
+
${config.systemPassword ? `- **System Password**: ${config.systemPassword} (use for sudo, system settings, screen unlock, etc.)` : ""}
|
|
27
27
|
|
|
28
28
|
## Your Owner
|
|
29
29
|
${ownerConfig.ownerName ? `- **Name**: ${ownerConfig.ownerName}` : "- Owner name not configured"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAwB,EACxB,WAAwB;IAExB,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC5D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE;QAC7C,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,MAAM;KAClB,CAAC,CAAC;IAEH,OAAO;;UAEC,MAAM,CAAC,SAAS,oHAAoH,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;;;cAGnL,MAAM,CAAC,SAAS;eACf,MAAM,CAAC,KAAK;kDACuB,MAAM,CAAC,KAAK;EAC5D,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,WAAW,8BAA8B,CAAC,CAAC,CAAC,6BAA6B;EACrH,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE;EAC3E,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAwB,EACxB,WAAwB;IAExB,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC5D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE;QAC7C,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,MAAM;KAClB,CAAC,CAAC;IAEH,OAAO;;UAEC,MAAM,CAAC,SAAS,oHAAoH,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;;;cAGnL,MAAM,CAAC,SAAS;eACf,MAAM,CAAC,KAAK;kDACuB,MAAM,CAAC,KAAK;EAC5D,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,WAAW,8BAA8B,CAAC,CAAC,CAAC,6BAA6B;EACrH,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE;EAC3E,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,0BAA0B,MAAM,CAAC,cAAc,uDAAuD,CAAC,CAAC,CAAC,EAAE;;;EAGnI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,6BAA6B;EAC9F,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,yBAAyB,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;EAC/E,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;EACxE,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,2BAA2B,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;EAgBzF,WAAW;;;;;;;;;;;;;gCAamB,WAAW,CAAC,mBAAmB,GAAG,IAAI;;;;;;;;;;;;;;EAcpE,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;CAelC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEJ,GAAG,KAAK,EAAE;CACX,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAwB;IAClD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAE5E,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Use this skill for
|
|
2
|
+
description: Use this skill for desktop automation -- choosing between Playwright browser tools and computer_use tools, clipboard operations, app switching, screenshots, file operations, and system commands. Provides a tool selection guide for different automation scenarios on both macOS and Windows.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# Desktop Automation Patterns
|
|
6
6
|
|
|
7
7
|
## Tool Selection Guide
|
|
8
8
|
|
|
@@ -10,11 +10,11 @@ description: Use this skill for macOS desktop automation -- choosing between Pla
|
|
|
10
10
|
|------|---------------|-------|
|
|
11
11
|
| Web browsing / forms | Playwright MCP (`browser_*`) | Fast, uses accessibility tree |
|
|
12
12
|
| Desktop GUI apps | `computer_use_*` tools | AI-powered coordinate resolution |
|
|
13
|
-
| WeChat | `computer_use_*` ONLY | AppleScript unreliable |
|
|
13
|
+
| WeChat | `computer_use_*` ONLY | AppleScript/native automation unreliable |
|
|
14
14
|
| Feishu | `computer_use_*` ONLY | Must use desktop app, not browser |
|
|
15
|
-
| File operations | Bash (`cp`, `mv`, etc.) | Direct and fast |
|
|
15
|
+
| File operations | Bash/PowerShell (`cp`, `mv`, etc.) | Direct and fast |
|
|
16
16
|
| Screenshots | `computer_use_screenshot` | Returns base64 image |
|
|
17
|
-
| Clipboard | `pbcopy
|
|
17
|
+
| Clipboard | macOS: `pbcopy`/`pbpaste`, Windows: `Set-Clipboard`/`Get-Clipboard` | Great for pasting long text into apps |
|
|
18
18
|
|
|
19
19
|
## Playwright Browser Workflow
|
|
20
20
|
|
|
@@ -49,11 +49,11 @@ computer_use_type(text="Hello world", press_enter=True)
|
|
|
49
49
|
# Scroll
|
|
50
50
|
computer_use_scroll(target="the main content area", direction="down", amount=3)
|
|
51
51
|
|
|
52
|
-
# Key press
|
|
53
|
-
computer_use_key(key="cmd+v") # paste
|
|
52
|
+
# Key press (cmd/meta maps to Ctrl on Windows automatically)
|
|
53
|
+
computer_use_key(key="cmd+v") # paste (Ctrl+V on Windows)
|
|
54
54
|
computer_use_key(key="escape")
|
|
55
55
|
computer_use_key(key="return")
|
|
56
|
-
computer_use_key(key="cmd+tab") # switch apps
|
|
56
|
+
computer_use_key(key="cmd+tab") # switch apps (Alt+Tab on Windows — use alt+tab explicitly)
|
|
57
57
|
|
|
58
58
|
# Drag
|
|
59
59
|
computer_use_drag(from="source element", to="target element")
|
|
@@ -61,27 +61,37 @@ computer_use_drag(from="source element", to="target element")
|
|
|
61
61
|
|
|
62
62
|
## Pasting Long Text Into Desktop Apps
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
### macOS
|
|
65
65
|
```bash
|
|
66
66
|
echo -n "your long text here" | pbcopy
|
|
67
67
|
# Then in the app:
|
|
68
68
|
computer_use_key("cmd+v")
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
### Windows
|
|
72
|
+
```powershell
|
|
73
|
+
Set-Clipboard -Value "your long text here"
|
|
74
|
+
# Then in the app:
|
|
75
|
+
computer_use_key("ctrl+v")
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
For multiline text (macOS):
|
|
72
79
|
```bash
|
|
73
80
|
python3 -c "print('multiline\ntext\nhere', end='')" | pbcopy
|
|
74
81
|
```
|
|
75
82
|
|
|
76
83
|
## App Switching
|
|
77
84
|
|
|
85
|
+
### macOS
|
|
78
86
|
```bash
|
|
79
|
-
# Switch to specific app
|
|
80
87
|
computer_use_key("cmd+tab") # cycles through recent apps
|
|
81
|
-
|
|
82
|
-
# Or click app icon in dock
|
|
83
88
|
computer_use_click("the WeChat icon in the dock")
|
|
84
|
-
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Windows
|
|
92
|
+
```bash
|
|
93
|
+
computer_use_key("alt+tab") # cycles through recent apps
|
|
94
|
+
computer_use_click("the WeChat icon in the taskbar")
|
|
85
95
|
```
|
|
86
96
|
|
|
87
97
|
## Taking Screenshots
|
|
@@ -105,40 +115,47 @@ browser(headless=False, port=9222) # opens Chrome with CDP enabled
|
|
|
105
115
|
## File Operations Shortcuts
|
|
106
116
|
|
|
107
117
|
```bash
|
|
118
|
+
# macOS / Linux
|
|
108
119
|
/tmp/ # temporary files
|
|
109
120
|
~/screenshots/ # Playwright screenshots
|
|
110
|
-
~/scripts/ # custom scripts
|
|
111
|
-
/memories/ # agent memory files (via memory tool)
|
|
112
121
|
|
|
113
|
-
#
|
|
122
|
+
# Clipboard (macOS)
|
|
114
123
|
pbcopy < /tmp/transcript.txt
|
|
115
124
|
|
|
125
|
+
# Clipboard (Windows PowerShell)
|
|
126
|
+
Get-Content /tmp/transcript.txt | Set-Clipboard
|
|
127
|
+
|
|
116
128
|
# Check if a process is running
|
|
117
|
-
pgrep -x "FutuOpenD"
|
|
129
|
+
# macOS: pgrep -x "FutuOpenD"
|
|
130
|
+
# Windows: Get-Process -Name FutuOpenD -ErrorAction SilentlyContinue
|
|
118
131
|
|
|
119
132
|
# View running processes
|
|
120
133
|
pm2 list
|
|
121
134
|
```
|
|
122
135
|
|
|
123
|
-
##
|
|
136
|
+
## System Commands
|
|
124
137
|
|
|
138
|
+
### macOS
|
|
125
139
|
```bash
|
|
126
|
-
# System info
|
|
127
140
|
sw_vers # macOS version
|
|
128
141
|
uname -m # chip architecture (arm64 = Apple Silicon)
|
|
129
142
|
df -h / # disk space
|
|
130
|
-
|
|
131
|
-
# Network
|
|
132
143
|
curl -s https://api.ipify.org # public IP
|
|
144
|
+
open -a "WeChat" # open applications
|
|
145
|
+
```
|
|
133
146
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
147
|
+
### Windows
|
|
148
|
+
```powershell
|
|
149
|
+
[System.Environment]::OSVersion # Windows version
|
|
150
|
+
$env:PROCESSOR_ARCHITECTURE # CPU architecture
|
|
151
|
+
Get-PSDrive C | Select-Object Used,Free # disk space
|
|
152
|
+
Invoke-RestMethod https://api.ipify.org # public IP
|
|
153
|
+
Start-Process "WeChat" # open applications
|
|
137
154
|
```
|
|
138
155
|
|
|
139
156
|
## Notifications / Dialogs
|
|
140
157
|
|
|
141
|
-
When a
|
|
158
|
+
When a system dialog appears (permissions, alerts):
|
|
142
159
|
```python
|
|
143
160
|
browser_handle_dialog(accept=True) # for browser dialogs
|
|
144
161
|
# For system dialogs: use computer_use_click to click the button
|
|
@@ -8,7 +8,7 @@ This document describes how VisionClaw works and how the owner can interact with
|
|
|
8
8
|
|
|
9
9
|
## What is VisionClaw?
|
|
10
10
|
|
|
11
|
-
VisionClaw is a personal desktop agent that runs as a long-lived process on macOS. It owns and fully controls the computer it runs on — it can execute terminal commands, control GUI applications, browse the web, manage files, send emails, and more. It is powered by the Anthropic Claude Agent SDK.
|
|
11
|
+
VisionClaw is a personal desktop agent that runs as a long-lived process on macOS or Windows. It owns and fully controls the computer it runs on — it can execute terminal commands, control GUI applications, browse the web, manage files, send emails, and more. It is powered by the Anthropic Claude Agent SDK.
|
|
12
12
|
|
|
13
13
|
The agent has its own identity: a dedicated Gmail account (used for sending/receiving emails), a Google Calendar, a Google Drive, and accounts on platforms like WeChat and GitHub. It acts autonomously on behalf of its owner.
|
|
14
14
|
|
|
@@ -147,7 +147,7 @@ During heartbeat wakes (when there are no new messages), the agent doesn't just
|
|
|
147
147
|
|
|
148
148
|
## Remote Desktop Access
|
|
149
149
|
|
|
150
|
-
The agent's
|
|
150
|
+
The agent's machine can have remote desktop access configured. On macOS, this is typically **Chrome Remote Desktop**; on Windows, the built-in **Remote Desktop** (RDP) or Chrome Remote Desktop can be used. The owner can take direct control of the agent's desktop at any time.
|
|
151
151
|
|
|
152
152
|
### How to Connect
|
|
153
153
|
|
|
@@ -179,4 +179,4 @@ The agent's Mac has **Chrome Remote Desktop** installed and enabled. The owner c
|
|
|
179
179
|
5. **The agent remembers** — Important information is saved to memory. You don't need to repeat context across conversations.
|
|
180
180
|
6. **Schedule recurring tasks** — Ask the agent to create calendar events for tasks that should happen regularly.
|
|
181
181
|
7. **Send images** — Telegram supports sending photos, documents, and voice messages to the agent. It can process all of them.
|
|
182
|
-
8. **Use
|
|
182
|
+
8. **Use remote desktop for hands-on control** — Connect to the agent's machine directly when you need to see its screen or intervene manually.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/google-calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"google-calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/google-calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,EAAE,gBAAgB;IA8BpC;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,EACb,UAAU,SAAK,GACd,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IAYtC;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,IAAI,CAAC;QACZ,GAAG,EAAE,IAAI,CAAC;QACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC;IAsBrC;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,IAAI,CAAC;QACZ,GAAG,EAAE,IAAI,CAAC;QACV,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC,GACD,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC;IA6BpC;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjD;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,GACZ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CA6B7C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { google } from "googleapis";
|
|
2
2
|
import { loadGoogleTokens, saveGoogleTokens } from "../config/index.js";
|
|
3
|
+
import { resolveGoogleOAuthCredentials } from "../google/oauth-credentials.js";
|
|
3
4
|
/**
|
|
4
5
|
* Wrapper around Google Calendar API.
|
|
5
6
|
* Uses OAuth tokens from onboarding to read/write events on the agent's calendar.
|
|
@@ -10,7 +11,8 @@ export class GoogleCalendarClient {
|
|
|
10
11
|
constructor(config) {
|
|
11
12
|
this.config = config;
|
|
12
13
|
const tokens = loadGoogleTokens();
|
|
13
|
-
const
|
|
14
|
+
const { clientId, clientSecret } = resolveGoogleOAuthCredentials(config);
|
|
15
|
+
const oauth2Client = new google.auth.OAuth2(clientId, clientSecret);
|
|
14
16
|
oauth2Client.setCredentials({
|
|
15
17
|
access_token: tokens.access_token,
|
|
16
18
|
refresh_token: tokens.refresh_token,
|