firmwareloop 0.0.10__tar.gz → 0.0.11__tar.gz
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.
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/PKG-INFO +12 -4
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/README.md +11 -3
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/firmwareloop.egg-info/PKG-INFO +12 -4
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/pyproject.toml +1 -1
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/__init__.py +1 -1
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/common/fw.psm1 +13 -5
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/fw_mcp_server.py +6 -6
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/setup-agent-mcp.ps1 +40 -27
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/LICENSE +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/firmwareloop.egg-info/SOURCES.txt +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/firmwareloop.egg-info/dependency_links.txt +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/firmwareloop.egg-info/entry_points.txt +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/firmwareloop.egg-info/requires.txt +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/firmwareloop.egg-info/top_level.txt +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/setup.cfg +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/acceptance-scenario.ps1 +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/build.ps1 +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/can.ps1 +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/check-qoder-mcp.ps1 +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/common/build-backends.psm1 +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/common/uart_probe.py +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/doctor.ps1 +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/flash.ps1 +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/instrument_cli.py +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/lib/__init__.py +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/lib/instruments.py +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/logic_capture.ps1 +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/logic_decode.ps1 +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/reset.ps1 +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/test-backends.ps1 +0 -0
- {firmwareloop-0.0.10 → firmwareloop-0.0.11}/tools/test.ps1 +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: firmwareloop
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.11
|
|
4
4
|
Summary: AI Agent Firmware Development and Lab Automation Platform (Dual-Tier MCP Server)
|
|
5
5
|
Author-email: WeilinZhang <19523330249@163.com>
|
|
6
6
|
License: MIT
|
|
@@ -243,7 +243,15 @@ claude mcp add agentic-hil -- "D:\Tools\FirmwareLoop\.venv\Scripts\agentic-hil.e
|
|
|
243
243
|
fwloop init
|
|
244
244
|
```
|
|
245
245
|
|
|
246
|
-
2.
|
|
246
|
+
2. 自动升级至 PyPI 最新版本(推荐以下任意一种方式):
|
|
247
|
+
```bash
|
|
248
|
+
uv tool upgrade firmwareloop
|
|
249
|
+
```
|
|
250
|
+
或者一键升级全部已安装工具:
|
|
251
|
+
```bash
|
|
252
|
+
uv tool upgrade --all
|
|
253
|
+
```
|
|
254
|
+
或者使用内置热更新命令:
|
|
247
255
|
```bash
|
|
248
256
|
fwloop update
|
|
249
257
|
```
|
|
@@ -328,7 +336,7 @@ claude mcp remove --scope user agentic-hil
|
|
|
328
336
|
├── demo-firmware/ 示例固件(CMake;宿主编译模拟 MCU,闭环验证载体)
|
|
329
337
|
├── demo-make/ 示例固件(Make;构建测试载体)
|
|
330
338
|
├── docs/ DEPENDENCY_MATRIX / REUSE_PLAN / V0.0.2_GAP_VERIFICATION
|
|
331
|
-
├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.0.
|
|
339
|
+
├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.0.11)
|
|
332
340
|
├── .mcp.example.json 双层 MCP 配置模板(firmwareloop + agentic-hil)
|
|
333
341
|
├── AGENTS.md 通用智能体规范(Antigravity / Qoder / Cursor 等)
|
|
334
342
|
├── CLAUDE.md Claude Code CLI 指南
|
|
@@ -338,7 +346,7 @@ claude mcp remove --scope user agentic-hil
|
|
|
338
346
|
|
|
339
347
|
---
|
|
340
348
|
|
|
341
|
-
## 能力验证状态(v0.0.
|
|
349
|
+
## 能力验证状态(v0.0.11)
|
|
342
350
|
|
|
343
351
|
> 状态定义:`Implemented`(已实现)/ `Simulator Validated`(模拟验证)/
|
|
344
352
|
> `Real Hardware Validated`(真机验证)/ `Experimental` / `Not Implemented`
|
|
@@ -215,7 +215,15 @@ claude mcp add agentic-hil -- "D:\Tools\FirmwareLoop\.venv\Scripts\agentic-hil.e
|
|
|
215
215
|
fwloop init
|
|
216
216
|
```
|
|
217
217
|
|
|
218
|
-
2.
|
|
218
|
+
2. 自动升级至 PyPI 最新版本(推荐以下任意一种方式):
|
|
219
|
+
```bash
|
|
220
|
+
uv tool upgrade firmwareloop
|
|
221
|
+
```
|
|
222
|
+
或者一键升级全部已安装工具:
|
|
223
|
+
```bash
|
|
224
|
+
uv tool upgrade --all
|
|
225
|
+
```
|
|
226
|
+
或者使用内置热更新命令:
|
|
219
227
|
```bash
|
|
220
228
|
fwloop update
|
|
221
229
|
```
|
|
@@ -300,7 +308,7 @@ claude mcp remove --scope user agentic-hil
|
|
|
300
308
|
├── demo-firmware/ 示例固件(CMake;宿主编译模拟 MCU,闭环验证载体)
|
|
301
309
|
├── demo-make/ 示例固件(Make;构建测试载体)
|
|
302
310
|
├── docs/ DEPENDENCY_MATRIX / REUSE_PLAN / V0.0.2_GAP_VERIFICATION
|
|
303
|
-
├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.0.
|
|
311
|
+
├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.0.11)
|
|
304
312
|
├── .mcp.example.json 双层 MCP 配置模板(firmwareloop + agentic-hil)
|
|
305
313
|
├── AGENTS.md 通用智能体规范(Antigravity / Qoder / Cursor 等)
|
|
306
314
|
├── CLAUDE.md Claude Code CLI 指南
|
|
@@ -310,7 +318,7 @@ claude mcp remove --scope user agentic-hil
|
|
|
310
318
|
|
|
311
319
|
---
|
|
312
320
|
|
|
313
|
-
## 能力验证状态(v0.0.
|
|
321
|
+
## 能力验证状态(v0.0.11)
|
|
314
322
|
|
|
315
323
|
> 状态定义:`Implemented`(已实现)/ `Simulator Validated`(模拟验证)/
|
|
316
324
|
> `Real Hardware Validated`(真机验证)/ `Experimental` / `Not Implemented`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: firmwareloop
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.11
|
|
4
4
|
Summary: AI Agent Firmware Development and Lab Automation Platform (Dual-Tier MCP Server)
|
|
5
5
|
Author-email: WeilinZhang <19523330249@163.com>
|
|
6
6
|
License: MIT
|
|
@@ -243,7 +243,15 @@ claude mcp add agentic-hil -- "D:\Tools\FirmwareLoop\.venv\Scripts\agentic-hil.e
|
|
|
243
243
|
fwloop init
|
|
244
244
|
```
|
|
245
245
|
|
|
246
|
-
2.
|
|
246
|
+
2. 自动升级至 PyPI 最新版本(推荐以下任意一种方式):
|
|
247
|
+
```bash
|
|
248
|
+
uv tool upgrade firmwareloop
|
|
249
|
+
```
|
|
250
|
+
或者一键升级全部已安装工具:
|
|
251
|
+
```bash
|
|
252
|
+
uv tool upgrade --all
|
|
253
|
+
```
|
|
254
|
+
或者使用内置热更新命令:
|
|
247
255
|
```bash
|
|
248
256
|
fwloop update
|
|
249
257
|
```
|
|
@@ -328,7 +336,7 @@ claude mcp remove --scope user agentic-hil
|
|
|
328
336
|
├── demo-firmware/ 示例固件(CMake;宿主编译模拟 MCU,闭环验证载体)
|
|
329
337
|
├── demo-make/ 示例固件(Make;构建测试载体)
|
|
330
338
|
├── docs/ DEPENDENCY_MATRIX / REUSE_PLAN / V0.0.2_GAP_VERIFICATION
|
|
331
|
-
├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.0.
|
|
339
|
+
├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.0.11)
|
|
332
340
|
├── .mcp.example.json 双层 MCP 配置模板(firmwareloop + agentic-hil)
|
|
333
341
|
├── AGENTS.md 通用智能体规范(Antigravity / Qoder / Cursor 等)
|
|
334
342
|
├── CLAUDE.md Claude Code CLI 指南
|
|
@@ -338,7 +346,7 @@ claude mcp remove --scope user agentic-hil
|
|
|
338
346
|
|
|
339
347
|
---
|
|
340
348
|
|
|
341
|
-
## 能力验证状态(v0.0.
|
|
349
|
+
## 能力验证状态(v0.0.11)
|
|
342
350
|
|
|
343
351
|
> 状态定义:`Implemented`(已实现)/ `Simulator Validated`(模拟验证)/
|
|
344
352
|
> `Real Hardware Validated`(真机验证)/ `Experimental` / `Not Implemented`
|
|
@@ -96,14 +96,22 @@ function Resolve-FwPython {
|
|
|
96
96
|
function Get-FwRepoRoot {
|
|
97
97
|
<#
|
|
98
98
|
.SYNOPSIS
|
|
99
|
-
Root of the firmware project = directory containing tools/ and lab
|
|
99
|
+
Root of the firmware project = directory containing tools/ and lab/ (or parent of PSScriptRoot).
|
|
100
100
|
#>
|
|
101
|
-
$
|
|
102
|
-
|
|
101
|
+
if ($PSScriptRoot) {
|
|
102
|
+
$candidate = Split-Path -Parent $PSScriptRoot
|
|
103
|
+
if ($candidate -and ((Test-Path (Join-Path $candidate 'tools')) -or (Test-Path (Join-Path $candidate 'pyproject.toml')))) {
|
|
104
|
+
return $candidate
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
$cur = (Get-Location).Path
|
|
108
|
+
while ($cur -and (Test-Path -LiteralPath $cur)) {
|
|
103
109
|
if ((Test-Path (Join-Path $cur 'tools')) -and (Test-Path (Join-Path $cur 'lab'))) {
|
|
104
|
-
return $cur
|
|
110
|
+
return $cur
|
|
105
111
|
}
|
|
106
|
-
$
|
|
112
|
+
$parent = Split-Path -Parent $cur
|
|
113
|
+
if (-not $parent -or $parent -eq $cur) { break }
|
|
114
|
+
$cur = $parent
|
|
107
115
|
}
|
|
108
116
|
return (Get-Location).Path
|
|
109
117
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
"""
|
|
3
|
-
fw_mcp_server.py - FirmwareLoop High-Level Workflow & Device MCP Server (v0.0.
|
|
3
|
+
fw_mcp_server.py - FirmwareLoop High-Level Workflow & Device MCP Server (v0.0.11).
|
|
4
4
|
|
|
5
5
|
Exposes high-level firmware engineering and hardware management tools to AI Coding
|
|
6
6
|
Agents (Antigravity CLI, Claude Code CLI, Qoder IDE, Cursor) via the Model Context
|
|
@@ -1160,7 +1160,7 @@ def process_request(req: Dict[str, Any]) -> Optional[Dict[str, Any]]:
|
|
|
1160
1160
|
},
|
|
1161
1161
|
"serverInfo": {
|
|
1162
1162
|
"name": "firmwareloop",
|
|
1163
|
-
"version": "0.0.
|
|
1163
|
+
"version": "0.0.11"
|
|
1164
1164
|
}
|
|
1165
1165
|
}
|
|
1166
1166
|
}
|
|
@@ -1252,7 +1252,7 @@ def process_request(req: Dict[str, Any]) -> Optional[Dict[str, Any]]:
|
|
|
1252
1252
|
def handle_cli_update() -> int:
|
|
1253
1253
|
"""Handle `firmwareloop update` command."""
|
|
1254
1254
|
print("============================================================")
|
|
1255
|
-
print(" FirmwareLoop Auto-Updater (v0.0.
|
|
1255
|
+
print(" FirmwareLoop Auto-Updater (v0.0.11)")
|
|
1256
1256
|
print("============================================================")
|
|
1257
1257
|
|
|
1258
1258
|
is_git_repo = os.path.exists(os.path.join(REPO_ROOT, ".git"))
|
|
@@ -1326,7 +1326,7 @@ def handle_cli_setup() -> int:
|
|
|
1326
1326
|
def handle_cli_init() -> int:
|
|
1327
1327
|
"""Handle `firmwareloop init` command."""
|
|
1328
1328
|
print("============================================================")
|
|
1329
|
-
print(" FirmwareLoop Multi-Agent Project Initializer (v0.0.
|
|
1329
|
+
print(" FirmwareLoop Multi-Agent Project Initializer (v0.0.11)")
|
|
1330
1330
|
print("============================================================")
|
|
1331
1331
|
cwd = os.getcwd()
|
|
1332
1332
|
print(f"[*] Initializing multi-agent guidelines & bench config in:\n {cwd}\n")
|
|
@@ -1347,7 +1347,7 @@ def handle_cli_init() -> int:
|
|
|
1347
1347
|
|
|
1348
1348
|
|
|
1349
1349
|
def print_cli_help() -> None:
|
|
1350
|
-
print("""FirmwareLoop (fwloop) — AI Agent Firmware Engineering & Lab Automation Platform (v0.0.
|
|
1350
|
+
print("""FirmwareLoop (fwloop) — AI Agent Firmware Engineering & Lab Automation Platform (v0.0.11)
|
|
1351
1351
|
|
|
1352
1352
|
Usage:
|
|
1353
1353
|
fwloop [command] (or: firmwareloop [command])
|
|
@@ -1378,7 +1378,7 @@ def main() -> None:
|
|
|
1378
1378
|
elif cmd in ["setup", "register"]:
|
|
1379
1379
|
sys.exit(handle_cli_setup())
|
|
1380
1380
|
elif cmd in ["version", "-v", "--version"]:
|
|
1381
|
-
print("FirmwareLoop v0.0.
|
|
1381
|
+
print("FirmwareLoop v0.0.11")
|
|
1382
1382
|
sys.exit(0)
|
|
1383
1383
|
elif cmd in ["help", "-h", "--help"]:
|
|
1384
1384
|
print_cli_help()
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<#
|
|
2
2
|
.SYNOPSIS
|
|
3
|
-
Dual-Tier MCP setup and registration helper (v0.0.
|
|
3
|
+
Dual-Tier MCP setup and registration helper (v0.0.10).
|
|
4
4
|
Inspects installed AI coding agents (Qoder, Claude Code, Antigravity, Cursor)
|
|
5
|
-
and
|
|
5
|
+
and configures global MCP / skills or prints exact registration commands.
|
|
6
6
|
|
|
7
7
|
Usage:
|
|
8
8
|
.\tools\setup-agent-mcp.ps1
|
|
@@ -24,17 +24,23 @@ $python = Resolve-FwPython -RepoRoot $repoRoot
|
|
|
24
24
|
$fwMcpServer = Join-Path $repoRoot 'tools\fw_mcp_server.py'
|
|
25
25
|
$ahilExe = Join-Path $repoRoot '.venv\Scripts\agentic-hil.exe'
|
|
26
26
|
|
|
27
|
+
$isSourceRepo = (Test-Path -LiteralPath $fwMcpServer)
|
|
28
|
+
|
|
29
|
+
$fwCmdName = if ($isSourceRepo -and $python) { "`"$python`" `"$fwMcpServer`"" } else { "fwloop" }
|
|
30
|
+
$ahilCmdName = if (Test-Path -LiteralPath $ahilExe) { "`"$ahilExe`" mcp-stdio" } else { "agentic-hil mcp-stdio" }
|
|
31
|
+
|
|
27
32
|
$report = [ordered]@{
|
|
28
33
|
schema = 'firmwareloop-mcp-setup/v1'
|
|
29
34
|
repo_root = $repoRoot
|
|
35
|
+
is_source_repo = $isSourceRepo
|
|
30
36
|
servers = [ordered]@{
|
|
31
37
|
firmwareloop = [ordered]@{
|
|
32
|
-
command = $python
|
|
33
|
-
args = @($fwMcpServer)
|
|
38
|
+
command = if ($isSourceRepo -and $python) { $python } else { "fwloop" }
|
|
39
|
+
args = if ($isSourceRepo) { @($fwMcpServer) } else { @() }
|
|
34
40
|
description = 'Upper-tier firmware engineering workflow MCP'
|
|
35
41
|
}
|
|
36
42
|
agentic_hil = [ordered]@{
|
|
37
|
-
command = $ahilExe
|
|
43
|
+
command = if (Test-Path -LiteralPath $ahilExe) { $ahilExe } else { "agentic-hil" }
|
|
38
44
|
args = @('mcp-stdio')
|
|
39
45
|
description = 'Lower-tier physical hardware & probe MCP'
|
|
40
46
|
}
|
|
@@ -48,8 +54,8 @@ $report.agents.claude_code = [ordered]@{
|
|
|
48
54
|
detected = ($null -ne $claudeCmd)
|
|
49
55
|
path = if ($claudeCmd) { $claudeCmd.Source } else { $null }
|
|
50
56
|
registration_commands = @(
|
|
51
|
-
"claude mcp add
|
|
52
|
-
"claude mcp add agentic-hil --
|
|
57
|
+
"claude mcp add --scope user fwloop -- $fwCmdName",
|
|
58
|
+
"claude mcp add --scope user agentic-hil -- $ahilCmdName"
|
|
53
59
|
)
|
|
54
60
|
}
|
|
55
61
|
|
|
@@ -64,13 +70,13 @@ $report.agents.qoder = [ordered]@{
|
|
|
64
70
|
path = if ($qoderCmd) { $qoderCmd.Source } else { $null }
|
|
65
71
|
registration_commands = if ($qoderCmd) {
|
|
66
72
|
@(
|
|
67
|
-
"$($qoderCmd.Name) mcp add
|
|
68
|
-
"$($qoderCmd.Name) mcp add agentic-hil --
|
|
73
|
+
"$($qoderCmd.Name) mcp add --global fwloop -- $fwCmdName",
|
|
74
|
+
"$($qoderCmd.Name) mcp add --global agentic-hil -- $ahilCmdName"
|
|
69
75
|
)
|
|
70
76
|
} else {
|
|
71
77
|
@(
|
|
72
|
-
"qoder mcp add
|
|
73
|
-
"qoder mcp add agentic-hil --
|
|
78
|
+
"qoder.cmd mcp add --global fwloop -- $fwCmdName",
|
|
79
|
+
"qoder.cmd mcp add --global agentic-hil -- $ahilCmdName"
|
|
74
80
|
)
|
|
75
81
|
}
|
|
76
82
|
}
|
|
@@ -78,6 +84,7 @@ $report.agents.qoder = [ordered]@{
|
|
|
78
84
|
# 3. Antigravity CLI / Gemini 全局 MCP 配置与 Skills
|
|
79
85
|
$antigravityConfigDir = Join-Path $env:USERPROFILE '.gemini\config'
|
|
80
86
|
$antigravityMcpConfigFile = Join-Path $antigravityConfigDir 'mcp_config.json'
|
|
87
|
+
$antigravityMcpUpdated = $false
|
|
81
88
|
if (Test-Path -LiteralPath $antigravityConfigDir) {
|
|
82
89
|
try {
|
|
83
90
|
$existingJson = if (Test-Path -LiteralPath $antigravityMcpConfigFile) {
|
|
@@ -92,6 +99,7 @@ if (Test-Path -LiteralPath $antigravityConfigDir) {
|
|
|
92
99
|
$existingJson.mcpServers | Add-Member -MemberType NoteProperty -Name 'agentic-hil' -Value ([pscustomobject]@{ command = "agentic-hil"; args = @("mcp-stdio") }) -Force
|
|
93
100
|
$updatedJsonStr = ConvertTo-Json -InputObject $existingJson -Depth 10
|
|
94
101
|
[System.IO.File]::WriteAllText($antigravityMcpConfigFile, $updatedJsonStr, [System.Text.Encoding]::UTF8)
|
|
102
|
+
$antigravityMcpUpdated = $true
|
|
95
103
|
} catch {
|
|
96
104
|
# ignore non-fatal config write error
|
|
97
105
|
}
|
|
@@ -126,6 +134,7 @@ if (Test-Path -LiteralPath $sourceSkillsDir) {
|
|
|
126
134
|
|
|
127
135
|
$report.agents.antigravity = [ordered]@{
|
|
128
136
|
mcp_config_path = $antigravityMcpConfigFile
|
|
137
|
+
mcp_configured = $antigravityMcpUpdated
|
|
129
138
|
global_skills_installed = ($installedSkills.Count -gt 0)
|
|
130
139
|
installed_skills = $installedSkills
|
|
131
140
|
note = "Antigravity global mcp_config.json and skills configured."
|
|
@@ -138,13 +147,13 @@ if ($WriteWorkspaceMcp) {
|
|
|
138
147
|
mcpServers = [ordered]@{
|
|
139
148
|
firmwareloop = [ordered]@{
|
|
140
149
|
type = 'stdio'
|
|
141
|
-
command = $python
|
|
142
|
-
args = @($fwMcpServer)
|
|
150
|
+
command = if ($isSourceRepo -and $python) { $python } else { "fwloop" }
|
|
151
|
+
args = if ($isSourceRepo) { @($fwMcpServer) } else { @() }
|
|
143
152
|
timeout = 300000
|
|
144
153
|
}
|
|
145
154
|
"agentic-hil" = [ordered]@{
|
|
146
155
|
type = 'stdio'
|
|
147
|
-
command = $ahilExe
|
|
156
|
+
command = if (Test-Path -LiteralPath $ahilExe) { $ahilExe } else { "agentic-hil" }
|
|
148
157
|
args = @('mcp-stdio')
|
|
149
158
|
timeout = 120000
|
|
150
159
|
}
|
|
@@ -159,24 +168,28 @@ if ($Json) {
|
|
|
159
168
|
Write-FwJson ([pscustomobject]$report)
|
|
160
169
|
} else {
|
|
161
170
|
Write-Host "============================================================" -ForegroundColor Cyan
|
|
162
|
-
Write-Host "FirmwareLoop
|
|
171
|
+
Write-Host " FirmwareLoop Dual-Tier MCP & Agent Setup Helper (v0.0.10)" -ForegroundColor Green
|
|
163
172
|
Write-Host "============================================================" -ForegroundColor Cyan
|
|
164
173
|
Write-Host ""
|
|
165
|
-
Write-Host "[1]
|
|
174
|
+
Write-Host "[1] Google Antigravity / Gemini CLI:" -ForegroundColor Yellow
|
|
175
|
+
if ($antigravityMcpUpdated) {
|
|
176
|
+
Write-Host " - Global MCP Config: [OK] Written to $antigravityMcpConfigFile" -ForegroundColor Green
|
|
177
|
+
} else {
|
|
178
|
+
Write-Host " - Global MCP Config: ~/.gemini/config/mcp_config.json (Ready)"
|
|
179
|
+
}
|
|
180
|
+
if ($installedSkills.Count -gt 0) {
|
|
181
|
+
Write-Host " - Global Skills: [OK] Synchronized $($installedSkills.Count) skills ($($installedSkills -join ', ')) to Antigravity & Claude Code" -ForegroundColor Green
|
|
182
|
+
}
|
|
183
|
+
Write-Host ""
|
|
184
|
+
Write-Host "[2] Claude Code CLI Registration:" -ForegroundColor Yellow
|
|
166
185
|
Write-Host " $($report.agents.claude_code.registration_commands[0])"
|
|
167
186
|
Write-Host " $($report.agents.claude_code.registration_commands[1])"
|
|
168
187
|
Write-Host ""
|
|
169
|
-
Write-Host "[
|
|
170
|
-
Write-Host " - GUI: Press 'Ctrl + Shift + ,' -> MCP -> My Services -> '+ Add', paste the JSON config"
|
|
171
|
-
Write-Host " - Workspace: Qoder automatically detects '.mcp.json' in your workspace root"
|
|
188
|
+
Write-Host "[3] Qoder IDE:" -ForegroundColor Yellow
|
|
172
189
|
Write-Host " - CLI: $($report.agents.qoder.registration_commands[0])"
|
|
173
|
-
Write-Host "
|
|
174
|
-
Write-Host ""
|
|
175
|
-
Write-Host "[3] Antigravity CLI / Cursor / VS Code:" -ForegroundColor Yellow
|
|
176
|
-
Write-Host " - MCP: Automatically reads '.mcp.json' in workspace root"
|
|
177
|
-
if ($skillInstalled) {
|
|
178
|
-
Write-Host " - Global Skill: [OK] Successfully registered to: $targetGlobalSkillDir\SKILL.md" -ForegroundColor Green
|
|
179
|
-
}
|
|
180
|
-
Write-Host " - Generate workspace config: .\tools\setup-agent-mcp.ps1 -WriteWorkspaceMcp"
|
|
190
|
+
Write-Host " - Workspace: Project root '.mcp.json' is automatically detected"
|
|
181
191
|
Write-Host ""
|
|
192
|
+
Write-Host "============================================================" -ForegroundColor Cyan
|
|
193
|
+
Write-Host "[+] All AI Coding Agents are configured and ready!" -ForegroundColor Green
|
|
194
|
+
Write-Host "============================================================" -ForegroundColor Cyan
|
|
182
195
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|