@xagent-ai/cli 1.0.1 โ 1.1.0
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/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- package/README.md +280 -280
- package/README_CN.md +3 -3
- package/dist/ai-client.d.ts.map +1 -1
- package/dist/ai-client.js +84 -82
- package/dist/ai-client.js.map +1 -1
- package/dist/auth.d.ts +0 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +75 -105
- package/dist/auth.js.map +1 -1
- package/dist/cli.js +166 -13
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +3 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +48 -7
- package/dist/config.js.map +1 -1
- package/dist/context-compressor.d.ts +5 -5
- package/dist/context-compressor.js +8 -8
- package/dist/context-compressor.js.map +1 -1
- package/dist/gui-subagent/action-parser/actionParser.d.ts +7 -0
- package/dist/gui-subagent/action-parser/actionParser.d.ts.map +1 -1
- package/dist/gui-subagent/action-parser/actionParser.js +6 -3
- package/dist/gui-subagent/action-parser/actionParser.js.map +1 -1
- package/dist/gui-subagent/action-parser/constants.d.ts +6 -0
- package/dist/gui-subagent/action-parser/constants.d.ts.map +1 -1
- package/dist/gui-subagent/action-parser/constants.js +5 -3
- package/dist/gui-subagent/action-parser/constants.js.map +1 -1
- package/dist/gui-subagent/action-parser/index.d.ts +6 -0
- package/dist/gui-subagent/action-parser/index.d.ts.map +1 -1
- package/dist/gui-subagent/action-parser/index.js +5 -3
- package/dist/gui-subagent/action-parser/index.js.map +1 -1
- package/dist/gui-subagent/action-parser/types.d.ts +4 -0
- package/dist/gui-subagent/action-parser/types.d.ts.map +1 -1
- package/dist/gui-subagent/action-parser/types.js +3 -3
- package/dist/gui-subagent/agent/gui-agent.d.ts +39 -0
- package/dist/gui-subagent/agent/gui-agent.d.ts.map +1 -1
- package/dist/gui-subagent/agent/gui-agent.js +164 -89
- package/dist/gui-subagent/agent/gui-agent.js.map +1 -1
- package/dist/gui-subagent/agent/index.d.ts +1 -1
- package/dist/gui-subagent/agent/index.d.ts.map +1 -1
- package/dist/gui-subagent/agent/index.js.map +1 -1
- package/dist/gui-subagent/index.d.ts +27 -1
- package/dist/gui-subagent/index.d.ts.map +1 -1
- package/dist/gui-subagent/index.js +6 -0
- package/dist/gui-subagent/index.js.map +1 -1
- package/dist/logger.js +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/mcp.d.ts +1 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +140 -29
- package/dist/mcp.js.map +1 -1
- package/dist/remote-ai-client.d.ts +111 -0
- package/dist/remote-ai-client.d.ts.map +1 -0
- package/dist/remote-ai-client.js +558 -0
- package/dist/remote-ai-client.js.map +1 -0
- package/dist/sdk-output-adapter.d.ts +232 -0
- package/dist/sdk-output-adapter.d.ts.map +1 -0
- package/dist/sdk-output-adapter.js +636 -0
- package/dist/sdk-output-adapter.js.map +1 -0
- package/dist/sdk-session-v2.d.ts +13 -0
- package/dist/sdk-session-v2.d.ts.map +1 -0
- package/dist/sdk-session-v2.js +46 -0
- package/dist/sdk-session-v2.js.map +1 -0
- package/dist/sdk-session.d.ts +13 -0
- package/dist/sdk-session.d.ts.map +1 -0
- package/dist/sdk-session.js +48 -0
- package/dist/sdk-session.js.map +1 -0
- package/dist/session-manager.js +3 -3
- package/dist/session-manager.js.map +1 -1
- package/dist/session.d.ts +46 -3
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +539 -104
- package/dist/session.js.map +1 -1
- package/dist/skill-invoker.d.ts +40 -4
- package/dist/skill-invoker.d.ts.map +1 -1
- package/dist/skill-invoker.js +310 -1184
- package/dist/skill-invoker.js.map +1 -1
- package/dist/skill-loader.d.ts +15 -1
- package/dist/skill-loader.d.ts.map +1 -1
- package/dist/skill-loader.js +49 -32
- package/dist/skill-loader.js.map +1 -1
- package/dist/slash-commands.d.ts +4 -2
- package/dist/slash-commands.d.ts.map +1 -1
- package/dist/slash-commands.js +149 -15
- package/dist/slash-commands.js.map +1 -1
- package/dist/smart-approval.d.ts +2 -1
- package/dist/smart-approval.d.ts.map +1 -1
- package/dist/smart-approval.js +29 -3
- package/dist/smart-approval.js.map +1 -1
- package/dist/system-prompt-generator.d.ts +4 -5
- package/dist/system-prompt-generator.d.ts.map +1 -1
- package/dist/system-prompt-generator.js +131 -81
- package/dist/system-prompt-generator.js.map +1 -1
- package/dist/tools.d.ts +17 -6
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +264 -211
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/dist/types.js.map +1 -1
- package/docs/architecture/mcp-integration-guide.md +194 -131
- package/docs/architecture/overview.md +169 -93
- package/docs/architecture/tool-system-design.md +56 -11
- package/docs/cli/commands.md +238 -189
- package/docs/smart-mode.md +281 -257
- package/docs/third-party-models.md +247 -256
- package/package.json +6 -2
- package/src/ai-client.ts +107 -105
- package/src/auth.ts +82 -116
- package/src/cancellation.ts +1 -1
- package/src/cli.ts +178 -13
- package/src/config.ts +57 -8
- package/src/context-compressor.ts +8 -8
- package/src/gui-subagent/action-parser/actionParser.ts +6 -3
- package/src/gui-subagent/action-parser/constants.ts +5 -3
- package/src/gui-subagent/action-parser/index.ts +5 -3
- package/src/gui-subagent/action-parser/types.ts +3 -3
- package/src/gui-subagent/agent/gui-agent.ts +210 -103
- package/src/gui-subagent/agent/index.ts +1 -1
- package/src/gui-subagent/index.ts +26 -2
- package/src/index.ts +18 -18
- package/src/logger.ts +1 -1
- package/src/mcp.ts +149 -30
- package/src/remote-ai-client.ts +671 -0
- package/src/session-manager.ts +3 -3
- package/src/session.ts +704 -156
- package/src/skill-invoker.ts +340 -1293
- package/src/skill-loader.ts +55 -34
- package/src/slash-commands.ts +165 -15
- package/src/smart-approval.ts +34 -3
- package/src/system-prompt-generator.ts +145 -88
- package/src/tools.ts +309 -224
- package/src/types.ts +0 -1
- package/scripts/init-skills-path.js +0 -58
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action Parser for GUI SubAgent
|
|
3
|
+
* Parses UI-TARS model predictions into structured actions
|
|
4
|
+
*
|
|
5
|
+
* Based on UI-TARS architecture by @ui-tars/sdk
|
|
6
|
+
* @see https://github.com/DouyinFE/sabre
|
|
7
|
+
*/
|
|
1
8
|
import { PredictionParsed, UITarsModelVersion } from './types.js';
|
|
2
9
|
export declare function actionParser(params: {
|
|
3
10
|
prediction: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionParser.d.ts","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/actionParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"actionParser.d.ts","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/actionParser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAEL,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAsDpB,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B,GAAG;IACF,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B,CAgBA;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,CAAC,MAAM,EAAE,MAAM,CAAgB,EACxC,IAAI,GAAE,IAAI,GAAG,IAAW,EACxB,aAAa,CAAC,EAAE;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,EACD,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,GAAE,kBAA4C,GACrD,gBAAgB,EAAE,CAwJpB"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
1
|
+
/**
|
|
2
|
+
* Action Parser for GUI SubAgent
|
|
3
|
+
* Parses UI-TARS model predictions into structured actions
|
|
4
|
+
*
|
|
5
|
+
* Based on UI-TARS architecture by @ui-tars/sdk
|
|
6
|
+
* @see https://github.com/DouyinFE/sabre
|
|
4
7
|
*/
|
|
5
8
|
import { UITarsModelVersion, } from './types.js';
|
|
6
9
|
import { MAX_RATIO, IMAGE_FACTOR, MIN_PIXELS, MAX_PIXELS_V1_5, } from './constants.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionParser.js","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/actionParser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"actionParser.js","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/actionParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants for Action Parser
|
|
3
|
+
* Based on UI-TARS architecture (@ui-tars/sdk/core)
|
|
4
|
+
*
|
|
5
|
+
* Image processing and resize parameters
|
|
6
|
+
*/
|
|
1
7
|
export declare const IMAGE_FACTOR = 28;
|
|
2
8
|
export declare const DEFAULT_FACTOR = 1000;
|
|
3
9
|
export declare const MIN_PIXELS: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,eAAe,QAAqC,CAAC;AAClE,eAAO,MAAM,iBAAiB,QAAqC,CAAC;AACpE,eAAO,MAAM,eAAe,QAAsC,CAAC;AACnE,eAAO,MAAM,SAAS,MAAM,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
1
|
+
/**
|
|
2
|
+
* Constants for Action Parser
|
|
3
|
+
* Based on UI-TARS architecture (@ui-tars/sdk/core)
|
|
4
|
+
*
|
|
5
|
+
* Image processing and resize parameters
|
|
4
6
|
*/
|
|
5
7
|
export const IMAGE_FACTOR = 28;
|
|
6
8
|
export const DEFAULT_FACTOR = 1000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/constants.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,GAAG,YAAY,GAAG,YAAY,CAAC;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,CAAC;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,CAAC;AACpE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,GAAG,YAAY,GAAG,YAAY,CAAC;AACnE,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action Parser Module
|
|
3
|
+
* Based on UI-TARS architecture (@ui-tars/sdk)
|
|
4
|
+
*
|
|
5
|
+
* Exports action parsing functionality for gui-subagent
|
|
6
|
+
*/
|
|
1
7
|
export { actionParser } from './actionParser.js';
|
|
2
8
|
export type { PredictionParsed, ActionInputs, UITarsModelVersion } from './types.js';
|
|
3
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
1
|
+
/**
|
|
2
|
+
* Action Parser Module
|
|
3
|
+
* Based on UI-TARS architecture (@ui-tars/sdk)
|
|
4
|
+
*
|
|
5
|
+
* Exports action parsing functionality for gui-subagent
|
|
4
6
|
*/
|
|
5
7
|
export { actionParser } from './actionParser.js';
|
|
6
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,YAAY,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,kBAAkB;IAC5B,IAAI,QAAQ;IACZ,IAAI,QAAQ;IACZ,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;CAClC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Action Parser
|
|
3
|
+
* Based on UI-TARS architecture (@ui-tars/sdk/core)
|
|
4
4
|
*/
|
|
5
5
|
export var UITarsModelVersion;
|
|
6
6
|
(function (UITarsModelVersion) {
|
|
@@ -16,11 +16,30 @@ export declare enum GUIAgentStatus {
|
|
|
16
16
|
USER_STOPPED = "user_stopped",
|
|
17
17
|
CALL_USER = "call_user"
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Remote VLM Caller callback function type
|
|
21
|
+
* Inject this function externally to handle VLM calls, GUI Agent doesn't need to know VLM implementation details
|
|
22
|
+
* Receives full messages array (same as local mode) for consistent behavior
|
|
23
|
+
*/
|
|
24
|
+
export type RemoteVlmCaller = (messages: any[], systemPrompt: string) => Promise<string>;
|
|
19
25
|
export interface GUIAgentConfig<T extends Operator> {
|
|
20
26
|
operator: T;
|
|
21
27
|
model?: string;
|
|
22
28
|
modelBaseUrl?: string;
|
|
23
29
|
modelApiKey?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Externally injected VLM caller function
|
|
32
|
+
* If this function is provided, GUI Agent will use it to call VLM
|
|
33
|
+
* instead of directly calling modelBaseUrl/modelApiKey
|
|
34
|
+
* This allows GUI Agent to work with remote services without exposing any configuration
|
|
35
|
+
*/
|
|
36
|
+
remoteVlmCaller?: RemoteVlmCaller;
|
|
37
|
+
/**
|
|
38
|
+
* Whether to use local mode
|
|
39
|
+
* If true, use model/modelBaseUrl/modelApiKey for VLM calls
|
|
40
|
+
* If false, use remoteVlmCaller for remote VLM calls
|
|
41
|
+
*/
|
|
42
|
+
isLocalMode: boolean;
|
|
24
43
|
systemPrompt?: string;
|
|
25
44
|
loopIntervalInMs?: number;
|
|
26
45
|
maxLoopCount?: number;
|
|
@@ -76,6 +95,8 @@ export declare class GUIAgent<T extends Operator> {
|
|
|
76
95
|
private readonly model;
|
|
77
96
|
private readonly modelBaseUrl;
|
|
78
97
|
private readonly modelApiKey;
|
|
98
|
+
private readonly remoteVlmCaller?;
|
|
99
|
+
private readonly isLocalMode;
|
|
79
100
|
private readonly systemPrompt;
|
|
80
101
|
private readonly loopIntervalInMs;
|
|
81
102
|
private readonly maxLoopCount;
|
|
@@ -109,8 +130,26 @@ export declare class GUIAgent<T extends Operator> {
|
|
|
109
130
|
* Build messages for the model API
|
|
110
131
|
*/
|
|
111
132
|
private buildModelMessages;
|
|
133
|
+
/**
|
|
134
|
+
* Extract image and prompt from messages for remote VLM calls
|
|
135
|
+
*/
|
|
136
|
+
private extractImageAndPrompt;
|
|
137
|
+
/**
|
|
138
|
+
* Debug output for model request
|
|
139
|
+
*/
|
|
140
|
+
private debugRequest;
|
|
141
|
+
/**
|
|
142
|
+
* Debug output for model response
|
|
143
|
+
*/
|
|
144
|
+
private debugResponse;
|
|
145
|
+
/**
|
|
146
|
+
* Call local VLM API
|
|
147
|
+
*/
|
|
148
|
+
private callLocalVLM;
|
|
112
149
|
/**
|
|
113
150
|
* Call the model API with debug logging
|
|
151
|
+
* Local mode: use model/modelBaseUrl/modelApiKey directly
|
|
152
|
+
* Remote mode: use remoteVlmCaller for VLM calls (now with full messages for consistent behavior)
|
|
114
153
|
*/
|
|
115
154
|
private callModelAPI;
|
|
116
155
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gui-agent.d.ts","sourceRoot":"","sources":["../../../src/gui-subagent/agent/gui-agent.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gui-agent.d.ts","sourceRoot":"","sources":["../../../src/gui-subagent/agent/gui-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,8 @@ export class GUIAgent {
|
|
|
45
45
|
model;
|
|
46
46
|
modelBaseUrl;
|
|
47
47
|
modelApiKey;
|
|
48
|
+
remoteVlmCaller;
|
|
49
|
+
isLocalMode;
|
|
48
50
|
systemPrompt;
|
|
49
51
|
loopIntervalInMs;
|
|
50
52
|
maxLoopCount;
|
|
@@ -63,6 +65,8 @@ export class GUIAgent {
|
|
|
63
65
|
this.model = config.model || '';
|
|
64
66
|
this.modelBaseUrl = config.modelBaseUrl || '';
|
|
65
67
|
this.modelApiKey = config.modelApiKey || '';
|
|
68
|
+
this.remoteVlmCaller = config.remoteVlmCaller;
|
|
69
|
+
this.isLocalMode = config.isLocalMode;
|
|
66
70
|
this.loopIntervalInMs = config.loopIntervalInMs || 0;
|
|
67
71
|
this.maxLoopCount = config.maxLoopCount || MAX_LOOP_COUNT;
|
|
68
72
|
this.logger = config.logger || guiLogger;
|
|
@@ -342,7 +346,7 @@ finished(content='xxx') # Use escape characters \', \", and \n in content part t
|
|
|
342
346
|
try {
|
|
343
347
|
const modelResult = await asyncRetry(async (bail) => {
|
|
344
348
|
try {
|
|
345
|
-
const result = await this.callModelAPI(messages, screenContext);
|
|
349
|
+
const result = await this.callModelAPI(messages, screenContext, this.remoteVlmCaller);
|
|
346
350
|
return result;
|
|
347
351
|
}
|
|
348
352
|
catch (error) {
|
|
@@ -635,84 +639,141 @@ finished(content='xxx') # Use escape characters \', \", and \n in content part t
|
|
|
635
639
|
return messages;
|
|
636
640
|
}
|
|
637
641
|
/**
|
|
638
|
-
*
|
|
642
|
+
* Extract image and prompt from messages for remote VLM calls
|
|
639
643
|
*/
|
|
640
|
-
|
|
641
|
-
const
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
644
|
+
extractImageAndPrompt(messages) {
|
|
645
|
+
const lastUserMessage = messages[messages.length - 1];
|
|
646
|
+
let image = '';
|
|
647
|
+
let prompt = '';
|
|
648
|
+
if (lastUserMessage && Array.isArray(lastUserMessage.content)) {
|
|
649
|
+
const imageBlock = lastUserMessage.content.find((c) => c.type === 'image_url');
|
|
650
|
+
const textBlock = lastUserMessage.content.find((c) => c.type === 'text');
|
|
651
|
+
if (imageBlock) {
|
|
652
|
+
const imageUrl = imageBlock.image_url?.url || '';
|
|
653
|
+
if (imageUrl.startsWith('data:image')) {
|
|
654
|
+
image = imageUrl.split(',')[1] || '';
|
|
655
|
+
}
|
|
656
|
+
else {
|
|
657
|
+
image = imageUrl;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
prompt = textBlock?.text || '';
|
|
661
|
+
}
|
|
662
|
+
return { image, prompt };
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* Debug output for model request
|
|
666
|
+
*/
|
|
667
|
+
debugRequest(messages, remoteVlmCaller) {
|
|
668
|
+
console.log('\nโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
669
|
+
console.log('โ GUI MODEL REQUEST DEBUG โ');
|
|
670
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
671
|
+
console.log(`๐ฆ Model: ${remoteVlmCaller ? (remoteVlmCaller.info?.model || 'remote') : this.model}`);
|
|
672
|
+
console.log(`๐ Base URL: ${remoteVlmCaller ? (remoteVlmCaller.info?.baseUrl || 'remote') : (this.modelBaseUrl || process.env.MODEL_BASE_URL || 'https://api.openai.com/v1')}`);
|
|
673
|
+
console.log(`๐ฌ Messages: ${messages.length}`);
|
|
674
|
+
// Show system prompt if present
|
|
675
|
+
const systemMsg = messages.find((m) => m.role === 'system');
|
|
676
|
+
if (systemMsg) {
|
|
677
|
+
console.log('\nโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
678
|
+
console.log('โ ๐ซ SYSTEM โ');
|
|
679
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค');
|
|
680
|
+
const systemContent = typeof systemMsg.content === 'string'
|
|
681
|
+
? systemMsg.content
|
|
682
|
+
: JSON.stringify(systemMsg.content);
|
|
683
|
+
const lines = systemContent.split('\n').slice(0, 15);
|
|
684
|
+
for (const line of lines) {
|
|
685
|
+
console.log('โ ' + line.slice(0, 62));
|
|
686
|
+
}
|
|
687
|
+
if (systemContent.split('\n').length > 15) {
|
|
688
|
+
console.log('โ ... (truncated)');
|
|
689
|
+
}
|
|
690
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
691
|
+
}
|
|
692
|
+
// Show conversation messages
|
|
693
|
+
const roleColors = {
|
|
694
|
+
user: '๐ค USER',
|
|
695
|
+
assistant: '๐ค ASSISTANT',
|
|
648
696
|
};
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
console.log(
|
|
655
|
-
console.log(
|
|
656
|
-
console.log(
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
if (systemMsg) {
|
|
660
|
-
console.log('\nโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
661
|
-
console.log('โ ๐ซ SYSTEM โ');
|
|
662
|
-
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค');
|
|
663
|
-
const systemContent = typeof systemMsg.content === 'string'
|
|
664
|
-
? systemMsg.content
|
|
665
|
-
: JSON.stringify(systemMsg.content);
|
|
666
|
-
const lines = systemContent.split('\n').slice(0, 15);
|
|
697
|
+
for (let i = 0; i < messages.length; i++) {
|
|
698
|
+
const msg = messages[i];
|
|
699
|
+
if (msg.role === 'system')
|
|
700
|
+
continue;
|
|
701
|
+
const roleLabel = roleColors[msg.role] || `โ ${msg.role.toUpperCase()}`;
|
|
702
|
+
console.log(`\nโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ`);
|
|
703
|
+
console.log(`โ ${roleLabel} (${i + 1}) โ`);
|
|
704
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค');
|
|
705
|
+
if (typeof msg.content === 'string') {
|
|
706
|
+
const lines = msg.content.split('\n').slice(0, 20);
|
|
667
707
|
for (const line of lines) {
|
|
668
708
|
console.log('โ ' + line.slice(0, 62));
|
|
669
709
|
}
|
|
670
|
-
if (
|
|
710
|
+
if (msg.content.split('\n').length > 20) {
|
|
671
711
|
console.log('โ ... (truncated)');
|
|
672
712
|
}
|
|
673
|
-
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
674
713
|
}
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
console.log(`โ ${roleLabel} (${i + 1}) โ`);
|
|
687
|
-
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค');
|
|
688
|
-
if (typeof msg.content === 'string') {
|
|
689
|
-
const lines = msg.content.split('\n').slice(0, 20);
|
|
714
|
+
else if (Array.isArray(msg.content)) {
|
|
715
|
+
const hasImage = msg.content.some((c) => c.type === 'image_url');
|
|
716
|
+
console.log('โ ๐ Content blocks: ' + msg.content.length);
|
|
717
|
+
if (hasImage) {
|
|
718
|
+
const imageBlock = msg.content.find((c) => c.type === 'image_url');
|
|
719
|
+
const imageSize = imageBlock?.image_url?.url?.length || 0;
|
|
720
|
+
console.log('โ ๐ผ๏ธ Image size: ' + (imageSize / 1024).toFixed(2) + ' KB');
|
|
721
|
+
}
|
|
722
|
+
const textBlock = msg.content.find((c) => c.type === 'text');
|
|
723
|
+
if (textBlock?.text) {
|
|
724
|
+
const lines = textBlock.text.split('\n').slice(0, 10);
|
|
690
725
|
for (const line of lines) {
|
|
691
726
|
console.log('โ ' + line.slice(0, 62));
|
|
692
727
|
}
|
|
693
|
-
if (msg.content.split('\n').length > 20) {
|
|
694
|
-
console.log('โ ... (truncated)');
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
else if (Array.isArray(msg.content)) {
|
|
698
|
-
const hasImage = msg.content.some((c) => c.type === 'image_url');
|
|
699
|
-
console.log('โ ๐ Content blocks: ' + msg.content.length);
|
|
700
|
-
if (hasImage) {
|
|
701
|
-
const imageBlock = msg.content.find((c) => c.type === 'image_url');
|
|
702
|
-
const imageSize = imageBlock?.image_url?.url?.length || 0;
|
|
703
|
-
console.log('โ ๐ผ๏ธ Image size: ' + (imageSize / 1024).toFixed(2) + ' KB');
|
|
704
|
-
}
|
|
705
|
-
const textBlock = msg.content.find((c) => c.type === 'text');
|
|
706
|
-
if (textBlock?.text) {
|
|
707
|
-
const lines = textBlock.text.split('\n').slice(0, 10);
|
|
708
|
-
for (const line of lines) {
|
|
709
|
-
console.log('โ ' + line.slice(0, 62));
|
|
710
|
-
}
|
|
711
|
-
}
|
|
712
728
|
}
|
|
713
|
-
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
714
729
|
}
|
|
715
|
-
console.log('
|
|
730
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
731
|
+
}
|
|
732
|
+
console.log('\n๐ค Sending request to model API...\n');
|
|
733
|
+
}
|
|
734
|
+
/**
|
|
735
|
+
* Debug output for model response
|
|
736
|
+
*/
|
|
737
|
+
debugResponse(content, usage) {
|
|
738
|
+
console.log('\nโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
739
|
+
console.log('โ GUI MODEL RESPONSE DEBUG โ');
|
|
740
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
741
|
+
if (usage) {
|
|
742
|
+
console.log(`๐ Tokens: ${usage.prompt_tokens} (prompt) + ${usage.completion_tokens} (completion) = ${usage.total_tokens} (total)`);
|
|
743
|
+
}
|
|
744
|
+
console.log('\nโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
745
|
+
console.log('โ ๐ค ASSISTANT โ');
|
|
746
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค');
|
|
747
|
+
console.log('โ ๐ฌ CONTENT:');
|
|
748
|
+
console.log('โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
749
|
+
const lines = content.split('\n').slice(0, 30);
|
|
750
|
+
for (const line of lines) {
|
|
751
|
+
console.log('โ ' + line.slice(0, 62));
|
|
752
|
+
}
|
|
753
|
+
if (content.split('\n').length > 30) {
|
|
754
|
+
console.log(`โ ... (${content.split('\n').length - 30} more lines)`);
|
|
755
|
+
}
|
|
756
|
+
console.log('โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
757
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
758
|
+
console.log('\nโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
759
|
+
console.log('โ RESPONSE ENDED โ');
|
|
760
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n');
|
|
761
|
+
}
|
|
762
|
+
/**
|
|
763
|
+
* Call local VLM API
|
|
764
|
+
*/
|
|
765
|
+
async callLocalVLM(messages, screenContext) {
|
|
766
|
+
const baseUrl = this.modelBaseUrl || process.env.MODEL_BASE_URL || 'https://api.openai.com/v1';
|
|
767
|
+
const apiKey = this.modelApiKey || process.env.MODEL_API_KEY || '';
|
|
768
|
+
const requestBody = {
|
|
769
|
+
model: this.model,
|
|
770
|
+
messages,
|
|
771
|
+
max_tokens: 1024,
|
|
772
|
+
temperature: 0.1,
|
|
773
|
+
};
|
|
774
|
+
// Debug output for model input
|
|
775
|
+
if (this.showAIDebugInfo) {
|
|
776
|
+
this.debugRequest(messages);
|
|
716
777
|
}
|
|
717
778
|
let response;
|
|
718
779
|
try {
|
|
@@ -738,29 +799,7 @@ finished(content='xxx') # Use escape characters \', \", and \n in content part t
|
|
|
738
799
|
const content = result.choices?.[0]?.message?.content || '';
|
|
739
800
|
// Debug output for model response
|
|
740
801
|
if (this.showAIDebugInfo) {
|
|
741
|
-
|
|
742
|
-
console.log('โ GUI MODEL RESPONSE DEBUG โ');
|
|
743
|
-
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
744
|
-
if (result.usage) {
|
|
745
|
-
console.log(`๐ Tokens: ${result.usage.prompt_tokens} (prompt) + ${result.usage.completion_tokens} (completion) = ${result.usage.total_tokens} (total)`);
|
|
746
|
-
}
|
|
747
|
-
console.log('\nโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
748
|
-
console.log('โ ๐ค ASSISTANT โ');
|
|
749
|
-
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค');
|
|
750
|
-
console.log('โ ๐ฌ CONTENT:');
|
|
751
|
-
console.log('โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
752
|
-
const lines = content.split('\n').slice(0, 30);
|
|
753
|
-
for (const line of lines) {
|
|
754
|
-
console.log('โ ' + line.slice(0, 62));
|
|
755
|
-
}
|
|
756
|
-
if (content.split('\n').length > 30) {
|
|
757
|
-
console.log(`โ ... (${content.split('\n').length - 30} more lines)`);
|
|
758
|
-
}
|
|
759
|
-
console.log('โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
760
|
-
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
761
|
-
console.log('\nโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
762
|
-
console.log('โ RESPONSE ENDED โ');
|
|
763
|
-
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n');
|
|
802
|
+
this.debugResponse(content, result.usage);
|
|
764
803
|
}
|
|
765
804
|
const { parsed: parsedPredictions } = actionParser({
|
|
766
805
|
prediction: content,
|
|
@@ -775,6 +814,42 @@ finished(content='xxx') # Use escape characters \', \", and \n in content part t
|
|
|
775
814
|
parsedPredictions,
|
|
776
815
|
};
|
|
777
816
|
}
|
|
817
|
+
/**
|
|
818
|
+
* Call the model API with debug logging
|
|
819
|
+
* Local mode: use model/modelBaseUrl/modelApiKey directly
|
|
820
|
+
* Remote mode: use remoteVlmCaller for VLM calls (now with full messages for consistent behavior)
|
|
821
|
+
*/
|
|
822
|
+
async callModelAPI(messages, screenContext, remoteVlmCaller) {
|
|
823
|
+
// === LOCAL ๆจกๅผ ===
|
|
824
|
+
if (this.isLocalMode) {
|
|
825
|
+
return this.callLocalVLM(messages, screenContext);
|
|
826
|
+
}
|
|
827
|
+
// === REMOTE ๆจกๅผ ===
|
|
828
|
+
else {
|
|
829
|
+
// Debug output for model input
|
|
830
|
+
if (this.showAIDebugInfo) {
|
|
831
|
+
this.debugRequest(messages, remoteVlmCaller);
|
|
832
|
+
}
|
|
833
|
+
// Use externally injected VLM caller function with full messages (same as local mode)
|
|
834
|
+
const prediction = await remoteVlmCaller(messages, this.systemPrompt);
|
|
835
|
+
// Debug output for model response
|
|
836
|
+
if (this.showAIDebugInfo) {
|
|
837
|
+
this.debugResponse(prediction);
|
|
838
|
+
}
|
|
839
|
+
const { parsed: parsedPredictions } = actionParser({
|
|
840
|
+
prediction,
|
|
841
|
+
factor: [1000, 1000],
|
|
842
|
+
screenContext: {
|
|
843
|
+
width: screenContext.width,
|
|
844
|
+
height: screenContext.height,
|
|
845
|
+
},
|
|
846
|
+
});
|
|
847
|
+
return {
|
|
848
|
+
prediction,
|
|
849
|
+
parsedPredictions,
|
|
850
|
+
};
|
|
851
|
+
}
|
|
852
|
+
}
|
|
778
853
|
/**
|
|
779
854
|
* Get summary from prediction text
|
|
780
855
|
*/
|