@kvell007/embed-labs-cli 0.1.0-alpha.90 → 0.1.0-alpha.92
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/README.md +1 -1
- package/dist/embed-labs-mcp-bridge.mjs +4 -4
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -150,7 +150,7 @@ const tools = [
|
|
|
150
150
|
},
|
|
151
151
|
{
|
|
152
152
|
name: "dbt_rp2350_uart_write",
|
|
153
|
-
description: "Send text or HEX data over a configurable RP2350 UART channel,
|
|
153
|
+
description: "Send text or HEX data over a configurable RP2350 UART channel through the already-running RP2350 Monitor hardware bridge. This is a direct hardware-control operation: do not search the workspace, create Pico SDK/CMake projects, or write firmware source for UART test-data requests. Accepts uart_id such as uart1 and data/data_format aliases. For closed-loop capture, prefer dbt_rp2350_logic_capture with a UART stimulus instead of calling this separately. Requires approved=true.",
|
|
154
154
|
inputSchema: { type: "object", properties: { id: { type: "number" }, instance: { type: "number" }, uart_id: { type: "string", description: "Alias such as uart0 or uart1; normalized to instance." }, tx: { type: "number" }, rx: { type: "number" }, baud: { type: "number" }, text: { type: "string" }, hex: { type: "string" }, data: { type: "string", description: "Text or hex payload depending on data_format." }, data_format: { type: "string", description: "hex, text, string, utf8, or ascii." }, data_hex: { type: "string" }, line_ending: { type: "string" }, approved: { type: "boolean" }, approve: { type: "boolean" }, transport: { type: "string" }, local_device_id: { type: "string" }, monitor_bridge_url: { type: "string" }, serial_path: { type: "string" }, tcp: { type: "string" }, tcp_endpoint: { type: "string" }, host: { type: "string" }, port: { type: "number" }, timeout_ms: { type: "number" } } }
|
|
155
155
|
},
|
|
156
156
|
{
|
|
@@ -160,7 +160,7 @@ const tools = [
|
|
|
160
160
|
},
|
|
161
161
|
{
|
|
162
162
|
name: "dbt_rp2350_logic_capture",
|
|
163
|
-
description: "Capture a compact RP2350-Monitor logic-analyzer JSONL file and optionally generate UART/SPI/I2C stimulus in the same operation. Requires approved=true because it arms local hardware. For closed-loop validation, do not call uart/spi write separately; pass stimulus here. UART/SPI/I2C/GPIO/logic functions may be combined freely when their GPIO sets do not overlap; only overlapping pins conflict. Example UART loopback: UART1 GP8/GP9 wired to logic GP16/GP17. Supports USB serial or board LAN IP/TCP transport.",
|
|
163
|
+
description: "Capture a compact RP2350-Monitor logic-analyzer JSONL file and optionally generate UART/SPI/I2C stimulus in the same operation. This is the required entrypoint for requests like 'use UART1 to send test data and capture it with GP16/GP17': do not search the repo, create Pico SDK/CMake projects, or write firmware source. Requires approved=true because it arms local hardware. For closed-loop validation, do not call uart/spi write separately; pass stimulus here. UART/SPI/I2C/GPIO/logic functions may be combined freely when their GPIO sets do not overlap; only overlapping pins conflict. Example UART loopback: UART1 output GP8/GP9 wired to logic-analyzer inputs GP16/GP17, so call channels=[\"gpio16\",\"gpio17\"] and stimulus={\"action\":\"uart.write\",\"uart_id\":\"uart1\",\"tx\":8,\"rx\":9,...}. GP16/GP17 are analyzer inputs in that example, not UART1 output pins. Supports USB serial or board LAN IP/TCP transport.",
|
|
164
164
|
inputSchema: {
|
|
165
165
|
type: "object",
|
|
166
166
|
properties: {
|
|
@@ -725,7 +725,7 @@ const tools = [
|
|
|
725
725
|
},
|
|
726
726
|
{
|
|
727
727
|
name: "dbttool",
|
|
728
|
-
description: "Generic Embed Labs action router. Use this when a board/protocol-specific action is not visible as a top-level MCP tool. Action groups: catalog discovery (supported-boards, cloud-status, knowledge), generic board control (board-reboot, board-bootloader, image-flash/image-update), local environment (local-toolchain-list/install/uninstall/validate/current, local-compile, local-qt-smoke), RP2350 hardware control (rp2350-capabilities/status/gpio-read/gpio-write/uart-write/i2c-transfer/spi-transfer/logic-capture/logic-decode/wifi-manage/probe-debug/monitor-firmware-flash/initial-firmware-flash), TaishanPi workflows (taishanpi-qt-workflow, boot-logo-update, taishanpi-initial-image-flash), and task/artifact helpers. Server workspace and Docker build actions are disabled in the local-first product model.",
|
|
728
|
+
description: "Generic Embed Labs action router. Use this when a board/protocol-specific action is not visible as a top-level MCP tool. For RP2350/Pico Monitor hardware-control requests such as UART/SPI/I2C/GPIO test output, logic-analyzer capture, Wi-Fi, probe, or firmware flashing, call the matching rp2350-* action directly through this router; do not search the workspace, create Pico SDK/CMake projects, write main.c, scrape the monitor UI, or use shell serial/curl commands. For closed-loop protocol validation, call action=rp2350-logic-capture once with a stimulus object, then action=rp2350-logic-decode. Action groups: catalog discovery (supported-boards, cloud-status, knowledge), generic board control (board-reboot, board-bootloader, image-flash/image-update), local environment (local-toolchain-list/install/uninstall/validate/current, local-compile, local-qt-smoke), RP2350 hardware control (rp2350-capabilities/status/gpio-read/gpio-write/uart-write/i2c-transfer/spi-transfer/logic-capture/logic-decode/wifi-manage/probe-debug/monitor-firmware-flash/initial-firmware-flash), TaishanPi workflows (taishanpi-qt-workflow, boot-logo-update, taishanpi-initial-image-flash), and task/artifact helpers. Server workspace and Docker build actions are disabled in the local-first product model.",
|
|
729
729
|
inputSchema: {
|
|
730
730
|
type: "object",
|
|
731
731
|
required: ["action"],
|
|
@@ -1668,7 +1668,7 @@ function compactRp2350CapabilitiesResult(response) {
|
|
|
1668
1668
|
}),
|
|
1669
1669
|
example_loopback_profiles: Array.isArray(result.example_loopback_profiles) ? result.example_loopback_profiles : undefined,
|
|
1670
1670
|
unsupported: Array.isArray(result.unsupported) ? result.unsupported : undefined,
|
|
1671
|
-
guidance: "In the default compact MCP profile, call RP2350 actions through dbttool, for example action=rp2350-spi-transfer, rp2350-logic-capture, or rp2350-logic-decode with arguments_json. In full engineering profile these actions may also appear as dbt_rp2350_* tools. For closed-loop capture, put stimulus in the logic-capture action and decode with logic-decode. Do not search web pages or scrape the Monitor UI.",
|
|
1671
|
+
guidance: "In the default compact MCP profile, call RP2350 actions through dbttool, for example action=rp2350-spi-transfer, rp2350-logic-capture, or rp2350-logic-decode with arguments_json. In full engineering profile these actions may also appear as dbt_rp2350_* tools. For closed-loop capture, put stimulus in the logic-capture action and decode with logic-decode. Do not search the workspace, create Pico SDK/CMake projects, write firmware source, search web pages, or scrape the Monitor UI for RP2350 Monitor hardware-control requests.",
|
|
1672
1672
|
raw_omitted: true
|
|
1673
1673
|
});
|
|
1674
1674
|
}
|
package/dist/index.js
CHANGED
|
@@ -45,7 +45,7 @@ const LEGACY_CODEX_PLUGIN_NAMES = [
|
|
|
45
45
|
const LEGACY_CODEX_MARKETPLACE_NAMES = new Set(["embed-labs-plugins", "plugins", "Plugins", "deve"]);
|
|
46
46
|
const PLUGIN_INSTALL_USAGE = "Usage: embed plugin install <codex|opencode|trae|all> [--release-dir <dir>] [--release-url <url>] [--target <dir>] [--codex-target <dir>] [--opencode-target <dir>] [--trae-target <dir>] [--force] [--json]";
|
|
47
47
|
const PLUGIN_UPDATE_CHECK_USAGE = "Usage: embed plugin update check [--release-url <url>] [--target <dir>] [--codex-target <dir>] [--opencode-target <dir>] [--json]";
|
|
48
|
-
const PLUGIN_UPDATE_USAGE = "Usage: embed plugin update
|
|
48
|
+
const PLUGIN_UPDATE_USAGE = "Usage: embed plugin update [codex|opencode|trae|all] [--release-url <url>] [--target <dir>] [--codex-target <dir>] [--opencode-target <dir>] [--trae-target <dir>] [--json]";
|
|
49
49
|
const CLOUD_TASK_ARTIFACTS_USAGE = "Usage: embed cloud task artifacts <task_id> [--json]";
|
|
50
50
|
const CLOUD_TASK_EVIDENCE_USAGE = "Usage: embed cloud task evidence <task_id> [--json]";
|
|
51
51
|
const ARTIFACT_STATUS_USAGE = "Usage: embed artifact status <artifact_id> [--json]";
|
|
@@ -343,7 +343,7 @@ async function main(argv) {
|
|
|
343
343
|
const result = await pluginUpdateCheck(parsed);
|
|
344
344
|
return output(parsed, result, renderPluginUpdateCheck, result.ok ? 0 : 2);
|
|
345
345
|
}
|
|
346
|
-
if (["codex", "opencode", "trae", "all"].includes(parsed.command[2]
|
|
346
|
+
if (!parsed.command[2] || ["codex", "opencode", "trae", "all"].includes(parsed.command[2])) {
|
|
347
347
|
const result = await pluginUpdate(parsed);
|
|
348
348
|
return output(parsed, result, renderPluginInstall, result.ok ? 0 : 2);
|
|
349
349
|
}
|
|
@@ -2025,8 +2025,8 @@ async function pluginUpdate(parsed) {
|
|
|
2025
2025
|
if (unknownFlag) {
|
|
2026
2026
|
return fail("invalid_args", `Unknown flag --${unknownFlag}. ${PLUGIN_UPDATE_USAGE}`);
|
|
2027
2027
|
}
|
|
2028
|
-
const target = parsed.command[2];
|
|
2029
|
-
if (!
|
|
2028
|
+
const target = parsed.command[2] ?? "all";
|
|
2029
|
+
if (!["codex", "opencode", "trae", "all"].includes(target)) {
|
|
2030
2030
|
return fail("invalid_args", PLUGIN_UPDATE_USAGE);
|
|
2031
2031
|
}
|
|
2032
2032
|
const unexpected = parsed.command.slice(3);
|
|
@@ -8792,7 +8792,7 @@ Install local AI client plugins explicitly:
|
|
|
8792
8792
|
embedlabs plugin install opencode
|
|
8793
8793
|
embedlabs plugin install trae
|
|
8794
8794
|
embedlabs plugin update check
|
|
8795
|
-
embedlabs plugin update
|
|
8795
|
+
embedlabs plugin update
|
|
8796
8796
|
|
|
8797
8797
|
For Trae, restart Trae after install. The installer writes mcp.json and a local
|
|
8798
8798
|
Gallery cache entry so the Embed Labs MCP icon can appear in Trae builds that
|
|
@@ -8863,7 +8863,7 @@ Usage:
|
|
|
8863
8863
|
embed plugin list [--release-dir <dir>] [--release-url <url>] [--json]
|
|
8864
8864
|
embed plugin install <codex|opencode|trae|all> [--release-dir <dir>] [--release-url <url>] [--target <dir>] [--codex-target <dir>] [--opencode-target <dir>] [--trae-target <dir>] [--force] [--json]
|
|
8865
8865
|
embed plugin update check [--release-url <url>] [--target <dir>] [--codex-target <dir>] [--opencode-target <dir>] [--trae-target <dir>] [--json]
|
|
8866
|
-
embed plugin update
|
|
8866
|
+
embed plugin update [codex|opencode|trae|all] [--release-url <url>] [--target <dir>] [--codex-target <dir>] [--opencode-target <dir>] [--trae-target <dir>] [--json]
|
|
8867
8867
|
embed service modes [--json]
|
|
8868
8868
|
embed model list [--json]
|
|
8869
8869
|
embed model default [--json]
|