open-agents-ai 0.187.147 → 0.187.148
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/dist/index.js +114 -14
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -255871,11 +255871,19 @@ ${devices.join("\n")}`, durationMs: performance.now() - start2 };
|
|
|
255871
255871
|
// =========================================================================
|
|
255872
255872
|
findFlipperDevice() {
|
|
255873
255873
|
try {
|
|
255874
|
-
const devs = execSync33("ls /dev/ttyACM* 2>/dev/null", { encoding: "utf8", timeout: 3e3 }).trim().split("\n");
|
|
255875
|
-
|
|
255874
|
+
const devs = execSync33("ls /dev/ttyACM* 2>/dev/null", { encoding: "utf8", timeout: 3e3 }).trim().split("\n").filter(Boolean);
|
|
255875
|
+
for (const dev of devs) {
|
|
255876
|
+
try {
|
|
255877
|
+
const udev = execSync33(`udevadm info --query=all --name=${dev} 2>/dev/null`, { encoding: "utf8", timeout: 3e3 });
|
|
255878
|
+
if (/flipper/i.test(udev) || udev.includes("0483") && udev.includes("5740")) {
|
|
255879
|
+
return dev;
|
|
255880
|
+
}
|
|
255881
|
+
} catch {
|
|
255882
|
+
}
|
|
255883
|
+
}
|
|
255876
255884
|
} catch {
|
|
255877
|
-
return null;
|
|
255878
255885
|
}
|
|
255886
|
+
return null;
|
|
255879
255887
|
}
|
|
255880
255888
|
/** Send a command to Flipper's serial CLI and capture output */
|
|
255881
255889
|
sendFlipperCommand(device, command, timeoutSec, start2, label) {
|
|
@@ -256447,13 +256455,65 @@ var init_gps_location = __esm({
|
|
|
256447
256455
|
"use strict";
|
|
256448
256456
|
init_system_auth();
|
|
256449
256457
|
GPS_USB_IDS = [
|
|
256450
|
-
|
|
256458
|
+
// ── GlobalSat / BU-series (SiRF Star IV, Prolific UART bridge) ──────────
|
|
256459
|
+
{ vid: "067b", pid: "2303", name: "BU-353N / BU-353S4 (Prolific PL2303)", baud: 4800, notes: "Most popular USB GPS puck" },
|
|
256451
256460
|
{ vid: "067b", pid: "23a3", name: "BU-353S4 (Prolific PL2303GT)", baud: 4800 },
|
|
256452
|
-
{ vid: "
|
|
256453
|
-
{ vid: "
|
|
256454
|
-
|
|
256455
|
-
{ vid: "
|
|
256456
|
-
{ vid: "
|
|
256461
|
+
{ vid: "067b", pid: "2304", name: "GlobalSat (Prolific PL2303HXD)", baud: 4800 },
|
|
256462
|
+
{ vid: "067b", pid: "aaa0", name: "GlobalSat (Prolific PL2303HX Rev A)", baud: 4800 },
|
|
256463
|
+
// ── U-blox GNSS family (direct USB — ACM devices) ──────────────────────
|
|
256464
|
+
{ vid: "1546", pid: "01a5", name: "U-blox 5 (LEA-5T)", baud: 9600 },
|
|
256465
|
+
{ vid: "1546", pid: "01a6", name: "U-blox 6 (NEO-6M)", baud: 9600, notes: "Very common maker GPS" },
|
|
256466
|
+
{ vid: "1546", pid: "01a7", name: "U-blox 7 (NEO-7M)", baud: 9600 },
|
|
256467
|
+
{ vid: "1546", pid: "01a8", name: "U-blox 8 (NEO-M8N/M8U)", baud: 9600, notes: "Multi-GNSS (GPS+GLONASS+Galileo+BeiDou)" },
|
|
256468
|
+
{ vid: "1546", pid: "01a9", name: "U-blox 9 (NEO-M9N/ZED-F9P)", baud: 38400, notes: "RTK-capable, multi-band" },
|
|
256469
|
+
{ vid: "1546", pid: "0502", name: "U-blox ZED-F9P (RTK)", baud: 38400, notes: "cm-level RTK GNSS" },
|
|
256470
|
+
{ vid: "1546", pid: "0503", name: "U-blox ZED-F9R (dead reckoning)", baud: 38400 },
|
|
256471
|
+
// ── Silicon Labs CP210x UART bridge (many GPS modules use these) ────────
|
|
256472
|
+
{ vid: "10c4", pid: "ea60", name: "GPS (SiLabs CP210x)", baud: 9600, notes: "Common UART bridge \u2014 many GPS modules" },
|
|
256473
|
+
{ vid: "10c4", pid: "ea61", name: "GPS (SiLabs CP2102)", baud: 9600 },
|
|
256474
|
+
{ vid: "10c4", pid: "ea63", name: "GPS (SiLabs CP2103)", baud: 9600 },
|
|
256475
|
+
{ vid: "10c4", pid: "ea70", name: "GPS (SiLabs CP2105 dual)", baud: 9600 },
|
|
256476
|
+
{ vid: "10c4", pid: "ea71", name: "GPS (SiLabs CP2108 quad)", baud: 9600 },
|
|
256477
|
+
// ── FTDI UART bridge (FT232R/FT2232 — used in many GPS devices) ────────
|
|
256478
|
+
{ vid: "0403", pid: "6001", name: "GPS (FTDI FT232R)", baud: 9600, notes: "Very common UART bridge" },
|
|
256479
|
+
{ vid: "0403", pid: "6010", name: "GPS (FTDI FT2232)", baud: 9600 },
|
|
256480
|
+
{ vid: "0403", pid: "6014", name: "GPS (FTDI FT232H)", baud: 9600 },
|
|
256481
|
+
{ vid: "0403", pid: "6015", name: "GPS (FTDI FT-X series)", baud: 9600 },
|
|
256482
|
+
// ── CH340/CH341 UART bridge (cheap Chinese GPS modules) ─────────────────
|
|
256483
|
+
{ vid: "1a86", pid: "7523", name: "GPS (CH340)", baud: 9600, notes: "Budget UART bridge" },
|
|
256484
|
+
{ vid: "1a86", pid: "5523", name: "GPS (CH341 serial)", baud: 9600 },
|
|
256485
|
+
{ vid: "1a86", pid: "55d4", name: "GPS (CH9102F)", baud: 9600, notes: "Newer CH340 variant" },
|
|
256486
|
+
// ── SiRF Star chipsets (direct USB) ─────────────────────────────────────
|
|
256487
|
+
{ vid: "0df7", pid: "0900", name: "SiRF Star III GPS", baud: 4800 },
|
|
256488
|
+
{ vid: "16d0", pid: "0acf", name: "SiRF Star IV GPS", baud: 4800 },
|
|
256489
|
+
// ── MediaTek MTK GPS chipsets ───────────────────────────────────────────
|
|
256490
|
+
{ vid: "0e8d", pid: "3329", name: "MediaTek MTK3329 GPS", baud: 9600 },
|
|
256491
|
+
{ vid: "0e8d", pid: "3339", name: "MediaTek MTK3339 GPS", baud: 9600, notes: "Adafruit Ultimate GPS" },
|
|
256492
|
+
// ── Garmin USB GPS receivers ────────────────────────────────────────────
|
|
256493
|
+
{ vid: "091e", pid: "0003", name: "Garmin GPS 18x USB", baud: 9600 },
|
|
256494
|
+
{ vid: "091e", pid: "0004", name: "Garmin GPS 18x PC", baud: 4800 },
|
|
256495
|
+
{ vid: "091e", pid: "2c84", name: "Garmin GLO / GLO 2", baud: 9600, notes: "Bluetooth+USB GPS" },
|
|
256496
|
+
// ── Marine / Aviation GPS ───────────────────────────────────────────────
|
|
256497
|
+
{ vid: "1163", pid: "0100", name: "Trimble GPS (Ace III)", baud: 4800, notes: "Survey-grade" },
|
|
256498
|
+
{ vid: "1163", pid: "0200", name: "Trimble GPS (AgGPS)", baud: 4800 },
|
|
256499
|
+
{ vid: "1199", pid: "9001", name: "Sierra Wireless GPS", baud: 9600, notes: "Cellular+GPS combo" },
|
|
256500
|
+
{ vid: "22b8", pid: "41c2", name: "Motorola Oncore GPS", baud: 9600 },
|
|
256501
|
+
// ── Quectel GNSS modules ────────────────────────────────────────────────
|
|
256502
|
+
{ vid: "2c7c", pid: "0901", name: "Quectel L76/L80 GPS", baud: 9600, notes: "Popular IoT GNSS" },
|
|
256503
|
+
{ vid: "2c7c", pid: "0306", name: "Quectel LC29H (RTK)", baud: 115200, notes: "Multi-band RTK" },
|
|
256504
|
+
// ── SparkFun / Adafruit / maker boards ──────────────────────────────────
|
|
256505
|
+
{ vid: "1b4f", pid: "0100", name: "SparkFun GPS-RTK (ZED-F9P)", baud: 38400 },
|
|
256506
|
+
{ vid: "239a", pid: "8011", name: "Adafruit GPS FeatherWing", baud: 9600 },
|
|
256507
|
+
{ vid: "2341", pid: "0043", name: "Arduino (GPS shield via Mega)", baud: 9600 },
|
|
256508
|
+
// ── Septentrio high-precision GNSS ──────────────────────────────────────
|
|
256509
|
+
{ vid: "152a", pid: "82a0", name: "Septentrio mosaic-X5", baud: 115200, notes: "Multi-frequency RTK" },
|
|
256510
|
+
// ── Broadcom / smartphone chipsets (USB tethering mode) ─────────────────
|
|
256511
|
+
{ vid: "04e8", pid: "6860", name: "Samsung Phone GPS (USB tether)", baud: 9600 },
|
|
256512
|
+
{ vid: "18d1", pid: "4ee1", name: "Google Pixel GPS (USB tether)", baud: 9600 },
|
|
256513
|
+
// ── Holux GPS receivers ─────────────────────────────────────────────────
|
|
256514
|
+
{ vid: "0df7", pid: "0900", name: "Holux M-215/GR-213", baud: 4800 },
|
|
256515
|
+
// ── Navilock / Delock GPS dongles ───────────────────────────────────────
|
|
256516
|
+
{ vid: "1546", pid: "01a4", name: "Navilock NL-442U (U-blox)", baud: 9600 }
|
|
256457
256517
|
];
|
|
256458
256518
|
GpsLocationTool = class {
|
|
256459
256519
|
name = "gps_location";
|
|
@@ -256829,34 +256889,74 @@ ${content.slice(0, 500)}`,
|
|
|
256829
256889
|
// =========================================================================
|
|
256830
256890
|
// Serial helpers
|
|
256831
256891
|
// =========================================================================
|
|
256832
|
-
/** Find the GPS serial device */
|
|
256892
|
+
/** Find the GPS serial device — checks USB IDs then probes for NMEA output */
|
|
256833
256893
|
findGpsSerial() {
|
|
256834
|
-
|
|
256894
|
+
const candidates = [
|
|
256895
|
+
"/dev/ttyUSB0",
|
|
256896
|
+
"/dev/ttyUSB1",
|
|
256897
|
+
"/dev/ttyUSB2",
|
|
256898
|
+
"/dev/ttyACM0",
|
|
256899
|
+
"/dev/ttyACM1",
|
|
256900
|
+
"/dev/ttyACM2"
|
|
256901
|
+
];
|
|
256902
|
+
for (const dev of candidates) {
|
|
256835
256903
|
if (!existsSync34(dev))
|
|
256836
256904
|
continue;
|
|
256837
256905
|
try {
|
|
256838
256906
|
const udev = execSync36(`udevadm info --query=all --name=${dev} 2>/dev/null`, { encoding: "utf8", timeout: 3e3 });
|
|
256839
256907
|
for (const gps of GPS_USB_IDS) {
|
|
256840
|
-
if (udev.toLowerCase().includes(gps.vid))
|
|
256908
|
+
if (udev.toLowerCase().includes(gps.vid) && udev.toLowerCase().includes(gps.pid))
|
|
256841
256909
|
return dev;
|
|
256842
256910
|
}
|
|
256843
|
-
if (/gps|gnss|
|
|
256911
|
+
if (/gps|gnss|sirf|ublox|u-blox|globalsat|garmin|trimble|quectel|septentrio/i.test(udev))
|
|
256844
256912
|
return dev;
|
|
256845
256913
|
} catch {
|
|
256846
256914
|
}
|
|
256847
256915
|
}
|
|
256916
|
+
for (const dev of candidates) {
|
|
256917
|
+
if (!existsSync34(dev))
|
|
256918
|
+
continue;
|
|
256919
|
+
if (this.probeNmea(dev))
|
|
256920
|
+
return dev;
|
|
256921
|
+
}
|
|
256848
256922
|
return null;
|
|
256849
256923
|
}
|
|
256850
|
-
/**
|
|
256924
|
+
/** Probe a serial device for NMEA output — tries multiple baud rates */
|
|
256925
|
+
probeNmea(device) {
|
|
256926
|
+
for (const baud of [9600, 4800, 38400, 115200]) {
|
|
256927
|
+
try {
|
|
256928
|
+
execSync36(`stty -F ${device} ${baud} raw -echo 2>/dev/null`, { timeout: 3e3, stdio: "pipe" });
|
|
256929
|
+
const data = execSync36(`timeout 2 cat ${device} 2>/dev/null || true`, { encoding: "utf8", timeout: 5e3 });
|
|
256930
|
+
if (/\$G[PNLA](GGA|RMC|GSV|GSA|GLL|VTG)/i.test(data))
|
|
256931
|
+
return true;
|
|
256932
|
+
} catch {
|
|
256933
|
+
}
|
|
256934
|
+
}
|
|
256935
|
+
return false;
|
|
256936
|
+
}
|
|
256937
|
+
/** Detect baud rate for GPS device — matches USB ID then auto-probes */
|
|
256851
256938
|
detectBaud(device) {
|
|
256852
256939
|
try {
|
|
256853
256940
|
const udev = execSync36(`udevadm info --query=all --name=${device} 2>/dev/null`, { encoding: "utf8", timeout: 3e3 });
|
|
256941
|
+
for (const gps of GPS_USB_IDS) {
|
|
256942
|
+
if (udev.toLowerCase().includes(gps.vid) && udev.toLowerCase().includes(gps.pid))
|
|
256943
|
+
return gps.baud;
|
|
256944
|
+
}
|
|
256854
256945
|
for (const gps of GPS_USB_IDS) {
|
|
256855
256946
|
if (udev.toLowerCase().includes(gps.vid))
|
|
256856
256947
|
return gps.baud;
|
|
256857
256948
|
}
|
|
256858
256949
|
} catch {
|
|
256859
256950
|
}
|
|
256951
|
+
for (const baud of [9600, 4800, 38400, 115200]) {
|
|
256952
|
+
try {
|
|
256953
|
+
execSync36(`stty -F ${device} ${baud} raw -echo 2>/dev/null`, { timeout: 3e3, stdio: "pipe" });
|
|
256954
|
+
const data = execSync36(`timeout 2 cat ${device} 2>/dev/null || true`, { encoding: "utf8", timeout: 5e3 });
|
|
256955
|
+
if (/\$G[PNLA]/i.test(data))
|
|
256956
|
+
return baud;
|
|
256957
|
+
} catch {
|
|
256958
|
+
}
|
|
256959
|
+
}
|
|
256860
256960
|
return 9600;
|
|
256861
256961
|
}
|
|
256862
256962
|
// =========================================================================
|
package/package.json
CHANGED