@qingflow-tech/qingflow-app-builder-mcp 1.0.17 → 1.0.18
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 @qingflow-tech/qingflow-app-builder-mcp@1.0.
|
|
6
|
+
npm install @qingflow-tech/qingflow-app-builder-mcp@1.0.18
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Run:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
npx -y -p @qingflow-tech/qingflow-app-builder-mcp@1.0.
|
|
12
|
+
npx -y -p @qingflow-tech/qingflow-app-builder-mcp@1.0.18 qingflow-app-builder-mcp
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
Environment:
|
package/package.json
CHANGED
package/pyproject.toml
CHANGED
|
@@ -25,14 +25,14 @@ def register(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) ->
|
|
|
25
25
|
repair.add_argument("--authorized-file-modification", action="store_true")
|
|
26
26
|
repair.add_argument("--output-path")
|
|
27
27
|
repair.add_argument("--repair", dest="selected_repairs", action="append", default=[])
|
|
28
|
-
repair.set_defaults(handler=_handle_repair, format_hint="")
|
|
28
|
+
repair.set_defaults(handler=_handle_repair, format_hint="import_repair")
|
|
29
29
|
|
|
30
30
|
start = import_subparsers.add_parser("start", help="启动导入")
|
|
31
31
|
start.add_argument("--app-key", required=True)
|
|
32
32
|
start.add_argument("--verification-id", required=True)
|
|
33
33
|
start.add_argument("--being-enter-auditing", type=parse_bool_text, required=True)
|
|
34
34
|
start.add_argument("--view-key")
|
|
35
|
-
start.set_defaults(handler=_handle_start, format_hint="")
|
|
35
|
+
start.set_defaults(handler=_handle_start, format_hint="import_start")
|
|
36
36
|
|
|
37
37
|
status = import_subparsers.add_parser("status", help="查询导入状态")
|
|
38
38
|
status.add_argument("--app-key")
|
|
@@ -741,6 +741,59 @@ def _format_import_status(result: dict[str, Any]) -> str:
|
|
|
741
741
|
return "\n".join(lines) + "\n"
|
|
742
742
|
|
|
743
743
|
|
|
744
|
+
def _format_import_repair(result: dict[str, Any]) -> str:
|
|
745
|
+
lines = [
|
|
746
|
+
f"Status: {result.get('status') or '-'}",
|
|
747
|
+
f"Source File: {result.get('source_file_path') or '-'}",
|
|
748
|
+
f"Repaired File: {result.get('repaired_file_path') or '-'}",
|
|
749
|
+
f"Can Import After Repair: {result.get('can_import_after_repair')}",
|
|
750
|
+
]
|
|
751
|
+
verification_id = result.get("verification_id") or result.get("new_verification_id")
|
|
752
|
+
if verification_id:
|
|
753
|
+
lines.append(f"Verification ID: {verification_id}")
|
|
754
|
+
applied_repairs = result.get("applied_repairs") if isinstance(result.get("applied_repairs"), list) else []
|
|
755
|
+
skipped_repairs = result.get("skipped_repairs") if isinstance(result.get("skipped_repairs"), list) else []
|
|
756
|
+
lines.append(f"Applied Repairs: {', '.join(map(str, applied_repairs)) if applied_repairs else '-'}")
|
|
757
|
+
if skipped_repairs:
|
|
758
|
+
lines.append(f"Skipped Repairs: {', '.join(map(str, skipped_repairs))}")
|
|
759
|
+
issue_summary = result.get("post_repair_issue_summary") if isinstance(result.get("post_repair_issue_summary"), dict) else {}
|
|
760
|
+
if issue_summary:
|
|
761
|
+
lines.append(
|
|
762
|
+
"Post Repair Issues: "
|
|
763
|
+
f"total={issue_summary.get('total', 0)}, "
|
|
764
|
+
f"errors={issue_summary.get('errors', 0)}, "
|
|
765
|
+
f"warnings={issue_summary.get('warnings', 0)}"
|
|
766
|
+
)
|
|
767
|
+
_append_warnings(lines, result.get("warnings"))
|
|
768
|
+
_append_verification(lines, result.get("verification"))
|
|
769
|
+
return "\n".join(lines) + "\n"
|
|
770
|
+
|
|
771
|
+
|
|
772
|
+
def _format_import_start(result: dict[str, Any]) -> str:
|
|
773
|
+
lines = [
|
|
774
|
+
f"Status: {result.get('status') or '-'}",
|
|
775
|
+
f"Accepted: {result.get('accepted')}",
|
|
776
|
+
f"Write Executed: {result.get('write_executed')}",
|
|
777
|
+
f"Safe To Retry: {result.get('safe_to_retry')}",
|
|
778
|
+
f"Import ID: {result.get('import_id') or '-'}",
|
|
779
|
+
f"Process ID: {result.get('process_id_str') or '-'}",
|
|
780
|
+
]
|
|
781
|
+
if result.get("file_url"):
|
|
782
|
+
lines.append(f"File URL: {result.get('file_url')}")
|
|
783
|
+
for key, label in (
|
|
784
|
+
("total", "Total Rows"),
|
|
785
|
+
("finished", "Finished Rows"),
|
|
786
|
+
("succeeded", "Succeeded Rows"),
|
|
787
|
+
("failed", "Failed Rows"),
|
|
788
|
+
):
|
|
789
|
+
value = result.get(key)
|
|
790
|
+
if value not in (None, ""):
|
|
791
|
+
lines.append(f"{label}: {value}")
|
|
792
|
+
_append_warnings(lines, result.get("warnings"))
|
|
793
|
+
_append_verification(lines, result.get("verification"))
|
|
794
|
+
return "\n".join(lines) + "\n"
|
|
795
|
+
|
|
796
|
+
|
|
744
797
|
def _format_export_common(result: dict[str, Any], *, title: str | None = None) -> str:
|
|
745
798
|
lines: list[str] = []
|
|
746
799
|
if title:
|
|
@@ -1029,6 +1082,8 @@ _FORMATTERS = {
|
|
|
1029
1082
|
"task_associated_report_detail_get": _format_task_associated_report_detail,
|
|
1030
1083
|
"import_template": _format_import_template,
|
|
1031
1084
|
"import_verify": _format_import_verify,
|
|
1085
|
+
"import_repair": _format_import_repair,
|
|
1086
|
+
"import_start": _format_import_start,
|
|
1032
1087
|
"import_status": _format_import_status,
|
|
1033
1088
|
"export_start": _format_export_start,
|
|
1034
1089
|
"export_status": _format_export_status,
|