@passioncode-ai/fabric-agent-adapter 0.43.0 → 0.44.1

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 (31) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/package.json +1 -1
  3. package/plugins/fabric-agent-adapter/.claude-plugin/plugin.json +1 -1
  4. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/SKILL.md +1 -1
  5. package/plugins/fabric-agent-adapter/skills/building-fabric-services/SKILL.md +7 -2
  6. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/dashboard-kit.md +2 -1
  7. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/kit-modules.md +7 -3
  8. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/protocol.md +20 -0
  9. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/check_dashboard_layout.mjs +8 -5
  10. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/check_service.py +9 -0
  11. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-connections.mjs +186 -0
  12. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-descriptor.mjs +6 -0
  13. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-interop-rules.mjs +264 -0
  14. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-interop.mjs +31 -254
  15. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-package-schema.mjs +100 -0
  16. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-package.mjs +2 -89
  17. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-secrets.mjs +2 -2
  18. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-service.mjs +1 -0
  19. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_connections.py +448 -0
  20. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_descriptor.py +6 -0
  21. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_interop.py +54 -369
  22. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_interop_rules.py +390 -0
  23. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_package.py +20 -187
  24. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_package_schema.py +207 -0
  25. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_service.py +6 -0
  26. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/kit.json +234 -19
  27. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/SKILL.md +1 -1
  28. package/plugins/fabric-agent-adapter/skills/working-with-fabric/SKILL.md +1 -1
  29. package/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/fabric_session_env.py +1 -1
  30. package/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/fabric_session_mcp.py +4 -3
  31. package/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/host_hooks.py +3 -1
@@ -191,11 +191,12 @@ class McpStdio:
191
191
  try:
192
192
  self.proc.stdin.write((json.dumps(message) + "\n").encode("utf-8"))
193
193
  self.proc.stdin.flush()
194
- except OSError: # a server that exited closed its stdin: say why it exited, never a broken pipe
194
+ except OSError: # a server that closed its stdin: say why it exits, never a broken pipe
195
+ # Its exit status may come later than the pipe's end (FAA-97): wait for it up to the deadline.
195
196
  try:
196
- self.proc.wait(timeout=max(0.0, min(1.0, self.deadline - time.monotonic())))
197
+ self.proc.wait(timeout=max(0.0, self.deadline - time.monotonic()))
197
198
  except subprocess.TimeoutExpired:
198
- pass
199
+ raise TimeoutError("fabric-mcp closed its stdin and did not exit") from None
199
200
  self._ended()
200
201
 
201
202
  def notify(self, method: str, params: Optional[Dict[str, Any]] = None) -> None:
@@ -59,8 +59,10 @@ def openclaw_edit(data, script, remove):
59
59
  return True
60
60
  if not value.replace('\\', '/').endswith('/working-with-fabric/scripts/hosts/openclaw'):
61
61
  return False
62
+ if remove and not Path(value).expanduser().exists():
63
+ return True # our layout, its folder gone (FAA-90): no manifest left to read, and a dead load path
62
64
  try:
63
- manifest = fs.read_small(Path(value) / 'openclaw.plugin.json')
65
+ manifest = fs.read_small(Path(value).expanduser() / 'openclaw.plugin.json')
64
66
  return isinstance(manifest, str) and json.loads(manifest).get('id') == IDENTITY
65
67
  except (ValueError, AttributeError):
66
68
  return False