visionclaw 0.1.67 → 0.1.68

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 CHANGED
@@ -1,3 +1,7 @@
1
+ ## [0.1.68](https://github.com/babelcloud/visionclaw/compare/v0.1.67...v0.1.68) (2026-03-02)
2
+
3
+
4
+
1
5
  ## [0.1.67](https://github.com/babelcloud/visionclaw/compare/v0.1.66...v0.1.67) (2026-03-01)
2
6
 
3
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,GACvB,MAAM,CA6HR"}
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,GACvB,MAAM,CAoIR"}
@@ -27,7 +27,7 @@ ${ownerConfig.phoneNumber ? `- **Phone**: ${ownerConfig.phoneNumber}` : "- **Pho
27
27
  ${ownerConfig.ownerName ? `- **Name**: ${ownerConfig.ownerName}` : "- Owner name not configured"}
28
28
  ${ownerConfig.ownerEmail ? `- **Personal Email**: ${ownerConfig.ownerEmail}` : ""}
29
29
  ${ownerConfig.phoneNumber ? `- **Phone**: ${ownerConfig.phoneNumber}` : ""}
30
- ${ownerConfig.allowedTelegramChatIds.length > 0 ? `- **Telegram Chat IDs**: ${ownerConfig.allowedTelegramChatIds.join(", ")}` : ""}
30
+ ${ownerConfig.telegramChatId ? `- **Telegram Chat ID**: ${ownerConfig.telegramChatId}` : ""}
31
31
 
32
32
  All messages from enabled channels come from your owner (or people your owner has authorized). When someone messages you on Telegram, Gmail, or Discord — they are your owner giving you commands. Always respond helpfully and promptly.
33
33
 
@@ -44,6 +44,9 @@ ${channelList}
44
44
 
45
45
  When you need to communicate results, answer questions, or ask for help, use the \`notify_user\` tool. Always specify the \`channel\` and \`to\` parameters matching the originating message — especially when messages arrive from multiple channels in the same wake cycle. If you omit them, the tool defaults to the owner's primary channel.
46
46
 
47
+ ### Chat Apps
48
+ The owner may config chat apps like WeChat, Feishu, WhatsApp...These apps are not direct messaging channels, but you can use the computer use tools to interact with them.
49
+
47
50
  ## Behavior
48
51
 
49
52
  ### Wake Cycle
@@ -111,12 +114,16 @@ For all web browser interactions, prefer the Playwright browser tools. They use
111
114
 
112
115
  Playwright saves screenshots and other output files to **~/screenshots**.
113
116
 
117
+ Even if you are using playwright to operate the browser, you should bring the browser window to the foreground.
118
+
114
119
  ### Desktop Interactions (Computer Use)
115
120
 
116
121
  For desktop applications and UI outside the browser, use the \`computer_use_*\` tools. They use AI-powered coordinate resolution — describe what you want to interact with in natural language.
117
122
 
118
123
  **Prefer Playwright browser tools** for all in-browser work. Use **computer_use_*** only for desktop apps, situations outside the browser, or as a fallback when Playwright can't do the job.
119
124
 
125
+ The computer use tools are very powerful, you can basically do anything on the computer using them. If direct tool call is not possible, you should use the computer use tools to interact with the computer.
126
+
120
127
  ## Memory Protocol
121
128
 
122
129
  IMPORTANT: ALWAYS VIEW YOUR MEMORY DIRECTORY BEFORE DOING ANYTHING ELSE.
@@ -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,WAAW,CAAC,SAAS,oHAAoH,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;;;cAGxL,WAAW,CAAC,SAAS;eACpB,MAAM,CAAC,KAAK;kDACuB,MAAM,CAAC,KAAK;EAC5D,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,6BAA6B;;;EAGnG,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,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;EAahI,WAAW;;;;;;;;;gCASmB,WAAW,CAAC,mBAAmB,GAAG,IAAI;;;;;;;;;;;;;;EAcpE,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;CAelC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDJ,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
+ {"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,WAAW,CAAC,SAAS,oHAAoH,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;;;cAGxL,WAAW,CAAC,SAAS;eACpB,MAAM,CAAC,KAAK;kDACuB,MAAM,CAAC,KAAK;EAC5D,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,6BAA6B;;;EAGnG,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;;;;;;;;;;;;;EAazF,WAAW;;;;;;;;;;;;gCAYmB,WAAW,CAAC,mBAAmB,GAAG,IAAI;;;;;;;;;;;;;;EAcpE,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;CAelC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDJ,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 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/obs/ui.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,IAAI,MAAM,CA43BxC"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/obs/ui.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,IAAI,MAAM,CAu3BxC"}
package/dist/obs/ui.js CHANGED
@@ -222,8 +222,9 @@ export function renderIndexHtml() {
222
222
  let filter = '';
223
223
  let expandAll = false;
224
224
  let rawMode = false;
225
+ let autoScroll = true;
226
+ let programmaticScroll = false;
225
227
  const rawLines = [];
226
- const scrollBuffer = [];
227
228
 
228
229
  function isNearBottom(el) {
229
230
  if (el.scrollHeight <= el.clientHeight) return true;
@@ -438,11 +439,10 @@ export function renderIndexHtml() {
438
439
  line.appendChild(msgCol);
439
440
  line.appendChild(actions);
440
441
 
441
- const shouldScroll = forceScroll || isNearBottom($logs);
442
+ const shouldScroll = forceScroll || autoScroll;
442
443
 
443
444
  $logs.appendChild(line);
444
445
 
445
- // Trim
446
446
  while ($logs.childElementCount > MAX) {
447
447
  $logs.removeChild($logs.firstChild);
448
448
  }
@@ -450,6 +450,7 @@ export function renderIndexHtml() {
450
450
  $count.textContent = String($logs.childElementCount);
451
451
 
452
452
  if (shouldScroll) {
453
+ programmaticScroll = true;
453
454
  $logs.scrollTop = $logs.scrollHeight;
454
455
  }
455
456
  }
@@ -472,11 +473,11 @@ export function renderIndexHtml() {
472
473
  });
473
474
 
474
475
  $logs.addEventListener('scroll', () => {
475
- if (isNearBottom($logs) && scrollBuffer.length > 0) {
476
- const pending = scrollBuffer.splice(0);
477
- for (const e of pending) addLine(e, true);
478
- $logs.scrollTop = $logs.scrollHeight;
476
+ if (programmaticScroll) {
477
+ programmaticScroll = false;
478
+ return;
479
479
  }
480
+ autoScroll = isNearBottom($logs);
480
481
  });
481
482
 
482
483
  $expandAll.addEventListener('click', () => {
@@ -502,7 +503,7 @@ export function renderIndexHtml() {
502
503
  $logs.textContent = '';
503
504
  $count.textContent = '0';
504
505
  rawLines.length = 0;
505
- scrollBuffer.length = 0;
506
+ autoScroll = true;
506
507
  $logsRaw.textContent = '';
507
508
  });
508
509
 
@@ -533,13 +534,7 @@ export function renderIndexHtml() {
533
534
  es.onmessage = (ev) => {
534
535
  try {
535
536
  const entry = JSON.parse(ev.data);
536
- const nearBottom = isNearBottom($logs);
537
- if (nearBottom) {
538
- addLine(entry, true);
539
- } else {
540
- scrollBuffer.push(entry);
541
- $count.textContent = String($logs.childElementCount) + '+' + scrollBuffer.length;
542
- }
537
+ addLine(entry);
543
538
  } catch {}
544
539
  };
545
540
 
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/obs/ui.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,oFAAoF;AACpF,MAAM,UAAU,eAAe;IAC7B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA03BD,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/obs/ui.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,oFAAoF;AACpF,MAAM,UAAU,eAAe;IAC7B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAq3BD,CAAC;AACT,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "visionclaw",
3
- "version": "0.1.67",
3
+ "version": "0.1.68",
4
4
  "description": "A personal assistant agent that runs on your desktop, receives commands from messaging channels, and executes tasks autonomously.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",