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.
- package/bin/rird +0 -0
- package/package.json +2 -12
- 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.
|
|
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-
|
|
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(
|
|
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
|
-
//
|
|
341
|
-
if (
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
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 =
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
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 (
|
|
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 {
|