fenix-mcp 1.2.0__py3-none-any.whl → 1.3.1__py3-none-any.whl

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.
fenix_mcp/__init__.py CHANGED
@@ -8,4 +8,4 @@ Fênix Cloud MCP Server (Python edition).
8
8
  __all__ = ["__version__"]
9
9
 
10
10
 
11
- __version__ = "1.2.0"
11
+ __version__ = "1.3.1"
@@ -679,7 +679,18 @@ class KnowledgeTool(Tool):
679
679
  return_description=payload.return_description,
680
680
  return_metadata=payload.return_metadata,
681
681
  )
682
- return text(_format_mode(mode, header="🎭 Mode details", show_content=True))
682
+ # Buscar rules associadas ao mode
683
+ associations = await self._service.mode_rules(payload.mode_id)
684
+ rules = [assoc.get("rule", assoc) for assoc in associations]
685
+
686
+ # Formatar resposta com rules
687
+ output = _format_mode(mode, header="🎭 Mode details", show_content=True)
688
+ if rules:
689
+ rules_list = "\n".join(
690
+ f"- {r.get('name', 'Unnamed')} (ID: {r.get('id')})" for r in rules
691
+ )
692
+ output += f"\n\n**Rules ({len(rules)}):**\n{rules_list}"
693
+ return text(output)
683
694
 
684
695
  if action is KnowledgeAction.MODE_UPDATE:
685
696
  if not payload.mode_id:
@@ -724,18 +735,22 @@ class KnowledgeTool(Tool):
724
735
 
725
736
  if action is KnowledgeAction.MODE_RULES:
726
737
  if payload.mode_id:
727
- rules = await self._service.mode_rules(payload.mode_id)
738
+ associations = await self._service.mode_rules(payload.mode_id)
728
739
  context_label = f"mode {payload.mode_id}"
740
+ # API retorna [{id, mode_id, rule_id, rule: {...}}] - extrair rule
741
+ items = [assoc.get("rule", assoc) for assoc in associations]
729
742
  elif payload.rule_id:
730
- rules = await self._service.mode_rules_for_rule(payload.rule_id)
743
+ associations = await self._service.mode_rules_for_rule(payload.rule_id)
731
744
  context_label = f"rule {payload.rule_id}"
745
+ # API retorna [{id, mode_id, rule_id, mode: {...}}] - extrair mode
746
+ items = [assoc.get("mode", assoc) for assoc in associations]
732
747
  else:
733
748
  return text("❌ Provide mode_id or rule_id to list associations.")
734
- if not rules:
749
+ if not items:
735
750
  return text("🔗 No associations found.")
736
751
  body = "\n".join(
737
752
  f"- {item.get('name', 'Unnamed')} (ID: {item.get('id')})"
738
- for item in rules
753
+ for item in items
739
754
  )
740
755
  return text(f"🔗 **Associations for {context_label}:**\n{body}")
741
756
 
@@ -1056,6 +1071,9 @@ def _format_work(
1056
1071
  # Extract title
1057
1072
  title = item.get("title") or item.get("name") or "Untitled"
1058
1073
 
1074
+ # Extract type
1075
+ item_type = item.get("item_type") or item.get("type") or "unknown"
1076
+
1059
1077
  # Extract status
1060
1078
  status = item.get("status") or item.get("state") or "unknown"
1061
1079
 
@@ -1078,6 +1096,7 @@ def _format_work(
1078
1096
  [
1079
1097
  f"🎯 **{title}**",
1080
1098
  f"ID: {item_id}",
1099
+ f"Type: {item_type}",
1081
1100
  f"Status: {status}",
1082
1101
  f"Priority: {priority}",
1083
1102
  f"Assignee: {assignee}",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fenix-mcp
3
- Version: 1.2.0
3
+ Version: 1.3.1
4
4
  Summary: Fênix Cloud MCP server implemented in Python
5
5
  Author: Fenix Inc
6
6
  Requires-Python: >=3.10
@@ -1,4 +1,4 @@
1
- fenix_mcp/__init__.py,sha256=O5PVWpKntZHHyfKRMCPhfNtYk_njwoiRCa3nwTtaoQ8,180
1
+ fenix_mcp/__init__.py,sha256=kAOc-FB8DpEWalLe71J4Ai2UYJFNyjsRMAF8TDSwHfw,180
2
2
  fenix_mcp/main.py,sha256=iJV-9btNMDJMObvcn7wBQdbLLKjkYCQ1ANGEwHGHlMU,2857
3
3
  fenix_mcp/application/presenters.py,sha256=fGME54PdCDhTBhXO-JUB9yLdBHiE1aeXLTC2fCuxnxM,689
4
4
  fenix_mcp/application/tool_base.py,sha256=YJk7aSVGjXEvAkXrOHOuUjCFhYni9NPKFyPKiZqkrCc,4235
@@ -7,7 +7,7 @@ fenix_mcp/application/tools/__init__.py,sha256=Gi1YvYh-KdL9HD8gLVrknHrxiKKEOhHBE
7
7
  fenix_mcp/application/tools/health.py,sha256=m5DxhoRbdwl6INzd6PISxv1NAv-ljCrezsr773VB0wE,834
8
8
  fenix_mcp/application/tools/initialize.py,sha256=YfsE3fVYiqGEwvaI_jg5-0K7pGURXxpB3WNwETmGBPc,5499
9
9
  fenix_mcp/application/tools/intelligence.py,sha256=fXfjBwAQmZCn3Zc8BqFnQFAJkpd9JsfOPa_uXJj-bMU,15778
10
- fenix_mcp/application/tools/knowledge.py,sha256=hTtf5ijVUg47tFYVN4Y-Exzt8J55h6fOV5xJrK3ydOk,50065
10
+ fenix_mcp/application/tools/knowledge.py,sha256=TMbLIA3ZjftCrdJ50KBi2oQTYzPXr86vZfS2Tsz_gUE,51029
11
11
  fenix_mcp/application/tools/productivity.py,sha256=wyJ7-2VqgI2cdrliBD_ejwNvQhN1DecpXSQVrCxcUpQ,11231
12
12
  fenix_mcp/application/tools/user_config.py,sha256=O5AVg7IUKL9uIoUoBSFovBDHl9jofhKWzhFK7CnKi4s,6470
13
13
  fenix_mcp/domain/initialization.py,sha256=AZhdSNITQ7O3clELBuqGvjJc-c8pFKc7zQz-XR2xXPc,6933
@@ -22,8 +22,8 @@ fenix_mcp/infrastructure/logging.py,sha256=bHrWlSi_0HshRe3--BK_5nzUszW-gh37q6jsd
22
22
  fenix_mcp/infrastructure/fenix_api/client.py,sha256=z5S6cwBxerpaDXj4Y4LWZEd7ZuGcVmgcaXQv3tTFPBs,28038
23
23
  fenix_mcp/interface/mcp_server.py,sha256=5UM2NJuNbwHkmCEprIFataJ5nFZiO8efTtP_oW3_iX0,2331
24
24
  fenix_mcp/interface/transports.py,sha256=PxdhfjH8UMl03f7nuCLc-M6tMx6-Y-btVz_mSqXKrSI,8138
25
- fenix_mcp-1.2.0.dist-info/METADATA,sha256=1nFk9q9nLtzlw-qx6m-pwhL7XaO4StWM8GQykmzRiFw,7260
26
- fenix_mcp-1.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
27
- fenix_mcp-1.2.0.dist-info/entry_points.txt,sha256=o52x_YHBupEd-1Z1GSfUjv3gJrx5_I-EkHhCgt1WBaE,49
28
- fenix_mcp-1.2.0.dist-info/top_level.txt,sha256=2G1UtKpwjaIGQyE7sRoHecxaGLeuexfjrOUjv9DDKh4,10
29
- fenix_mcp-1.2.0.dist-info/RECORD,,
25
+ fenix_mcp-1.3.1.dist-info/METADATA,sha256=01uNBKpZEkXbRYLzPWo72wIoqq5Z5pO9xZn5AHJdCX4,7260
26
+ fenix_mcp-1.3.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
27
+ fenix_mcp-1.3.1.dist-info/entry_points.txt,sha256=o52x_YHBupEd-1Z1GSfUjv3gJrx5_I-EkHhCgt1WBaE,49
28
+ fenix_mcp-1.3.1.dist-info/top_level.txt,sha256=2G1UtKpwjaIGQyE7sRoHecxaGLeuexfjrOUjv9DDKh4,10
29
+ fenix_mcp-1.3.1.dist-info/RECORD,,