rird-ai 2.3.12 → 2.3.14

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 (3) hide show
  1. package/bin/rird +0 -0
  2. package/package.json +2 -12
  3. package/postinstall.mjs +93 -89
package/bin/rird CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rird-ai",
3
- "version": "2.3.12",
3
+ "version": "2.3.14",
4
4
  "description": "RIRD - Computer Use Agent for work automation",
5
5
  "bin": {
6
6
  "rird": "./bin/rird"
@@ -9,17 +9,7 @@
9
9
  "postinstall": "node ./postinstall.mjs"
10
10
  },
11
11
  "optionalDependencies": {
12
- "rird-darwin-arm64": "2.3.12",
13
- "rird-darwin-x64": "2.3.12",
14
- "rird-darwin-x64-baseline": "2.3.12",
15
- "rird-linux-arm64": "2.3.12",
16
- "rird-linux-arm64-musl": "2.3.12",
17
- "rird-linux-x64": "2.3.12",
18
- "rird-linux-x64-baseline": "2.3.12",
19
- "rird-linux-x64-baseline-musl": "2.3.12",
20
- "rird-linux-x64-musl": "2.3.12",
21
- "rird-windows-x64": "2.3.12",
22
- "rird-windows-x64-baseline": "2.3.12"
12
+ "rird-windows-x64": "2.3.14"
23
13
  },
24
14
  "repository": {
25
15
  "type": "git",
package/postinstall.mjs CHANGED
@@ -2,6 +2,10 @@
2
2
  /**
3
3
  * RIRD AI Browser Agent - Cross-platform Postinstall
4
4
  * Mirrors the install.sh setup for Windows/Mac/Linux
5
+ *
6
+ * Everyone gets BOTH MCPs automatically:
7
+ * 1. stealth-browser - Browser automation
8
+ * 2. computer-use - OS-specific desktop control
5
9
  */
6
10
 
7
11
  import fs from "fs"
@@ -21,9 +25,6 @@ const ENGINE_DIR = path.join(RIRD_HOME, "engine")
21
25
  const VENV_DIR = path.join(RIRD_HOME, "venv")
22
26
  const MCP_DIR = path.join(ENGINE_DIR, "stealth-browser-mcp")
23
27
 
24
- // Installation mode: A = Browser + Files, B = Full Computer Use
25
- const INSTALL_MODE = process.env.RIRD_MODE || "A"
26
-
27
28
  const isWindows = os.platform() === "win32"
28
29
  const isMac = os.platform() === "darwin"
29
30
  const isLinux = os.platform() === "linux"
@@ -309,6 +310,37 @@ function createConfig(pythonCmd) {
309
310
  log("Added stealth-browser MCP")
310
311
  }
311
312
 
313
+ // Add computer-use if missing (everyone gets it)
314
+ if (!existingConfig.mcp["computer-use"]) {
315
+ if (isWindows) {
316
+ existingConfig.mcp["computer-use"] = {
317
+ type: "local",
318
+ command: ["uvx", "windows-mcp"],
319
+ environment: {},
320
+ timeout: 30000,
321
+ enabled: true
322
+ }
323
+ } else if (isMac) {
324
+ existingConfig.mcp["computer-use"] = {
325
+ type: "local",
326
+ command: ["bun", "run", path.join(RIRD_HOME, "mcp", "automation-mcp", "index.ts"), "--stdio"],
327
+ environment: {},
328
+ timeout: 30000,
329
+ enabled: true
330
+ }
331
+ } else if (isLinux) {
332
+ existingConfig.mcp["computer-use"] = {
333
+ type: "local",
334
+ command: ["npx", "-y", "mcp-desktop-automation"],
335
+ environment: { DISPLAY: process.env.DISPLAY || ":0" },
336
+ timeout: 30000,
337
+ enabled: true
338
+ }
339
+ }
340
+ updated = true
341
+ log("Added computer-use MCP")
342
+ }
343
+
312
344
  if (updated) {
313
345
  fs.writeFileSync(configPath, JSON.stringify(existingConfig, null, 2))
314
346
  log("Config updated")
@@ -321,7 +353,7 @@ function createConfig(pythonCmd) {
321
353
  }
322
354
  }
323
355
 
324
- log(`Creating config (Mode ${INSTALL_MODE})...`)
356
+ log("Creating config...")
325
357
 
326
358
  const mcpConfig = {
327
359
  "stealth-browser": {
@@ -337,87 +369,61 @@ function createConfig(pythonCmd) {
337
369
  }
338
370
  }
339
371
 
340
- // Mode B: Add computer-use MCP
341
- if (INSTALL_MODE === "B") {
342
- if (isWindows) {
343
- mcpConfig["computer-use"] = {
344
- type: "local",
345
- command: ["uvx", "windows-mcp"],
346
- environment: {},
347
- timeout: 30000,
348
- enabled: true
349
- }
350
- } else if (isMac) {
351
- mcpConfig["computer-use"] = {
352
- type: "local",
353
- command: ["bun", "run", path.join(RIRD_HOME, "mcp", "automation-mcp", "index.ts"), "--stdio"],
354
- environment: {},
355
- timeout: 30000,
356
- enabled: true
357
- }
358
- } else if (isLinux) {
359
- mcpConfig["computer-use"] = {
360
- type: "local",
361
- command: ["npx", "-y", "mcp-desktop-automation"],
362
- environment: { DISPLAY: process.env.DISPLAY || ":0" },
363
- timeout: 30000,
364
- enabled: true
365
- }
372
+ // Add computer-use MCP for the OS (everyone gets it automatically)
373
+ if (isWindows) {
374
+ mcpConfig["computer-use"] = {
375
+ type: "local",
376
+ command: ["uvx", "windows-mcp"],
377
+ environment: {},
378
+ timeout: 30000,
379
+ enabled: true
380
+ }
381
+ } else if (isMac) {
382
+ mcpConfig["computer-use"] = {
383
+ type: "local",
384
+ command: ["bun", "run", path.join(RIRD_HOME, "mcp", "automation-mcp", "index.ts"), "--stdio"],
385
+ environment: {},
386
+ timeout: 30000,
387
+ enabled: true
388
+ }
389
+ } else if (isLinux) {
390
+ mcpConfig["computer-use"] = {
391
+ type: "local",
392
+ command: ["npx", "-y", "mcp-desktop-automation"],
393
+ environment: { DISPLAY: process.env.DISPLAY || ":0" },
394
+ timeout: 30000,
395
+ enabled: true
366
396
  }
367
397
  }
368
398
 
369
- const instructions = INSTALL_MODE === "B"
370
- ? [
371
- "=== RIRD AI - rird.ai ===",
372
- "I am your AI assistant that can browse the web and automate tasks.",
373
- "",
374
- "=== WHAT I CAN DO ===",
375
- "- Browse websites and interact with web pages",
376
- "- Fill out forms and click buttons",
377
- "- Extract data from websites",
378
- "- Read and write files on your computer",
379
- "- Control your mouse and keyboard",
380
- "- Launch and interact with desktop applications",
381
- "- Take screenshots and analyze what's on screen",
382
- "",
383
- "=== RESEARCH STRATEGY ===",
384
- "For ANY task that asks to 'find URLs', 'output URLs', 'list profiles', or 'get X items':",
385
- "1. ALWAYS START with web search - it is instant.",
386
- "2. Only fall back to Chrome if search fails or task requires interaction (login, forms).",
387
- "",
388
- "=== TOOL PRIORITY ===",
389
- "1. Web search: Use for finding URLs, profiles, and public info.",
390
- "2. Chrome browser: Use for interaction, scrolling, and map searching.",
391
- "3. Desktop control: Use for desktop applications when enabled.",
392
- "",
393
- "=== HOW I WORK ===",
394
- "1. WEB SEARCH: Finding URLs, quick facts, lists of companies or profiles",
395
- "2. CHROME BROWSER: Navigating, logging in, filling forms, extracting content",
396
- "3. DESKTOP CONTROL: Applications, mouse/keyboard automation, file operations"
397
- ]
398
- : [
399
- "=== RIRD AI - rird.ai ===",
400
- "I am your AI assistant that can browse the web and automate tasks.",
401
- "",
402
- "=== WHAT I CAN DO ===",
403
- "- Browse websites and interact with web pages",
404
- "- Fill out forms and click buttons",
405
- "- Extract data from websites",
406
- "- Read and write files on your computer",
407
- "",
408
- "=== RESEARCH STRATEGY ===",
409
- "For ANY task that asks to 'find URLs', 'output URLs', 'list profiles', or 'get X items':",
410
- "1. ALWAYS START with web search - it is instant.",
411
- "2. Only fall back to Chrome if search fails or task requires interaction (login, forms).",
412
- "",
413
- "=== TOOL PRIORITY ===",
414
- "1. Web search: Use for finding URLs, profiles, and public info.",
415
- "2. Chrome browser: Use for interaction, scrolling, and map searching.",
416
- "",
417
- "=== HOW I WORK ===",
418
- "1. WEB SEARCH: Finding URLs, quick facts, lists of companies or profiles",
419
- "2. CHROME BROWSER: Navigating, logging in, filling forms, extracting content"
420
- ]
399
+ const instructions = [
400
+ "=== RIRD AI - rird.ai ===",
401
+ "I am your AI assistant that can browse the web and automate tasks.",
402
+ "",
403
+ "=== WHAT I CAN DO ===",
404
+ "- Browse websites and interact with web pages",
405
+ "- Fill out forms and click buttons",
406
+ "- Extract data from websites",
407
+ "- Read and write files on your computer",
408
+ "- Control your mouse and keyboard",
409
+ "- Launch and interact with desktop applications",
410
+ "- Take screenshots and analyze what's on screen",
411
+ "",
412
+ "=== RESEARCH STRATEGY ===",
413
+ "For ANY task that asks to 'find URLs', 'output URLs', 'list profiles', or 'get X items':",
414
+ "1. ALWAYS START with web search - it is instant.",
415
+ "2. Only fall back to Chrome if search fails or task requires interaction (login, forms).",
416
+ "",
417
+ "=== TOOL PRIORITY ===",
418
+ "1. Web search: Use for finding URLs, profiles, and public info.",
419
+ "2. Chrome browser: Use for interaction, scrolling, and map searching.",
420
+ "3. Desktop control: Use for desktop applications when enabled.",
421
+ "",
422
+ "=== HOW I WORK ===",
423
+ "1. WEB SEARCH: Finding URLs, quick facts, lists of companies or profiles",
424
+ "2. CHROME BROWSER: Navigating, logging in, filling forms, extracting content",
425
+ "3. DESKTOP CONTROL: Applications, mouse/keyboard automation, file operations"
426
+ ]
421
427
 
422
428
  const config = {
423
429
  model: "rird/qwen3:8b",
@@ -491,10 +497,8 @@ function createConfig(pythonCmd) {
491
497
  log(`Config saved to ${configPath}`)
492
498
  }
493
499
 
494
- // Install computer-use MCP (Mode B)
500
+ // Install computer-use MCP (everyone gets it)
495
501
  function installComputerUseMcp() {
496
- if (INSTALL_MODE !== "B") return
497
-
498
502
  log("Installing computer-use MCP...")
499
503
 
500
504
  if (isWindows) {
@@ -567,7 +571,6 @@ function symlinkBinary(sourcePath, binaryName) {
567
571
  // Main
568
572
  async function main() {
569
573
  log("Setting up RIRD AI...")
570
- log(`Mode: ${INSTALL_MODE === "B" ? "Full Computer Use" : "Browser + Files"}`)
571
574
  log(`Platform: ${os.platform()}-${os.arch()}`)
572
575
 
573
576
  // Create directories
@@ -610,14 +613,15 @@ async function main() {
610
613
  log("")
611
614
  log("Setup complete!")
612
615
  log("")
616
+ log("Installed MCPs:")
617
+ log(" 1. stealth-browser - Browser automation")
618
+ log(" 2. computer-use - Desktop control")
619
+ log("")
613
620
  log("Next steps:")
614
621
  log(" 1. Get license at: rird.ai")
615
622
  log(" 2. Activate: rird activate YOUR_LICENSE_KEY")
616
623
  log(" 3. Run a task: rird \"go to google and search for AI\"")
617
624
  log("")
618
- if (INSTALL_MODE === "B") {
619
- log("Full computer use mode enabled!")
620
- }
621
625
  }
622
626
 
623
627
  try {