uwonbot 1.2.5 β†’ 1.2.6

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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/agent.js +26 -10
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uwonbot",
3
- "version": "1.2.5",
3
+ "version": "1.2.6",
4
4
  "description": "Uwonbot AI Assistant CLI β€” Your AI controls your computer",
5
5
  "main": "src/index.js",
6
6
  "bin": {
package/src/agent.js CHANGED
@@ -585,6 +585,16 @@ async function handleCommand(msg) {
585
585
  const wl = await windowList();
586
586
  return { ok: true, windows: wl };
587
587
  }
588
+ case 'open_url': {
589
+ const url = cmd.url;
590
+ if (!url) return { ok: false, error: 'No URL provided' };
591
+ try {
592
+ if (platform === 'darwin') await execAsync(`open "${url}"`);
593
+ else if (platform === 'win32') await execAsync(`start "" "${url}"`);
594
+ else await execAsync(`xdg-open "${url}"`);
595
+ return { ok: true };
596
+ } catch (e) { return { ok: false, error: e.message }; }
597
+ }
588
598
  case 'ping':
589
599
  return { ok: true, pong: true };
590
600
  default:
@@ -706,10 +716,22 @@ export async function startAgent(port = 9876, options = {}) {
706
716
  } catch {}
707
717
  console.log('');
708
718
 
719
+ let _assistantOpen = false;
720
+ let _clapCooldown = false;
721
+
709
722
  if (!options.noMic) {
710
723
  await ensureSox();
711
724
  const clapListener = new ClapListener(async () => {
725
+ if (_assistantOpen) {
726
+ console.log(chalk.gray(' πŸ‘ λ°•μˆ˜ 감지 β€” 이미 λΉ„μ„œκ°€ ν™œμ„± μƒνƒœμž…λ‹ˆλ‹€.'));
727
+ return;
728
+ }
729
+ if (_clapCooldown) return;
730
+ _clapCooldown = true;
731
+ setTimeout(() => { _clapCooldown = false; }, 5000);
732
+
712
733
  console.log(chalk.bold.cyan(' πŸ‘ λ°•μˆ˜ 감지! λΉ„μ„œ ν™œμ„±ν™” 쀑...'));
734
+ _assistantOpen = true;
713
735
 
714
736
  if (userAssistants.length === 0) {
715
737
  console.log(chalk.gray(' β†’ κΈ°λ³Έ Uwonbot μ›Ή μ‹€ν–‰'));
@@ -725,16 +747,9 @@ export async function startAgent(port = 9876, options = {}) {
725
747
  return;
726
748
  }
727
749
 
728
- if (userAssistants.length === 1) {
729
- const a = userAssistants[0];
730
- console.log(chalk.green(` β†’ ${a.name} μ›Ή μ‹€ν–‰`));
731
- await openWebAssistant(a.id);
732
- return;
733
- }
734
-
735
- const first = userAssistants[0];
736
- console.log(chalk.green(` β†’ ${first.name} μ›Ή μ‹€ν–‰ (λΉ„μ„œ ${userAssistants.length}개 쀑 첫 번째)`));
737
- await openWebAssistant(first.id);
750
+ const target = userAssistants[0];
751
+ console.log(chalk.green(` β†’ ${target.name} μ›Ή μ‹€ν–‰`));
752
+ await openWebAssistant(target.id);
738
753
  });
739
754
  await clapListener.start();
740
755
  console.log('');
@@ -757,6 +772,7 @@ export async function startAgent(port = 9876, options = {}) {
757
772
 
758
773
  ws.on('close', () => {
759
774
  console.log(chalk.yellow(' β—‹ Client disconnected'));
775
+ _assistantOpen = false;
760
776
  });
761
777
 
762
778
  ws.send(JSON.stringify({ type: 'welcome', agent: 'uwonbot', version: '1.1.2', uid }));