fenix-mcp 0.2.1__py3-none-any.whl → 0.3.0__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 +1 -1
- fenix_mcp/application/tools/initialize.py +2 -1
- fenix_mcp/application/tools/intelligence.py +5 -0
- fenix_mcp/domain/initialization.py +1 -13
- fenix_mcp/domain/intelligence.py +15 -2
- fenix_mcp/infrastructure/fenix_api/client.py +2 -0
- {fenix_mcp-0.2.1.dist-info → fenix_mcp-0.3.0.dist-info}/METADATA +1 -1
- {fenix_mcp-0.2.1.dist-info → fenix_mcp-0.3.0.dist-info}/RECORD +11 -11
- {fenix_mcp-0.2.1.dist-info → fenix_mcp-0.3.0.dist-info}/WHEEL +0 -0
- {fenix_mcp-0.2.1.dist-info → fenix_mcp-0.3.0.dist-info}/entry_points.txt +0 -0
- {fenix_mcp-0.2.1.dist-info → fenix_mcp-0.3.0.dist-info}/top_level.txt +0 -0
fenix_mcp/__init__.py
CHANGED
|
@@ -89,8 +89,9 @@ class InitializeTool(Tool):
|
|
|
89
89
|
"profile": data.profile,
|
|
90
90
|
"core_documents": data.core_documents,
|
|
91
91
|
"user_documents": data.user_documents if payload.include_user_docs else [],
|
|
92
|
-
"recent_memories": data.recent_memories,
|
|
93
92
|
}
|
|
93
|
+
if data.recent_memories:
|
|
94
|
+
payload_dict["recent_memories"] = data.recent_memories
|
|
94
95
|
|
|
95
96
|
message_lines = [
|
|
96
97
|
"📦 **Dados de inicialização completos**",
|
|
@@ -167,6 +167,11 @@ class IntelligenceTool(Tool):
|
|
|
167
167
|
offset=payload.offset,
|
|
168
168
|
query=payload.query,
|
|
169
169
|
tags=payload.tags,
|
|
170
|
+
modeId=payload.mode_id,
|
|
171
|
+
ruleId=payload.rule_id,
|
|
172
|
+
workItemId=payload.work_item_id,
|
|
173
|
+
sprintId=payload.sprint_id,
|
|
174
|
+
documentationItemId=payload.documentation_item_id,
|
|
170
175
|
category=payload.category,
|
|
171
176
|
dateFrom=payload.date_from,
|
|
172
177
|
dateTo=payload.date_to,
|
|
@@ -46,23 +46,11 @@ class InitializationService:
|
|
|
46
46
|
)
|
|
47
47
|
if self._logger:
|
|
48
48
|
self._logger.debug("User docs response", extra={"user_docs": user_docs})
|
|
49
|
-
memories = await self._safe_call(
|
|
50
|
-
self._api.list_memories,
|
|
51
|
-
include_content=True,
|
|
52
|
-
include_metadata=False,
|
|
53
|
-
limit=3,
|
|
54
|
-
offset=0,
|
|
55
|
-
sortBy="created_at",
|
|
56
|
-
sortOrder="desc",
|
|
57
|
-
)
|
|
58
|
-
if self._logger:
|
|
59
|
-
self._logger.debug("Memories response", extra={"memories": memories})
|
|
60
|
-
|
|
61
49
|
return InitializationData(
|
|
62
50
|
profile=profile,
|
|
63
51
|
core_documents=self._extract_items(core_docs, "coreDocuments"),
|
|
64
52
|
user_documents=self._extract_items(user_docs, "userCoreDocuments"),
|
|
65
|
-
recent_memories=
|
|
53
|
+
recent_memories=[],
|
|
66
54
|
)
|
|
67
55
|
|
|
68
56
|
async def _safe_call(self, func, *args, **kwargs):
|
fenix_mcp/domain/intelligence.py
CHANGED
|
@@ -42,14 +42,27 @@ class IntelligenceService:
|
|
|
42
42
|
|
|
43
43
|
async def query_memories(self, **filters: Any) -> List[Dict[str, Any]]:
|
|
44
44
|
params = _strip_none(filters)
|
|
45
|
-
include_content = bool(params.pop("content",
|
|
45
|
+
include_content = bool(params.pop("content", False))
|
|
46
46
|
include_metadata = bool(params.pop("metadata", False))
|
|
47
|
+
allowed_keys = {
|
|
48
|
+
"limit",
|
|
49
|
+
"offset",
|
|
50
|
+
"query",
|
|
51
|
+
"tags",
|
|
52
|
+
"modeId",
|
|
53
|
+
"ruleId",
|
|
54
|
+
"workItemId",
|
|
55
|
+
"sprintId",
|
|
56
|
+
"documentationItemId",
|
|
57
|
+
"importance",
|
|
58
|
+
}
|
|
59
|
+
cleaned_params = {key: params[key] for key in allowed_keys if key in params}
|
|
47
60
|
return (
|
|
48
61
|
await self._call(
|
|
49
62
|
self.api.list_memories,
|
|
50
63
|
include_content=include_content,
|
|
51
64
|
include_metadata=include_metadata,
|
|
52
|
-
**
|
|
65
|
+
**cleaned_params,
|
|
53
66
|
)
|
|
54
67
|
or []
|
|
55
68
|
)
|
|
@@ -16,6 +16,8 @@ class FenixApiError(RuntimeError):
|
|
|
16
16
|
def _to_query_value(value: Any) -> Any:
|
|
17
17
|
if isinstance(value, bool):
|
|
18
18
|
return "true" if value else "false"
|
|
19
|
+
if isinstance(value, (list, tuple, set)):
|
|
20
|
+
return ",".join(str(item) for item in value)
|
|
19
21
|
return value
|
|
20
22
|
|
|
21
23
|
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
fenix_mcp/__init__.py,sha256=
|
|
1
|
+
fenix_mcp/__init__.py,sha256=Ji1fT7DoiEooPYrJTDIVOhZslAnMviujjQ3FsJjCRKg,615
|
|
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=qUcb46qx9gHQfrSHgj4RD4NCHW-OIvKQdR5G9uxZ5l4,1316
|
|
5
5
|
fenix_mcp/application/tool_registry.py,sha256=bPT5g8GfxG_qu28R1WaDOZHvtmG6TPDvZi8eWj1T9xE,1250
|
|
6
6
|
fenix_mcp/application/tools/__init__.py,sha256=Gi1YvYh-KdL9HD8gLVrknHrxiKKEOhHBEZ02KBXJaKQ,796
|
|
7
7
|
fenix_mcp/application/tools/health.py,sha256=m5DxhoRbdwl6INzd6PISxv1NAv-ljCrezsr773VB0wE,834
|
|
8
|
-
fenix_mcp/application/tools/initialize.py,sha256=
|
|
9
|
-
fenix_mcp/application/tools/intelligence.py,sha256=
|
|
8
|
+
fenix_mcp/application/tools/initialize.py,sha256=f33DNDn9u8IYwpqiBj6bjJ-wHgaUP1zEuAvUM1rMYPc,4674
|
|
9
|
+
fenix_mcp/application/tools/intelligence.py,sha256=q2LRgQeJNFzWMlYRhxOlJ073QdNTxi6QkXOsOYCt_SI,12310
|
|
10
10
|
fenix_mcp/application/tools/knowledge.py,sha256=4ClGoFRqyFIPuzzg2DAg-w2eMvTP37mH0THXDGftinw,44634
|
|
11
11
|
fenix_mcp/application/tools/productivity.py,sha256=2IMkNdZ-Kd1CFAO7geruAVjtf_BWoDdbnwkl76vhtC8,9973
|
|
12
12
|
fenix_mcp/application/tools/user_config.py,sha256=8mPOZuwszO0TapxgrA7Foe15VQE874_mvfQYlGzyv4Y,6230
|
|
13
|
-
fenix_mcp/domain/initialization.py,sha256=
|
|
14
|
-
fenix_mcp/domain/intelligence.py,sha256=
|
|
13
|
+
fenix_mcp/domain/initialization.py,sha256=AZhdSNITQ7O3clELBuqGvjJc-c8pFKc7zQz-XR2xXPc,6933
|
|
14
|
+
fenix_mcp/domain/intelligence.py,sha256=xotbwA2AgQTrGIXczLZ_192FuKyZJyAKK8cwzHxaTaI,5093
|
|
15
15
|
fenix_mcp/domain/knowledge.py,sha256=fKQOTt20u5aa5Yo7gPeQ1Qxa_K5pBxn1yn8FEfOFltM,20241
|
|
16
16
|
fenix_mcp/domain/productivity.py,sha256=nmHRuVJGRRu1s4eMoAv8vXHKsSauCPl-FvFx3I_yCTE,6661
|
|
17
17
|
fenix_mcp/domain/user_config.py,sha256=LzBDCk31gLMtKHTbBmYb9VoFPHDW6OydpmDXeHHd0Mw,1642
|
|
@@ -19,11 +19,11 @@ fenix_mcp/infrastructure/config.py,sha256=zhJ3hhsP-bRfICcdq8rIDh5NGDe_u7AGpcgjcc
|
|
|
19
19
|
fenix_mcp/infrastructure/context.py,sha256=kiDiamiPbHZpTGyZMylcQwtLhfaDXrxAkWSst_DWQNw,470
|
|
20
20
|
fenix_mcp/infrastructure/http_client.py,sha256=QLIPhGYR_cBQGsbIO4RTR6ksyvkQt-OKHQU1JhPyap8,2470
|
|
21
21
|
fenix_mcp/infrastructure/logging.py,sha256=bHrWlSi_0HshRe3--BK_5nzUszW-gh37q6jsd0ShS2Y,1371
|
|
22
|
-
fenix_mcp/infrastructure/fenix_api/client.py,sha256=
|
|
22
|
+
fenix_mcp/infrastructure/fenix_api/client.py,sha256=Navi7cGAOradghcbYkFIQQINpjFrdINlNhdfZ4iSSYQ,28338
|
|
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-0.
|
|
26
|
-
fenix_mcp-0.
|
|
27
|
-
fenix_mcp-0.
|
|
28
|
-
fenix_mcp-0.
|
|
29
|
-
fenix_mcp-0.
|
|
25
|
+
fenix_mcp-0.3.0.dist-info/METADATA,sha256=YgoAa_iYBXiGpkNyro3CaR0hGCkRaNn3qu62EvpbFMY,7260
|
|
26
|
+
fenix_mcp-0.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
27
|
+
fenix_mcp-0.3.0.dist-info/entry_points.txt,sha256=o52x_YHBupEd-1Z1GSfUjv3gJrx5_I-EkHhCgt1WBaE,49
|
|
28
|
+
fenix_mcp-0.3.0.dist-info/top_level.txt,sha256=2G1UtKpwjaIGQyE7sRoHecxaGLeuexfjrOUjv9DDKh4,10
|
|
29
|
+
fenix_mcp-0.3.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|