@josephyan/qingflow-app-user-mcp 0.2.0-beta.84 → 0.2.0-beta.86
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.
package/README.md
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
Install:
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm install @josephyan/qingflow-app-user-mcp@0.2.0-beta.
|
|
6
|
+
npm install @josephyan/qingflow-app-user-mcp@0.2.0-beta.86
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Run:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
npx -y -p @josephyan/qingflow-app-user-mcp@0.2.0-beta.
|
|
12
|
+
npx -y -p @josephyan/qingflow-app-user-mcp@0.2.0-beta.86 qingflow-app-user-mcp
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
Environment:
|
package/package.json
CHANGED
package/pyproject.toml
CHANGED
|
@@ -848,15 +848,18 @@ class AiBuilderFacade:
|
|
|
848
848
|
allow_detach: bool,
|
|
849
849
|
normalized_args: JSONObject,
|
|
850
850
|
) -> JSONObject:
|
|
851
|
-
|
|
851
|
+
current_detail_result: JSONObject | None = None
|
|
852
|
+
current_base_result: JSONObject | None = None
|
|
853
|
+
detail_api_error: QingflowApiError | None = None
|
|
852
854
|
try:
|
|
853
|
-
|
|
855
|
+
current_detail_result = self.packages.package_get(profile=profile, tag_id=package_id, include_raw=True)
|
|
854
856
|
except (QingflowApiError, RuntimeError) as detail_error:
|
|
855
857
|
detail_api_error = _coerce_api_error(detail_error)
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
858
|
+
try:
|
|
859
|
+
current_base_result = self.packages.package_get_base(profile=profile, tag_id=package_id, include_raw=True)
|
|
860
|
+
except (QingflowApiError, RuntimeError) as base_error:
|
|
861
|
+
api_error = _coerce_api_error(base_error)
|
|
862
|
+
if current_detail_result is None:
|
|
860
863
|
return _failed_from_api_error(
|
|
861
864
|
"PACKAGE_LAYOUT_READ_FAILED",
|
|
862
865
|
api_error,
|
|
@@ -867,8 +870,20 @@ class AiBuilderFacade:
|
|
|
867
870
|
},
|
|
868
871
|
suggested_next_call={"tool_name": "package_get", "arguments": {"profile": profile, "package_id": package_id}},
|
|
869
872
|
)
|
|
870
|
-
|
|
871
|
-
|
|
873
|
+
|
|
874
|
+
detail_raw = (
|
|
875
|
+
current_detail_result.get("result")
|
|
876
|
+
if isinstance(current_detail_result, dict) and isinstance(current_detail_result.get("result"), dict)
|
|
877
|
+
else {}
|
|
878
|
+
)
|
|
879
|
+
base_raw = (
|
|
880
|
+
current_base_result.get("result")
|
|
881
|
+
if isinstance(current_base_result, dict) and isinstance(current_base_result.get("result"), dict)
|
|
882
|
+
else {}
|
|
883
|
+
)
|
|
884
|
+
detail_tag_items = detail_raw.get("tagItems") if isinstance(detail_raw.get("tagItems"), list) else None
|
|
885
|
+
base_tag_items = base_raw.get("tagItems") if isinstance(base_raw.get("tagItems"), list) else None
|
|
886
|
+
raw_tag_items = detail_tag_items if detail_tag_items else base_tag_items
|
|
872
887
|
if not isinstance(raw_tag_items, list):
|
|
873
888
|
return _failed(
|
|
874
889
|
"PACKAGE_LAYOUT_UNREADABLE",
|
|
@@ -999,6 +1014,8 @@ class AiBuilderFacade:
|
|
|
999
1014
|
details={"package_id": package_id},
|
|
1000
1015
|
suggested_next_call=None,
|
|
1001
1016
|
)
|
|
1017
|
+
for group_id in deleted_group_ids:
|
|
1018
|
+
backend_items.append({"itemType": 3, "groupId": group_id, "title": current_groups.get(group_id) or "", "subItems": []})
|
|
1002
1019
|
|
|
1003
1020
|
try:
|
|
1004
1021
|
sort_result = self.packages.package_sort_items(profile=profile, tag_id=package_id, tag_items=backend_items)
|