@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.
Files changed (136) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  3. package/README.md +280 -280
  4. package/README_CN.md +3 -3
  5. package/dist/ai-client.d.ts.map +1 -1
  6. package/dist/ai-client.js +84 -82
  7. package/dist/ai-client.js.map +1 -1
  8. package/dist/auth.d.ts +0 -1
  9. package/dist/auth.d.ts.map +1 -1
  10. package/dist/auth.js +75 -105
  11. package/dist/auth.js.map +1 -1
  12. package/dist/cli.js +166 -13
  13. package/dist/cli.js.map +1 -1
  14. package/dist/config.d.ts +3 -1
  15. package/dist/config.d.ts.map +1 -1
  16. package/dist/config.js +48 -7
  17. package/dist/config.js.map +1 -1
  18. package/dist/context-compressor.d.ts +5 -5
  19. package/dist/context-compressor.js +8 -8
  20. package/dist/context-compressor.js.map +1 -1
  21. package/dist/gui-subagent/action-parser/actionParser.d.ts +7 -0
  22. package/dist/gui-subagent/action-parser/actionParser.d.ts.map +1 -1
  23. package/dist/gui-subagent/action-parser/actionParser.js +6 -3
  24. package/dist/gui-subagent/action-parser/actionParser.js.map +1 -1
  25. package/dist/gui-subagent/action-parser/constants.d.ts +6 -0
  26. package/dist/gui-subagent/action-parser/constants.d.ts.map +1 -1
  27. package/dist/gui-subagent/action-parser/constants.js +5 -3
  28. package/dist/gui-subagent/action-parser/constants.js.map +1 -1
  29. package/dist/gui-subagent/action-parser/index.d.ts +6 -0
  30. package/dist/gui-subagent/action-parser/index.d.ts.map +1 -1
  31. package/dist/gui-subagent/action-parser/index.js +5 -3
  32. package/dist/gui-subagent/action-parser/index.js.map +1 -1
  33. package/dist/gui-subagent/action-parser/types.d.ts +4 -0
  34. package/dist/gui-subagent/action-parser/types.d.ts.map +1 -1
  35. package/dist/gui-subagent/action-parser/types.js +3 -3
  36. package/dist/gui-subagent/agent/gui-agent.d.ts +39 -0
  37. package/dist/gui-subagent/agent/gui-agent.d.ts.map +1 -1
  38. package/dist/gui-subagent/agent/gui-agent.js +164 -89
  39. package/dist/gui-subagent/agent/gui-agent.js.map +1 -1
  40. package/dist/gui-subagent/agent/index.d.ts +1 -1
  41. package/dist/gui-subagent/agent/index.d.ts.map +1 -1
  42. package/dist/gui-subagent/agent/index.js.map +1 -1
  43. package/dist/gui-subagent/index.d.ts +27 -1
  44. package/dist/gui-subagent/index.d.ts.map +1 -1
  45. package/dist/gui-subagent/index.js +6 -0
  46. package/dist/gui-subagent/index.js.map +1 -1
  47. package/dist/logger.js +1 -1
  48. package/dist/logger.js.map +1 -1
  49. package/dist/mcp.d.ts +1 -0
  50. package/dist/mcp.d.ts.map +1 -1
  51. package/dist/mcp.js +140 -29
  52. package/dist/mcp.js.map +1 -1
  53. package/dist/remote-ai-client.d.ts +111 -0
  54. package/dist/remote-ai-client.d.ts.map +1 -0
  55. package/dist/remote-ai-client.js +558 -0
  56. package/dist/remote-ai-client.js.map +1 -0
  57. package/dist/sdk-output-adapter.d.ts +232 -0
  58. package/dist/sdk-output-adapter.d.ts.map +1 -0
  59. package/dist/sdk-output-adapter.js +636 -0
  60. package/dist/sdk-output-adapter.js.map +1 -0
  61. package/dist/sdk-session-v2.d.ts +13 -0
  62. package/dist/sdk-session-v2.d.ts.map +1 -0
  63. package/dist/sdk-session-v2.js +46 -0
  64. package/dist/sdk-session-v2.js.map +1 -0
  65. package/dist/sdk-session.d.ts +13 -0
  66. package/dist/sdk-session.d.ts.map +1 -0
  67. package/dist/sdk-session.js +48 -0
  68. package/dist/sdk-session.js.map +1 -0
  69. package/dist/session-manager.js +3 -3
  70. package/dist/session-manager.js.map +1 -1
  71. package/dist/session.d.ts +46 -3
  72. package/dist/session.d.ts.map +1 -1
  73. package/dist/session.js +539 -104
  74. package/dist/session.js.map +1 -1
  75. package/dist/skill-invoker.d.ts +40 -4
  76. package/dist/skill-invoker.d.ts.map +1 -1
  77. package/dist/skill-invoker.js +310 -1184
  78. package/dist/skill-invoker.js.map +1 -1
  79. package/dist/skill-loader.d.ts +15 -1
  80. package/dist/skill-loader.d.ts.map +1 -1
  81. package/dist/skill-loader.js +49 -32
  82. package/dist/skill-loader.js.map +1 -1
  83. package/dist/slash-commands.d.ts +4 -2
  84. package/dist/slash-commands.d.ts.map +1 -1
  85. package/dist/slash-commands.js +149 -15
  86. package/dist/slash-commands.js.map +1 -1
  87. package/dist/smart-approval.d.ts +2 -1
  88. package/dist/smart-approval.d.ts.map +1 -1
  89. package/dist/smart-approval.js +29 -3
  90. package/dist/smart-approval.js.map +1 -1
  91. package/dist/system-prompt-generator.d.ts +4 -5
  92. package/dist/system-prompt-generator.d.ts.map +1 -1
  93. package/dist/system-prompt-generator.js +131 -81
  94. package/dist/system-prompt-generator.js.map +1 -1
  95. package/dist/tools.d.ts +17 -6
  96. package/dist/tools.d.ts.map +1 -1
  97. package/dist/tools.js +264 -211
  98. package/dist/tools.js.map +1 -1
  99. package/dist/types.d.ts +0 -1
  100. package/dist/types.d.ts.map +1 -1
  101. package/dist/types.js +0 -1
  102. package/dist/types.js.map +1 -1
  103. package/docs/architecture/mcp-integration-guide.md +194 -131
  104. package/docs/architecture/overview.md +169 -93
  105. package/docs/architecture/tool-system-design.md +56 -11
  106. package/docs/cli/commands.md +238 -189
  107. package/docs/smart-mode.md +281 -257
  108. package/docs/third-party-models.md +247 -256
  109. package/package.json +6 -2
  110. package/src/ai-client.ts +107 -105
  111. package/src/auth.ts +82 -116
  112. package/src/cancellation.ts +1 -1
  113. package/src/cli.ts +178 -13
  114. package/src/config.ts +57 -8
  115. package/src/context-compressor.ts +8 -8
  116. package/src/gui-subagent/action-parser/actionParser.ts +6 -3
  117. package/src/gui-subagent/action-parser/constants.ts +5 -3
  118. package/src/gui-subagent/action-parser/index.ts +5 -3
  119. package/src/gui-subagent/action-parser/types.ts +3 -3
  120. package/src/gui-subagent/agent/gui-agent.ts +210 -103
  121. package/src/gui-subagent/agent/index.ts +1 -1
  122. package/src/gui-subagent/index.ts +26 -2
  123. package/src/index.ts +18 -18
  124. package/src/logger.ts +1 -1
  125. package/src/mcp.ts +149 -30
  126. package/src/remote-ai-client.ts +671 -0
  127. package/src/session-manager.ts +3 -3
  128. package/src/session.ts +704 -156
  129. package/src/skill-invoker.ts +340 -1293
  130. package/src/skill-loader.ts +55 -34
  131. package/src/slash-commands.ts +165 -15
  132. package/src/smart-approval.ts +34 -3
  133. package/src/system-prompt-generator.ts +145 -88
  134. package/src/tools.ts +309 -224
  135. package/src/types.ts +0 -1
  136. 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":"AAIA,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
+ {"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
- * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
- * SPDX-License-Identifier: Apache-2.0
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":"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"}
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":"AAKA,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
+ {"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
- * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
- * SPDX-License-Identifier: Apache-2.0
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;;;GAGG;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
+ {"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":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
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
- * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
- * SPDX-License-Identifier: Apache-2.0
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;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
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,3 +1,7 @@
1
+ /**
2
+ * Type definitions for Action Parser
3
+ * Based on UI-TARS architecture (@ui-tars/sdk/core)
4
+ */
1
5
  export type Coords = [number, number] | [];
2
6
  export type ActionInputs = Partial<{
3
7
  content: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gui-subagent/action-parser/types.ts"],"names":[],"mappings":"AAKA,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
+ {"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
- * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
- * SPDX-License-Identifier: Apache-2.0
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
- * Call the model API with debug logging
642
+ * Extract image and prompt from messages for remote VLM calls
639
643
  */
640
- async callModelAPI(messages, screenContext) {
641
- const baseUrl = this.modelBaseUrl || process.env.MODEL_BASE_URL || 'https://api.openai.com/v1';
642
- const apiKey = this.modelApiKey || process.env.MODEL_API_KEY || '';
643
- const requestBody = {
644
- model: this.model,
645
- messages,
646
- max_tokens: 1024,
647
- temperature: 0.1,
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
- // Debug output for model input
650
- if (this.showAIDebugInfo) {
651
- console.log('\nโ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—');
652
- console.log('โ•‘ GUI MODEL REQUEST DEBUG โ•‘');
653
- console.log('โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•');
654
- console.log(`๐Ÿ“ฆ Model: ${this.model}`);
655
- console.log(`๐ŸŒ Base URL: ${baseUrl}`);
656
- console.log(`๐Ÿ’ฌ Messages: ${messages.length}`);
657
- // Show system prompt if present
658
- const systemMsg = messages.find((m) => m.role === 'system');
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 (systemContent.split('\n').length > 15) {
710
+ if (msg.content.split('\n').length > 20) {
671
711
  console.log('โ”‚ ... (truncated)');
672
712
  }
673
- console.log('โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜');
674
713
  }
675
- // Show conversation messages
676
- const roleColors = {
677
- user: '๐Ÿ‘ค USER',
678
- assistant: '๐Ÿค– ASSISTANT',
679
- };
680
- for (let i = 0; i < messages.length; i++) {
681
- const msg = messages[i];
682
- if (msg.role === 'system')
683
- continue;
684
- const roleLabel = roleColors[msg.role] || `โ— ${msg.role.toUpperCase()}`;
685
- console.log(`\nโ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”`);
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('\n๐Ÿ“ค Sending request to model API...\n');
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
- console.log('\nโ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—');
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
  */