firmwareloop 0.6.1__tar.gz → 0.6.2__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.
Files changed (37) hide show
  1. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/PKG-INFO +3 -3
  2. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/README.md +2 -2
  3. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/firmwareloop.egg-info/PKG-INFO +3 -3
  4. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/pyproject.toml +1 -1
  5. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/__init__.py +1 -1
  6. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/fw_mcp_server.py +28 -10
  7. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/setup-agent-mcp.ps1 +2 -2
  8. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/LICENSE +0 -0
  9. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/firmwareloop.egg-info/SOURCES.txt +0 -0
  10. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/firmwareloop.egg-info/dependency_links.txt +0 -0
  11. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/firmwareloop.egg-info/entry_points.txt +0 -0
  12. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/firmwareloop.egg-info/requires.txt +0 -0
  13. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/firmwareloop.egg-info/top_level.txt +0 -0
  14. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/setup.cfg +0 -0
  15. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/acceptance-scenario.ps1 +0 -0
  16. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/build.ps1 +0 -0
  17. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/can.ps1 +0 -0
  18. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/check-qoder-mcp.ps1 +0 -0
  19. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/common/build-backends.psm1 +0 -0
  20. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/common/fw.psm1 +0 -0
  21. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/common/uart_probe.py +0 -0
  22. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/doctor.ps1 +0 -0
  23. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/flash.ps1 +0 -0
  24. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/instrument_cli.py +0 -0
  25. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/lib/__init__.py +0 -0
  26. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/lib/instruments.py +0 -0
  27. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/lib/ndtdbg.py +0 -0
  28. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/lib/serial_assistant.py +0 -0
  29. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/logic_capture.ps1 +0 -0
  30. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/logic_decode.ps1 +0 -0
  31. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/ndtdbg_bridge.ps1 +0 -0
  32. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/ndtdbg_cli.py +0 -0
  33. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/reset.ps1 +0 -0
  34. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/serial_cli.py +0 -0
  35. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/sigrok_csv_to_fwloop.py +0 -0
  36. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/test-backends.ps1 +0 -0
  37. {firmwareloop-0.6.1 → firmwareloop-0.6.2}/tools/test.ps1 +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: firmwareloop
3
- Version: 0.6.1
3
+ Version: 0.6.2
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
@@ -382,7 +382,7 @@ claude mcp remove --scope user agentic-hil
382
382
  ├── demo-firmware/ 示例固件(CMake;宿主编译模拟 MCU,闭环验证载体)
383
383
  ├── demo-make/ 示例固件(Make;构建测试载体)
384
384
  ├── docs/ DEPENDENCY_MATRIX / REUSE_PLAN / V0.0.2_GAP_VERIFICATION
385
- ├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.6.1)
385
+ ├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.6.2)
386
386
  ├── .mcp.example.json 双层 MCP 配置模板(firmwareloop + agentic-hil)
387
387
  ├── AGENTS.md 通用智能体规范(Antigravity / Qoder / Cursor 等)
388
388
  ├── CLAUDE.md Claude Code CLI 指南
@@ -392,7 +392,7 @@ claude mcp remove --scope user agentic-hil
392
392
 
393
393
  ---
394
394
 
395
- ## 能力验证状态(v0.6.1
395
+ ## 能力验证状态(v0.6.2
396
396
 
397
397
  > 状态定义:`Implemented`(已实现)/ `Simulator Validated`(模拟验证)/
398
398
  > `Real Hardware Validated`(真机验证)/ `Experimental` / `Not Implemented`
@@ -354,7 +354,7 @@ claude mcp remove --scope user agentic-hil
354
354
  ├── demo-firmware/ 示例固件(CMake;宿主编译模拟 MCU,闭环验证载体)
355
355
  ├── demo-make/ 示例固件(Make;构建测试载体)
356
356
  ├── docs/ DEPENDENCY_MATRIX / REUSE_PLAN / V0.0.2_GAP_VERIFICATION
357
- ├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.6.1)
357
+ ├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.6.2)
358
358
  ├── .mcp.example.json 双层 MCP 配置模板(firmwareloop + agentic-hil)
359
359
  ├── AGENTS.md 通用智能体规范(Antigravity / Qoder / Cursor 等)
360
360
  ├── CLAUDE.md Claude Code CLI 指南
@@ -364,7 +364,7 @@ claude mcp remove --scope user agentic-hil
364
364
 
365
365
  ---
366
366
 
367
- ## 能力验证状态(v0.6.1
367
+ ## 能力验证状态(v0.6.2
368
368
 
369
369
  > 状态定义:`Implemented`(已实现)/ `Simulator Validated`(模拟验证)/
370
370
  > `Real Hardware Validated`(真机验证)/ `Experimental` / `Not Implemented`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: firmwareloop
3
- Version: 0.6.1
3
+ Version: 0.6.2
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
@@ -382,7 +382,7 @@ claude mcp remove --scope user agentic-hil
382
382
  ├── demo-firmware/ 示例固件(CMake;宿主编译模拟 MCU,闭环验证载体)
383
383
  ├── demo-make/ 示例固件(Make;构建测试载体)
384
384
  ├── docs/ DEPENDENCY_MATRIX / REUSE_PLAN / V0.0.2_GAP_VERIFICATION
385
- ├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.6.1)
385
+ ├── pyproject.toml 标准 Python 包配置与 CLI 入口声明 (v0.6.2)
386
386
  ├── .mcp.example.json 双层 MCP 配置模板(firmwareloop + agentic-hil)
387
387
  ├── AGENTS.md 通用智能体规范(Antigravity / Qoder / Cursor 等)
388
388
  ├── CLAUDE.md Claude Code CLI 指南
@@ -392,7 +392,7 @@ claude mcp remove --scope user agentic-hil
392
392
 
393
393
  ---
394
394
 
395
- ## 能力验证状态(v0.6.1
395
+ ## 能力验证状态(v0.6.2
396
396
 
397
397
  > 状态定义:`Implemented`(已实现)/ `Simulator Validated`(模拟验证)/
398
398
  > `Real Hardware Validated`(真机验证)/ `Experimental` / `Not Implemented`
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "firmwareloop"
7
- version = "0.6.1"
7
+ version = "0.6.2"
8
8
  description = "AI Agent Firmware Development and Lab Automation Platform (Dual-Tier MCP Server)"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -2,4 +2,4 @@
2
2
  FirmwareLoop - AI Agent Firmware Development and Lab Automation Platform.
3
3
  """
4
4
 
5
- __version__ = "0.6.1"
5
+ __version__ = "0.6.2"
@@ -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.6.1).
3
+ fw_mcp_server.py - FirmwareLoop High-Level Workflow & Device MCP Server (v0.6.2).
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, CodeBuddy IDE, Cursor) via the Model Context
@@ -770,9 +770,25 @@ def _detect_hardware() -> Dict[str, Any]:
770
770
  if cands:
771
771
  detected["ndtdbg_dll_dir"] = os.path.dirname(os.path.abspath(cands[0]))
772
772
  else:
773
+ # 外发场景兜底: 文件系统扫不到时回读全局配置 (fwloop-deploy-setup.exe
774
+ # 安装器写入 %APPDATA%\FirmwareLoop\lab.yaml 的 dll_dir)——已有配置直接
775
+ # 预填, 不让项目层 init 退化成"探测失败"
776
+ try:
777
+ appdata = os.environ.get("APPDATA")
778
+ gpath = os.path.join(appdata, "FirmwareLoop", "lab.yaml") if appdata else None
779
+ if gpath and os.path.isfile(gpath) and yaml:
780
+ with open(gpath, encoding="utf-8") as fh:
781
+ g = yaml.safe_load(fh) or {}
782
+ gd = (g.get("ndtdbg") or {}).get("dll_dir")
783
+ if gd:
784
+ detected["ndtdbg_dll_dir"] = str(gd)
785
+ detected["notes"].append(f"ndtdbg.dll_dir 取自全局配置: {gd}")
786
+ except Exception: # noqa: BLE001
787
+ pass
788
+ if not detected["ndtdbg_dll_dir"]:
773
789
  detected["notes"].append(
774
- "常见位置未发现 NdtDebugTool*/lib/USBIOX.DLL——ndtdbg.dll_dir 需人工提供"
775
- " (运行 fwloop ndtdebugtool \"<NdtDebugTool 根目录>\" 写入)")
790
+ "常见位置未发现 NdtDebugTool*/lib/USBIOX.DLL 且全局配置无记录——"
791
+ "ndtdbg.dll_dir 需人工提供 (运行 fwloop ndtdebugtool \"<NdtDebugTool 根目录>\" 写入)")
776
792
  return detected
777
793
 
778
794
 
@@ -815,7 +831,9 @@ def _build_lab_yaml_from_example(target_dir: str, target_chip: str, build_backen
815
831
  posix = str(detected_dll_dir).replace("\\", "/")
816
832
  out.append(f' dll_dir: "{posix}" # init 探测预填, 请核对')
817
833
  else:
818
- out.append(' dll_dir: null # TODO: 需人工提供 (fwloop ndtdebugtool "<NdtDebugTool 根目录>")')
834
+ # 探测不到时整行注释 (不产出显式 null 键): 项目层 dll_dir=null 会在
835
+ # 深合并时架空部署安装器写入的全局 dll_dir; 注释态让合并链回退全局
836
+ out.append(' # dll_dir: null # TODO: 需人工提供 (fwloop ndtdebugtool "<NdtDebugTool 根目录>"); 已通过部署安装器配置全局者无需填写')
819
837
  continue
820
838
  out.append(ln)
821
839
  return "\n".join(out) + "\n"
@@ -2236,7 +2254,7 @@ def process_request(req: Dict[str, Any]) -> Optional[Dict[str, Any]]:
2236
2254
  },
2237
2255
  "serverInfo": {
2238
2256
  "name": "firmwareloop",
2239
- "version": "0.6.1"
2257
+ "version": "0.6.2"
2240
2258
  }
2241
2259
  }
2242
2260
  }
@@ -2371,7 +2389,7 @@ def _settle_stashed_entrypoints(stashed) -> None:
2371
2389
  def handle_cli_update() -> int:
2372
2390
  """Handle `firmwareloop update` command."""
2373
2391
  print("============================================================")
2374
- print(" FirmwareLoop Auto-Updater (v0.6.1)")
2392
+ print(" FirmwareLoop Auto-Updater (v0.6.2)")
2375
2393
  print("============================================================")
2376
2394
 
2377
2395
  is_git_repo = os.path.exists(os.path.join(REPO_ROOT, ".git"))
@@ -2802,7 +2820,7 @@ def set_ndtdbg_dlldir(dll_path: str) -> str:
2802
2820
  def handle_cli_setup() -> int:
2803
2821
  """Handle `firmwareloop setup` command: simultaneously configure Antigravity CLI, Claude Code CLI, Qoder IDE, and CodeBuddy IDE."""
2804
2822
  print("============================================================")
2805
- print(" FirmwareLoop Multi-Agent Global Setup Helper (v0.6.1)")
2823
+ print(" FirmwareLoop Multi-Agent Global Setup Helper (v0.6.2)")
2806
2824
  print("============================================================")
2807
2825
  print("")
2808
2826
 
@@ -2927,7 +2945,7 @@ def handle_cli_setup() -> int:
2927
2945
  def handle_cli_init(chip: Optional[str] = None, upgrade: bool = False) -> int:
2928
2946
  """Handle `firmwareloop init [target_chip]` command."""
2929
2947
  print("============================================================")
2930
- print(" FirmwareLoop Multi-Agent Project Initializer (v0.6.1)")
2948
+ print(" FirmwareLoop Multi-Agent Project Initializer (v0.6.2)")
2931
2949
  print("============================================================")
2932
2950
  cwd = os.getcwd()
2933
2951
  print(f"[*] Initializing multi-agent guidelines & bench config in:\n {cwd}\n")
@@ -2960,7 +2978,7 @@ def handle_cli_init(chip: Optional[str] = None, upgrade: bool = False) -> int:
2960
2978
 
2961
2979
 
2962
2980
  def print_cli_help() -> None:
2963
- print("""FirmwareLoop (fwloop) — AI Agent Firmware Engineering & Lab Automation Platform (v0.6.1)
2981
+ print("""FirmwareLoop (fwloop) — AI Agent Firmware Engineering & Lab Automation Platform (v0.6.2)
2964
2982
 
2965
2983
  Usage:
2966
2984
  fwloop [command] (or: firmwareloop [command])
@@ -3006,7 +3024,7 @@ def main() -> None:
3006
3024
  sys.exit(2)
3007
3025
  sys.exit(handle_cli_ndtdebugtool(args[1]))
3008
3026
  elif cmd in ["version", "-v", "--version"]:
3009
- print("FirmwareLoop v0.6.1")
3027
+ print("FirmwareLoop v0.6.2")
3010
3028
  sys.exit(0)
3011
3029
  elif cmd in ["help", "-h", "--help"]:
3012
3030
  print_cli_help()
@@ -1,6 +1,6 @@
1
1
  <#
2
2
  .SYNOPSIS
3
- Dual-Tier MCP setup and registration helper (v0.6.1).
3
+ Dual-Tier MCP setup and registration helper (v0.6.2).
4
4
  Inspects installed AI coding agents (Qoder, Claude Code, Antigravity, Cursor)
5
5
  and configures global MCP / skills or prints exact registration commands.
6
6
 
@@ -242,7 +242,7 @@ if ($Json) {
242
242
  Write-FwJson ([pscustomobject]$report)
243
243
  } else {
244
244
  Write-Host "============================================================" -ForegroundColor Cyan
245
- Write-Host " FirmwareLoop Dual-Tier MCP & Agent Setup Helper (v0.6.1)" -ForegroundColor Green
245
+ Write-Host " FirmwareLoop Dual-Tier MCP & Agent Setup Helper (v0.6.2)" -ForegroundColor Green
246
246
  Write-Host "============================================================" -ForegroundColor Cyan
247
247
  Write-Host ""
248
248
  Write-Host "[1] Google Antigravity / Gemini CLI:" -ForegroundColor Yellow
File without changes
File without changes
File without changes