@josephyan/qingflow-app-builder-mcp 0.2.0-beta.4 → 0.2.0-beta.41
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 +3 -3
- package/package.json +1 -1
- package/pyproject.toml +3 -1
- package/skills/qingflow-app-builder/SKILL.md +154 -22
- package/skills/qingflow-app-builder/references/create-app.md +51 -21
- package/skills/qingflow-app-builder/references/environments.md +1 -1
- package/skills/qingflow-app-builder/references/flow-actors-and-permissions.md +123 -0
- package/skills/qingflow-app-builder/references/gotchas.md +28 -1
- package/skills/qingflow-app-builder/references/solution-playbooks.md +14 -12
- package/skills/qingflow-app-builder/references/tool-selection.md +45 -17
- package/skills/qingflow-app-builder/references/update-flow.md +112 -25
- package/skills/qingflow-app-builder/references/update-layout.md +11 -24
- package/skills/qingflow-app-builder/references/update-schema.md +1 -23
- package/skills/qingflow-app-builder/references/update-views.md +87 -21
- package/src/qingflow_mcp/__init__.py +1 -1
- package/src/qingflow_mcp/backend_client.py +189 -0
- package/src/qingflow_mcp/builder_facade/models.py +584 -1
- package/src/qingflow_mcp/builder_facade/service.py +4698 -262
- package/src/qingflow_mcp/config.py +39 -0
- package/src/qingflow_mcp/import_store.py +121 -0
- package/src/qingflow_mcp/list_type_labels.py +24 -0
- package/src/qingflow_mcp/server.py +131 -16
- package/src/qingflow_mcp/server_app_builder.py +132 -72
- package/src/qingflow_mcp/server_app_user.py +143 -187
- package/src/qingflow_mcp/solution/compiler/form_compiler.py +14 -4
- package/src/qingflow_mcp/solution/compiler/workflow_compiler.py +41 -2
- package/src/qingflow_mcp/solution/executor.py +44 -7
- package/src/qingflow_mcp/tools/ai_builder_tools.py +1567 -144
- package/src/qingflow_mcp/tools/app_tools.py +243 -14
- package/src/qingflow_mcp/tools/approval_tools.py +411 -76
- package/src/qingflow_mcp/tools/directory_tools.py +203 -31
- package/src/qingflow_mcp/tools/feedback_tools.py +230 -0
- package/src/qingflow_mcp/tools/file_tools.py +1 -0
- package/src/qingflow_mcp/tools/import_tools.py +1164 -0
- package/src/qingflow_mcp/tools/portal_tools.py +31 -0
- package/src/qingflow_mcp/tools/record_tools.py +4943 -1025
- package/src/qingflow_mcp/tools/task_context_tools.py +1335 -0
- package/src/qingflow_mcp/tools/task_tools.py +376 -225
- package/src/qingflow_mcp/tools/workflow_tools.py +78 -4
|
@@ -18,10 +18,18 @@ class PortalTools(ToolBase):
|
|
|
18
18
|
def portal_get(profile: str = DEFAULT_PROFILE, dash_key: str = "", being_draft: bool = False) -> JSONObject:
|
|
19
19
|
return self.portal_get(profile=profile, dash_key=dash_key, being_draft=being_draft)
|
|
20
20
|
|
|
21
|
+
@mcp.tool()
|
|
22
|
+
def portal_get_base_info(profile: str = DEFAULT_PROFILE, dash_key: str = "") -> JSONObject:
|
|
23
|
+
return self.portal_get_base_info(profile=profile, dash_key=dash_key)
|
|
24
|
+
|
|
21
25
|
@mcp.tool()
|
|
22
26
|
def portal_create(profile: str = DEFAULT_PROFILE, payload: JSONObject | None = None) -> JSONObject:
|
|
23
27
|
return self.portal_create(profile=profile, payload=payload or {})
|
|
24
28
|
|
|
29
|
+
@mcp.tool(description=self._high_risk_tool_description(operation="update", target="portal base settings"))
|
|
30
|
+
def portal_update_base_info(profile: str = DEFAULT_PROFILE, dash_key: str = "", payload: JSONObject | None = None) -> JSONObject:
|
|
31
|
+
return self.portal_update_base_info(profile=profile, dash_key=dash_key, payload=payload or {})
|
|
32
|
+
|
|
25
33
|
@mcp.tool(description=self._high_risk_tool_description(operation="update", target="portal configuration"))
|
|
26
34
|
def portal_update(profile: str = DEFAULT_PROFILE, dash_key: str = "", payload: JSONObject | None = None) -> JSONObject:
|
|
27
35
|
return self.portal_update(profile=profile, dash_key=dash_key, payload=payload or {})
|
|
@@ -59,6 +67,29 @@ class PortalTools(ToolBase):
|
|
|
59
67
|
|
|
60
68
|
return self._run(profile, runner)
|
|
61
69
|
|
|
70
|
+
def portal_get_base_info(self, *, profile: str, dash_key: str) -> JSONObject:
|
|
71
|
+
self._require_dash_key(dash_key)
|
|
72
|
+
|
|
73
|
+
def runner(session_profile, context):
|
|
74
|
+
result = self.backend.request("GET", context, f"/dash/{dash_key}/baseInfo")
|
|
75
|
+
return {"profile": profile, "ws_id": session_profile.selected_ws_id, "dash_key": dash_key, "result": result}
|
|
76
|
+
|
|
77
|
+
return self._run(profile, runner)
|
|
78
|
+
|
|
79
|
+
def portal_update_base_info(self, *, profile: str, dash_key: str, payload: JSONObject) -> JSONObject:
|
|
80
|
+
self._require_dash_key(dash_key)
|
|
81
|
+
body = self._require_dict(payload)
|
|
82
|
+
|
|
83
|
+
def runner(session_profile, context):
|
|
84
|
+
result = self.backend.request("POST", context, f"/dash/{dash_key}/baseInfo", json_body=body)
|
|
85
|
+
return self._attach_human_review_notice(
|
|
86
|
+
{"profile": profile, "ws_id": session_profile.selected_ws_id, "dash_key": dash_key, "result": result},
|
|
87
|
+
operation="update",
|
|
88
|
+
target="portal base settings",
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
return self._run(profile, runner)
|
|
92
|
+
|
|
62
93
|
def portal_update(self, *, profile: str, dash_key: str, payload: JSONObject) -> JSONObject:
|
|
63
94
|
self._require_dash_key(dash_key)
|
|
64
95
|
body = self._require_dict(payload)
|