@qingflow-tech/qingflow-cli 1.1.39 → 1.1.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 +1 -1
- package/src/qingflow_mcp/builder_facade/service.py +8 -8
- package/src/qingflow_mcp/server_cloud.py +89 -3
- package/src/qingflow_mcp/session_store.py +7 -1
- package/src/qingflow_mcp/tools/ai_builder_tools.py +1 -59
- package/src/qingflow_mcp/tools/app_tools.py +15 -29
- package/src/qingflow_mcp/tools/approval_tools.py +16 -40
- package/src/qingflow_mcp/tools/auth_tools.py +18 -13
- package/src/qingflow_mcp/tools/base.py +114 -74
- package/src/qingflow_mcp/tools/code_block_tools.py +2 -5
- package/src/qingflow_mcp/tools/custom_button_tools.py +6 -11
- package/src/qingflow_mcp/tools/directory_tools.py +9 -16
- package/src/qingflow_mcp/tools/export_tools.py +5 -9
- package/src/qingflow_mcp/tools/feedback_tools.py +0 -2
- package/src/qingflow_mcp/tools/file_tools.py +3 -5
- package/src/qingflow_mcp/tools/import_tools.py +7 -13
- package/src/qingflow_mcp/tools/navigation_tools.py +12 -23
- package/src/qingflow_mcp/tools/package_tools.py +11 -21
- package/src/qingflow_mcp/tools/portal_tools.py +9 -17
- package/src/qingflow_mcp/tools/qingbi_report_tools.py +18 -23
- package/src/qingflow_mcp/tools/record_tools.py +97 -53
- package/src/qingflow_mcp/tools/repository_dev_tools.py +4 -7
- package/src/qingflow_mcp/tools/resource_read_tools.py +6 -9
- package/src/qingflow_mcp/tools/role_tools.py +5 -9
- package/src/qingflow_mcp/tools/solution_tools.py +4 -16
- package/src/qingflow_mcp/tools/task_context_tools.py +6 -12
- package/src/qingflow_mcp/tools/task_tools.py +12 -29
- package/src/qingflow_mcp/tools/view_tools.py +23 -32
- package/src/qingflow_mcp/tools/workflow_tools.py +30 -47
- package/src/qingflow_mcp/tools/workspace_tools.py +5 -9
|
@@ -64,7 +64,7 @@ from ..solution.compiler.icon_utils import (
|
|
|
64
64
|
workspace_icon_config,
|
|
65
65
|
)
|
|
66
66
|
from .app_tools import AppTools
|
|
67
|
-
from .base import ToolBase
|
|
67
|
+
from .base import ToolBase
|
|
68
68
|
from .custom_button_tools import CustomButtonTools
|
|
69
69
|
from .directory_tools import DirectoryTools
|
|
70
70
|
from .package_tools import PackageTools
|
|
@@ -857,7 +857,6 @@ class AiBuilderTools(ToolBase):
|
|
|
857
857
|
expected_package_id=expected_package_id,
|
|
858
858
|
)
|
|
859
859
|
|
|
860
|
-
@tool_cn_name("分组列表查询")
|
|
861
860
|
def package_list(self, *, profile: str, trial_status: str = "all", query: str = "") -> JSONObject:
|
|
862
861
|
"""执行分组与包相关逻辑。"""
|
|
863
862
|
normalized_args = {"trial_status": trial_status, "query": query}
|
|
@@ -868,7 +867,6 @@ class AiBuilderTools(ToolBase):
|
|
|
868
867
|
suggested_next_call={"tool_name": "package_list", "arguments": {"profile": profile, "trial_status": trial_status, "query": query}},
|
|
869
868
|
)
|
|
870
869
|
|
|
871
|
-
@tool_cn_name("分组解析")
|
|
872
870
|
def package_resolve(self, *, profile: str, package_name: str) -> JSONObject:
|
|
873
871
|
"""执行分组与包相关逻辑。"""
|
|
874
872
|
normalized_args = {"package_name": package_name}
|
|
@@ -879,7 +877,6 @@ class AiBuilderTools(ToolBase):
|
|
|
879
877
|
suggested_next_call={"tool_name": "package_resolve", "arguments": {"profile": profile, "package_name": package_name}},
|
|
880
878
|
)
|
|
881
879
|
|
|
882
|
-
@tool_cn_name("搭建工具契约查询")
|
|
883
880
|
def builder_tool_contract(self, *, tool_name: str) -> JSONObject:
|
|
884
881
|
"""执行工具方法逻辑。"""
|
|
885
882
|
requested = str(tool_name or "").strip()
|
|
@@ -935,7 +932,6 @@ class AiBuilderTools(ToolBase):
|
|
|
935
932
|
"contract": contract,
|
|
936
933
|
}
|
|
937
934
|
|
|
938
|
-
@tool_cn_name("工作区图标目录")
|
|
939
935
|
def workspace_icon_catalog_get(self, *, profile: str = DEFAULT_PROFILE) -> JSONObject:
|
|
940
936
|
"""读取应用、应用包、门户可用的工作区图标候选。"""
|
|
941
937
|
catalog = workspace_icon_catalog_payload()
|
|
@@ -962,7 +958,6 @@ class AiBuilderTools(ToolBase):
|
|
|
962
958
|
},
|
|
963
959
|
}
|
|
964
960
|
|
|
965
|
-
@tool_cn_name("分组创建")
|
|
966
961
|
def package_create(
|
|
967
962
|
self,
|
|
968
963
|
*,
|
|
@@ -1007,7 +1002,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1007
1002
|
},
|
|
1008
1003
|
)
|
|
1009
1004
|
|
|
1010
|
-
@tool_cn_name("分组详情查询")
|
|
1011
1005
|
def package_get(self, *, profile: str, package_id: int | None = None) -> JSONObject:
|
|
1012
1006
|
"""执行分组与包相关逻辑。"""
|
|
1013
1007
|
normalized_args = {"package_id": package_id}
|
|
@@ -1018,7 +1012,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1018
1012
|
suggested_next_call={"tool_name": "package_get", "arguments": {"profile": profile, "package_id": package_id}},
|
|
1019
1013
|
))
|
|
1020
1014
|
|
|
1021
|
-
@tool_cn_name("分组配置应用")
|
|
1022
1015
|
def package_apply(
|
|
1023
1016
|
self,
|
|
1024
1017
|
*,
|
|
@@ -1085,7 +1078,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1085
1078
|
))
|
|
1086
1079
|
return _attach_builder_apply_envelope("package_apply", result)
|
|
1087
1080
|
|
|
1088
|
-
@tool_cn_name("分组更新")
|
|
1089
1081
|
def package_update(
|
|
1090
1082
|
self,
|
|
1091
1083
|
*,
|
|
@@ -1124,7 +1116,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1124
1116
|
suggested_next_call={"tool_name": "package_update", "arguments": {"profile": profile, **normalized_args}},
|
|
1125
1117
|
)
|
|
1126
1118
|
|
|
1127
|
-
@tool_cn_name("方案安装")
|
|
1128
1119
|
def solution_install(
|
|
1129
1120
|
self,
|
|
1130
1121
|
*,
|
|
@@ -1151,7 +1142,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1151
1142
|
suggested_next_call={"tool_name": "solution_install", "arguments": {"profile": profile, **normalized_args}},
|
|
1152
1143
|
)
|
|
1153
1144
|
|
|
1154
|
-
@tool_cn_name("成员检索")
|
|
1155
1145
|
def member_search(
|
|
1156
1146
|
self,
|
|
1157
1147
|
*,
|
|
@@ -1188,7 +1178,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1188
1178
|
suggested_next_call={"tool_name": "member_search", "arguments": {"profile": profile, **normalized_args}},
|
|
1189
1179
|
)
|
|
1190
1180
|
|
|
1191
|
-
@tool_cn_name("角色检索")
|
|
1192
1181
|
def role_search(self, *, profile: str, keyword: str, page_num: int = 1, page_size: int = 20) -> JSONObject:
|
|
1193
1182
|
"""执行角色相关逻辑。"""
|
|
1194
1183
|
normalized_keyword = str(keyword or "").strip()
|
|
@@ -1206,7 +1195,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1206
1195
|
suggested_next_call={"tool_name": "role_search", "arguments": {"profile": profile, **normalized_args}},
|
|
1207
1196
|
)
|
|
1208
1197
|
|
|
1209
|
-
@tool_cn_name("角色创建")
|
|
1210
1198
|
def role_create(
|
|
1211
1199
|
self,
|
|
1212
1200
|
*,
|
|
@@ -1239,7 +1227,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1239
1227
|
suggested_next_call={"tool_name": "role_create", "arguments": {"profile": profile, **normalized_args}},
|
|
1240
1228
|
)
|
|
1241
1229
|
|
|
1242
|
-
@tool_cn_name("分组挂载应用")
|
|
1243
1230
|
def package_attach_app(self, *, profile: str, tag_id: int, app_key: str, app_title: str = "") -> JSONObject:
|
|
1244
1231
|
"""执行分组与包相关逻辑。"""
|
|
1245
1232
|
normalized_args = {"tag_id": tag_id, "app_key": app_key, "app_title": app_title}
|
|
@@ -1260,7 +1247,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1260
1247
|
),
|
|
1261
1248
|
)
|
|
1262
1249
|
|
|
1263
|
-
@tool_cn_name("释放应用编辑锁")
|
|
1264
1250
|
def app_release_edit_lock_if_mine(
|
|
1265
1251
|
self,
|
|
1266
1252
|
*,
|
|
@@ -1287,7 +1273,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1287
1273
|
suggested_next_call={"tool_name": "app_release_edit_lock_if_mine", "arguments": {"profile": profile, **normalized_args}},
|
|
1288
1274
|
)
|
|
1289
1275
|
|
|
1290
|
-
@tool_cn_name("应用解析")
|
|
1291
1276
|
def app_resolve(
|
|
1292
1277
|
self,
|
|
1293
1278
|
*,
|
|
@@ -1305,7 +1290,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1305
1290
|
suggested_next_call={"tool_name": "app_resolve", "arguments": {"profile": profile, **normalized_args}},
|
|
1306
1291
|
))
|
|
1307
1292
|
|
|
1308
|
-
@tool_cn_name("按钮样式目录")
|
|
1309
1293
|
def button_style_catalog_get(self, *, profile: str) -> JSONObject:
|
|
1310
1294
|
"""执行按钮样式相关逻辑。"""
|
|
1311
1295
|
normalized_args: dict[str, object] = {}
|
|
@@ -1316,7 +1300,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1316
1300
|
suggested_next_call={"tool_name": "button_style_catalog_get", "arguments": {"profile": profile}},
|
|
1317
1301
|
)
|
|
1318
1302
|
|
|
1319
|
-
@tool_cn_name("应用按钮声明式应用")
|
|
1320
1303
|
def app_custom_buttons_apply(
|
|
1321
1304
|
self,
|
|
1322
1305
|
*,
|
|
@@ -1385,7 +1368,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1385
1368
|
suggested_next_call={"tool_name": "app_custom_buttons_apply", "arguments": {"profile": profile, **normalized_args}},
|
|
1386
1369
|
))
|
|
1387
1370
|
|
|
1388
|
-
@tool_cn_name("应用关联资源声明式应用")
|
|
1389
1371
|
def app_associated_resources_apply(
|
|
1390
1372
|
self,
|
|
1391
1373
|
*,
|
|
@@ -1472,7 +1454,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1472
1454
|
suggested_next_call={"tool_name": "app_associated_resources_apply", "arguments": {"profile": profile, **normalized_args}},
|
|
1473
1455
|
))
|
|
1474
1456
|
|
|
1475
|
-
@tool_cn_name("应用按钮列表")
|
|
1476
1457
|
def app_custom_button_list(self, *, profile: str, app_key: str) -> JSONObject:
|
|
1477
1458
|
"""执行应用相关逻辑。"""
|
|
1478
1459
|
normalized_args = {"app_key": app_key}
|
|
@@ -1483,7 +1464,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1483
1464
|
suggested_next_call={"tool_name": "app_custom_button_list", "arguments": {"profile": profile, **normalized_args}},
|
|
1484
1465
|
)
|
|
1485
1466
|
|
|
1486
|
-
@tool_cn_name("应用按钮详情")
|
|
1487
1467
|
def app_custom_button_get(self, *, profile: str, app_key: str, button_id: int) -> JSONObject:
|
|
1488
1468
|
"""执行应用相关逻辑。"""
|
|
1489
1469
|
normalized_args = {"app_key": app_key, "button_id": button_id}
|
|
@@ -1494,7 +1474,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1494
1474
|
suggested_next_call={"tool_name": "app_custom_button_get", "arguments": {"profile": profile, **normalized_args}},
|
|
1495
1475
|
)
|
|
1496
1476
|
|
|
1497
|
-
@tool_cn_name("应用按钮创建")
|
|
1498
1477
|
def app_custom_button_create(self, *, profile: str, app_key: str, payload: JSONObject) -> JSONObject:
|
|
1499
1478
|
"""执行应用相关逻辑。"""
|
|
1500
1479
|
try:
|
|
@@ -1530,7 +1509,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1530
1509
|
suggested_next_call={"tool_name": "app_custom_button_create", "arguments": {"profile": profile, **normalized_args}},
|
|
1531
1510
|
)
|
|
1532
1511
|
|
|
1533
|
-
@tool_cn_name("应用按钮更新")
|
|
1534
1512
|
def app_custom_button_update(self, *, profile: str, app_key: str, button_id: int, payload: JSONObject) -> JSONObject:
|
|
1535
1513
|
"""执行应用相关逻辑。"""
|
|
1536
1514
|
try:
|
|
@@ -1564,7 +1542,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1564
1542
|
suggested_next_call={"tool_name": "app_custom_button_update", "arguments": {"profile": profile, **normalized_args}},
|
|
1565
1543
|
)
|
|
1566
1544
|
|
|
1567
|
-
@tool_cn_name("应用按钮删除")
|
|
1568
1545
|
def app_custom_button_delete(self, *, profile: str, app_key: str, button_id: int) -> JSONObject:
|
|
1569
1546
|
"""执行应用相关逻辑。"""
|
|
1570
1547
|
normalized_args = {"app_key": app_key, "button_id": button_id}
|
|
@@ -1575,7 +1552,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1575
1552
|
suggested_next_call={"tool_name": "app_custom_button_delete", "arguments": {"profile": profile, **normalized_args}},
|
|
1576
1553
|
)
|
|
1577
1554
|
|
|
1578
|
-
@tool_cn_name("应用摘要读取")
|
|
1579
1555
|
def app_read_summary(self, *, profile: str, app_key: str) -> JSONObject:
|
|
1580
1556
|
"""执行应用相关逻辑。"""
|
|
1581
1557
|
normalized_args = {"app_key": app_key}
|
|
@@ -1586,7 +1562,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1586
1562
|
suggested_next_call={"tool_name": "app_get", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1587
1563
|
))
|
|
1588
1564
|
|
|
1589
|
-
@tool_cn_name("应用详情查询")
|
|
1590
1565
|
def app_get(self, *, profile: str, app_key: str, app_keys: list[str] | None = None) -> JSONObject:
|
|
1591
1566
|
"""执行应用相关逻辑。"""
|
|
1592
1567
|
if app_keys is not None:
|
|
@@ -1604,7 +1579,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1604
1579
|
suggested_next_call={"tool_name": "app_get", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1605
1580
|
))
|
|
1606
1581
|
|
|
1607
|
-
@tool_cn_name("应用字段摘要读取")
|
|
1608
1582
|
def app_read_fields(self, *, profile: str, app_key: str) -> JSONObject:
|
|
1609
1583
|
"""执行应用相关逻辑。"""
|
|
1610
1584
|
normalized_args = {"app_key": app_key}
|
|
@@ -1615,7 +1589,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1615
1589
|
suggested_next_call={"tool_name": "app_get_fields", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1616
1590
|
)
|
|
1617
1591
|
|
|
1618
|
-
@tool_cn_name("应用字段详情查询")
|
|
1619
1592
|
def app_get_fields(self, *, profile: str, app_key: str, app_keys: list[str] | None = None) -> JSONObject:
|
|
1620
1593
|
"""执行应用相关逻辑。"""
|
|
1621
1594
|
if app_keys is not None:
|
|
@@ -1633,7 +1606,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1633
1606
|
suggested_next_call={"tool_name": "app_get_fields", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1634
1607
|
)
|
|
1635
1608
|
|
|
1636
|
-
@tool_cn_name("修复代码块字段")
|
|
1637
1609
|
def app_repair_code_blocks(
|
|
1638
1610
|
self,
|
|
1639
1611
|
*,
|
|
@@ -1651,7 +1623,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1651
1623
|
suggested_next_call={"tool_name": "app_repair_code_blocks", "arguments": {"profile": profile, **normalized_args}},
|
|
1652
1624
|
)
|
|
1653
1625
|
|
|
1654
|
-
@tool_cn_name("应用布局摘要读取")
|
|
1655
1626
|
def app_read_layout_summary(self, *, profile: str, app_key: str) -> JSONObject:
|
|
1656
1627
|
"""执行应用相关逻辑。"""
|
|
1657
1628
|
normalized_args = {"app_key": app_key}
|
|
@@ -1662,7 +1633,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1662
1633
|
suggested_next_call={"tool_name": "app_get_layout", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1663
1634
|
)
|
|
1664
1635
|
|
|
1665
|
-
@tool_cn_name("应用布局详情查询")
|
|
1666
1636
|
def app_get_layout(self, *, profile: str, app_key: str, app_keys: list[str] | None = None) -> JSONObject:
|
|
1667
1637
|
"""执行应用相关逻辑。"""
|
|
1668
1638
|
if app_keys is not None:
|
|
@@ -1680,7 +1650,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1680
1650
|
suggested_next_call={"tool_name": "app_get_layout", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1681
1651
|
)
|
|
1682
1652
|
|
|
1683
|
-
@tool_cn_name("应用视图摘要读取")
|
|
1684
1653
|
def app_read_views_summary(self, *, profile: str, app_key: str) -> JSONObject:
|
|
1685
1654
|
"""执行应用相关逻辑。"""
|
|
1686
1655
|
normalized_args = {"app_key": app_key}
|
|
@@ -1691,7 +1660,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1691
1660
|
suggested_next_call={"tool_name": "app_get_views", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1692
1661
|
)
|
|
1693
1662
|
|
|
1694
|
-
@tool_cn_name("应用视图详情查询")
|
|
1695
1663
|
def app_get_views(self, *, profile: str, app_key: str, app_keys: list[str] | None = None) -> JSONObject:
|
|
1696
1664
|
"""执行应用相关逻辑。"""
|
|
1697
1665
|
if app_keys is not None:
|
|
@@ -1709,7 +1677,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1709
1677
|
suggested_next_call={"tool_name": "app_get_views", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1710
1678
|
)
|
|
1711
1679
|
|
|
1712
|
-
@tool_cn_name("应用流程摘要读取")
|
|
1713
1680
|
def app_read_flow_summary(self, *, profile: str, app_key: str) -> JSONObject:
|
|
1714
1681
|
"""执行应用相关逻辑。"""
|
|
1715
1682
|
normalized_args = {"app_key": app_key}
|
|
@@ -1720,7 +1687,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1720
1687
|
suggested_next_call={"tool_name": "app_get_flow", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1721
1688
|
)
|
|
1722
1689
|
|
|
1723
|
-
@tool_cn_name("应用流程详情查询")
|
|
1724
1690
|
def app_get_flow(self, *, profile: str, app_key: str, app_keys: list[str] | None = None) -> JSONObject:
|
|
1725
1691
|
"""执行应用相关逻辑。"""
|
|
1726
1692
|
if app_keys is not None:
|
|
@@ -1738,7 +1704,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1738
1704
|
suggested_next_call={"tool_name": "app_get_flow", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1739
1705
|
)
|
|
1740
1706
|
|
|
1741
|
-
@tool_cn_name("应用流程规格查询")
|
|
1742
1707
|
def app_flow_get(self, *, profile: str, app_key: str, version_id: str | None = None) -> JSONObject:
|
|
1743
1708
|
normalized_args = {"app_key": app_key, "version_id": version_id}
|
|
1744
1709
|
return _safe_tool_call(
|
|
@@ -1748,7 +1713,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1748
1713
|
suggested_next_call={"tool_name": "app_flow_get", "arguments": {"profile": profile, **normalized_args}},
|
|
1749
1714
|
)
|
|
1750
1715
|
|
|
1751
|
-
@tool_cn_name("应用流程规格 Schema 查询")
|
|
1752
1716
|
def app_flow_get_schema(self, *, profile: str, schema_version: str | None = None) -> JSONObject:
|
|
1753
1717
|
normalized_args = {"schema_version": schema_version}
|
|
1754
1718
|
return _safe_tool_call(
|
|
@@ -1758,7 +1722,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1758
1722
|
suggested_next_call={"tool_name": "app_flow_get_schema", "arguments": {"profile": profile, **normalized_args}},
|
|
1759
1723
|
)
|
|
1760
1724
|
|
|
1761
|
-
@tool_cn_name("应用图表摘要读取")
|
|
1762
1725
|
def app_read_charts_summary(self, *, profile: str, app_key: str) -> JSONObject:
|
|
1763
1726
|
"""执行应用相关逻辑。"""
|
|
1764
1727
|
normalized_args = {"app_key": app_key}
|
|
@@ -1769,7 +1732,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1769
1732
|
suggested_next_call={"tool_name": "app_get_charts", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1770
1733
|
)
|
|
1771
1734
|
|
|
1772
|
-
@tool_cn_name("应用图表详情查询")
|
|
1773
1735
|
def app_get_charts(self, *, profile: str, app_key: str, app_keys: list[str] | None = None) -> JSONObject:
|
|
1774
1736
|
"""执行应用相关逻辑。"""
|
|
1775
1737
|
if app_keys is not None:
|
|
@@ -1787,7 +1749,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1787
1749
|
suggested_next_call={"tool_name": "app_get_charts", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1788
1750
|
)
|
|
1789
1751
|
|
|
1790
|
-
@tool_cn_name("自定义按钮读取")
|
|
1791
1752
|
def app_get_buttons(self, *, profile: str, app_key: str = "", app_keys: list[str] | None = None) -> JSONObject:
|
|
1792
1753
|
if app_keys is not None:
|
|
1793
1754
|
return self._read_app_batch(
|
|
@@ -1804,7 +1765,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1804
1765
|
suggested_next_call={"tool_name": "app_get_buttons", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1805
1766
|
)
|
|
1806
1767
|
|
|
1807
|
-
@tool_cn_name("关联资源读取")
|
|
1808
1768
|
def app_get_associated_resources(self, *, profile: str, app_key: str = "", app_keys: list[str] | None = None) -> JSONObject:
|
|
1809
1769
|
if app_keys is not None:
|
|
1810
1770
|
return self._read_app_batch(
|
|
@@ -1821,7 +1781,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1821
1781
|
suggested_next_call={"tool_name": "app_get_associated_resources", "arguments": {"profile": profile, "app_key": app_key}},
|
|
1822
1782
|
)
|
|
1823
1783
|
|
|
1824
|
-
@tool_cn_name("门户列表查询")
|
|
1825
1784
|
def portal_list(self, *, profile: str) -> JSONObject:
|
|
1826
1785
|
"""执行门户相关逻辑。"""
|
|
1827
1786
|
return _publicize_package_fields(_safe_tool_call(
|
|
@@ -1831,7 +1790,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1831
1790
|
suggested_next_call={"tool_name": "portal_list", "arguments": {"profile": profile}},
|
|
1832
1791
|
))
|
|
1833
1792
|
|
|
1834
|
-
@tool_cn_name("门户详情查询")
|
|
1835
1793
|
def portal_get(self, *, profile: str, dash_key: str, being_draft: bool = True) -> JSONObject:
|
|
1836
1794
|
"""执行门户相关逻辑。"""
|
|
1837
1795
|
normalized_args = {"dash_key": dash_key, "being_draft": being_draft}
|
|
@@ -1842,7 +1800,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1842
1800
|
suggested_next_call={"tool_name": "portal_get", "arguments": {"profile": profile, **normalized_args}},
|
|
1843
1801
|
))
|
|
1844
1802
|
|
|
1845
|
-
@tool_cn_name("门户摘要读取")
|
|
1846
1803
|
def portal_read_summary(self, *, profile: str, dash_key: str, being_draft: bool = True) -> JSONObject:
|
|
1847
1804
|
"""执行门户相关逻辑。"""
|
|
1848
1805
|
normalized_args = {"dash_key": dash_key, "being_draft": being_draft}
|
|
@@ -1853,7 +1810,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1853
1810
|
suggested_next_call={"tool_name": "portal_get", "arguments": {"profile": profile, **normalized_args}},
|
|
1854
1811
|
))
|
|
1855
1812
|
|
|
1856
|
-
@tool_cn_name("视图详情查询")
|
|
1857
1813
|
def view_get(self, *, profile: str, view_key: str = "", viewgraph_key: str = "") -> JSONObject:
|
|
1858
1814
|
"""执行视图相关逻辑。"""
|
|
1859
1815
|
resolved_view_key = _normalize_builder_view_key(str(view_key or viewgraph_key or "").strip())
|
|
@@ -1865,7 +1821,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1865
1821
|
suggested_next_call={"tool_name": "view_get", "arguments": {"profile": profile, **normalized_args}},
|
|
1866
1822
|
)
|
|
1867
1823
|
|
|
1868
|
-
@tool_cn_name("图表详情查询")
|
|
1869
1824
|
def chart_get(
|
|
1870
1825
|
self,
|
|
1871
1826
|
*,
|
|
@@ -1881,7 +1836,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1881
1836
|
suggested_next_call={"tool_name": "chart_get", "arguments": {"profile": profile, "chart_id": chart_id}},
|
|
1882
1837
|
)
|
|
1883
1838
|
|
|
1884
|
-
@tool_cn_name("应用结构规划")
|
|
1885
1839
|
def app_schema_plan(
|
|
1886
1840
|
self,
|
|
1887
1841
|
*,
|
|
@@ -1955,7 +1909,6 @@ class AiBuilderTools(ToolBase):
|
|
|
1955
1909
|
suggested_next_call={"tool_name": "app_schema_plan", "arguments": {"profile": profile, **normalized_args}},
|
|
1956
1910
|
))
|
|
1957
1911
|
|
|
1958
|
-
@tool_cn_name("应用布局规划")
|
|
1959
1912
|
def app_layout_plan(
|
|
1960
1913
|
self,
|
|
1961
1914
|
*,
|
|
@@ -2003,7 +1956,6 @@ class AiBuilderTools(ToolBase):
|
|
|
2003
1956
|
suggested_next_call={"tool_name": "app_layout_plan", "arguments": {"profile": profile, **normalized_request}},
|
|
2004
1957
|
)
|
|
2005
1958
|
|
|
2006
|
-
@tool_cn_name("应用流程规划")
|
|
2007
1959
|
def app_flow_plan(
|
|
2008
1960
|
self,
|
|
2009
1961
|
*,
|
|
@@ -2049,7 +2001,6 @@ class AiBuilderTools(ToolBase):
|
|
|
2049
2001
|
suggested_next_call={"tool_name": "app_flow_plan", "arguments": {"profile": profile, **request.model_dump(mode="json")}},
|
|
2050
2002
|
)
|
|
2051
2003
|
|
|
2052
|
-
@tool_cn_name("应用视图规划")
|
|
2053
2004
|
def app_views_plan(
|
|
2054
2005
|
self,
|
|
2055
2006
|
*,
|
|
@@ -2120,7 +2071,6 @@ class AiBuilderTools(ToolBase):
|
|
|
2120
2071
|
},
|
|
2121
2072
|
)
|
|
2122
2073
|
|
|
2123
|
-
@tool_cn_name("应用结构应用")
|
|
2124
2074
|
def app_schema_apply(
|
|
2125
2075
|
self,
|
|
2126
2076
|
*,
|
|
@@ -3475,7 +3425,6 @@ class AiBuilderTools(ToolBase):
|
|
|
3475
3425
|
result["safe_to_retry"] = False
|
|
3476
3426
|
return result
|
|
3477
3427
|
|
|
3478
|
-
@tool_cn_name("应用布局应用")
|
|
3479
3428
|
def app_layout_apply(
|
|
3480
3429
|
self,
|
|
3481
3430
|
*,
|
|
@@ -3561,7 +3510,6 @@ class AiBuilderTools(ToolBase):
|
|
|
3561
3510
|
suggested_next_call={"tool_name": "app_layout_apply", "arguments": {"profile": profile, **normalized_args}},
|
|
3562
3511
|
)
|
|
3563
3512
|
|
|
3564
|
-
@tool_cn_name("应用流程应用")
|
|
3565
3513
|
def app_flow_apply(
|
|
3566
3514
|
self,
|
|
3567
3515
|
*,
|
|
@@ -3725,7 +3673,6 @@ class AiBuilderTools(ToolBase):
|
|
|
3725
3673
|
suggested_next_call={"tool_name": "app_flow_apply", "arguments": {"profile": profile, **normalized_args}},
|
|
3726
3674
|
)
|
|
3727
3675
|
|
|
3728
|
-
@tool_cn_name("应用视图应用")
|
|
3729
3676
|
def app_views_apply(
|
|
3730
3677
|
self,
|
|
3731
3678
|
*,
|
|
@@ -4087,7 +4034,6 @@ class AiBuilderTools(ToolBase):
|
|
|
4087
4034
|
suggested_next_call={"tool_name": "app_views_apply", "arguments": {"profile": profile, **normalized_args}},
|
|
4088
4035
|
)
|
|
4089
4036
|
|
|
4090
|
-
@tool_cn_name("图表配置应用")
|
|
4091
4037
|
def chart_apply(
|
|
4092
4038
|
self,
|
|
4093
4039
|
*,
|
|
@@ -4108,7 +4054,6 @@ class AiBuilderTools(ToolBase):
|
|
|
4108
4054
|
reorder_chart_ids=reorder_chart_ids,
|
|
4109
4055
|
)
|
|
4110
4056
|
|
|
4111
|
-
@tool_cn_name("应用图表应用")
|
|
4112
4057
|
def app_charts_apply(
|
|
4113
4058
|
self,
|
|
4114
4059
|
*,
|
|
@@ -4170,7 +4115,6 @@ class AiBuilderTools(ToolBase):
|
|
|
4170
4115
|
suggested_next_call={"tool_name": "app_charts_apply", "arguments": {"profile": profile, **normalized_args}},
|
|
4171
4116
|
))
|
|
4172
4117
|
|
|
4173
|
-
@tool_cn_name("门户配置应用")
|
|
4174
4118
|
def portal_apply(
|
|
4175
4119
|
self,
|
|
4176
4120
|
*,
|
|
@@ -4287,7 +4231,6 @@ class AiBuilderTools(ToolBase):
|
|
|
4287
4231
|
))
|
|
4288
4232
|
return _attach_builder_apply_envelope("portal_apply", result)
|
|
4289
4233
|
|
|
4290
|
-
@tool_cn_name("门户删除")
|
|
4291
4234
|
def portal_delete(self, *, profile: str, dash_key: str) -> JSONObject:
|
|
4292
4235
|
"""执行门户删除逻辑。"""
|
|
4293
4236
|
normalized_args = {"dash_key": dash_key}
|
|
@@ -4299,7 +4242,6 @@ class AiBuilderTools(ToolBase):
|
|
|
4299
4242
|
))
|
|
4300
4243
|
return _attach_builder_apply_envelope("portal_delete", result)
|
|
4301
4244
|
|
|
4302
|
-
@tool_cn_name("应用发布校验")
|
|
4303
4245
|
def app_publish_verify(
|
|
4304
4246
|
self,
|
|
4305
4247
|
*,
|
|
@@ -11,7 +11,7 @@ from ..errors import QingflowApiError, backend_code_int, is_auth_like_error, rai
|
|
|
11
11
|
from ..json_types import JSONObject
|
|
12
12
|
from ..list_type_labels import SYSTEM_VIEW_DEFINITIONS, get_app_publish_status_label
|
|
13
13
|
from ..solution.compiler.icon_utils import workspace_icon_config
|
|
14
|
-
from .base import ToolBase
|
|
14
|
+
from .base import ToolBase
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class AppTools(ToolBase):
|
|
@@ -86,7 +86,6 @@ class AppTools(ToolBase):
|
|
|
86
86
|
) -> JSONObject:
|
|
87
87
|
return self.app_publish(profile=profile, app_key=app_key, payload=payload or {})
|
|
88
88
|
|
|
89
|
-
@tool_cn_name("应用列表")
|
|
90
89
|
def app_list(self, *, profile: str, query: str = "", keyword: str = "", ship_auth: bool = False) -> JSONObject:
|
|
91
90
|
"""List current-user visible apps in the selected workspace."""
|
|
92
91
|
def runner(session_profile, context):
|
|
@@ -113,7 +112,7 @@ class AppTools(ToolBase):
|
|
|
113
112
|
response["raw"] = result
|
|
114
113
|
return response
|
|
115
114
|
|
|
116
|
-
return self._run(profile, runner)
|
|
115
|
+
return self._run(profile, runner, tool_name='应用列表')
|
|
117
116
|
|
|
118
117
|
def _filter_visible_apps(self, items: list[JSONObject], query: str) -> list[JSONObject]:
|
|
119
118
|
"""Filter current-user visible apps locally without calling admin search APIs."""
|
|
@@ -146,7 +145,6 @@ class AppTools(ToolBase):
|
|
|
146
145
|
return item
|
|
147
146
|
return None
|
|
148
147
|
|
|
149
|
-
@tool_cn_name("应用搜索")
|
|
150
148
|
def app_search(self, *, profile: str, keyword: str = "", page_num: int = 1, page_size: int = 50) -> JSONObject:
|
|
151
149
|
"""Search apps by keyword in name/title using backend search API.
|
|
152
150
|
Useful for finding BUG-related apps across all packages."""
|
|
@@ -226,9 +224,8 @@ class AppTools(ToolBase):
|
|
|
226
224
|
"source": source,
|
|
227
225
|
}
|
|
228
226
|
|
|
229
|
-
return self._run(profile, runner)
|
|
227
|
+
return self._run(profile, runner, tool_name='应用搜索')
|
|
230
228
|
|
|
231
|
-
@tool_cn_name("应用详情")
|
|
232
229
|
def app_get(self, *, profile: str, app_key: str) -> JSONObject:
|
|
233
230
|
"""执行应用相关逻辑。"""
|
|
234
231
|
self._require_app_key(app_key)
|
|
@@ -294,9 +291,8 @@ class AppTools(ToolBase):
|
|
|
294
291
|
},
|
|
295
292
|
}
|
|
296
293
|
|
|
297
|
-
return self._run(profile, runner)
|
|
294
|
+
return self._run(profile, runner, tool_name='应用详情')
|
|
298
295
|
|
|
299
|
-
@tool_cn_name("应用基础信息")
|
|
300
296
|
def app_get_base(self, *, profile: str, app_key: str, include_raw: bool = False) -> JSONObject:
|
|
301
297
|
"""执行应用相关逻辑。"""
|
|
302
298
|
self._require_app_key(app_key)
|
|
@@ -344,9 +340,8 @@ class AppTools(ToolBase):
|
|
|
344
340
|
response["summary"] = compact
|
|
345
341
|
return response
|
|
346
342
|
|
|
347
|
-
return self._run(profile, runner)
|
|
343
|
+
return self._run(profile, runner, tool_name='应用基础信息')
|
|
348
344
|
|
|
349
|
-
@tool_cn_name("更新应用基础信息")
|
|
350
345
|
def app_update_base(self, *, profile: str, app_key: str, payload: JSONObject) -> JSONObject:
|
|
351
346
|
"""执行应用相关逻辑。"""
|
|
352
347
|
self._require_app_key(app_key)
|
|
@@ -360,9 +355,8 @@ class AppTools(ToolBase):
|
|
|
360
355
|
target="app base settings",
|
|
361
356
|
)
|
|
362
357
|
|
|
363
|
-
return self._run(profile, runner)
|
|
358
|
+
return self._run(profile, runner, tool_name='更新应用基础信息')
|
|
364
359
|
|
|
365
|
-
@tool_cn_name("应用表单结构")
|
|
366
360
|
def app_get_form_schema(
|
|
367
361
|
self,
|
|
368
362
|
*,
|
|
@@ -401,9 +395,8 @@ class AppTools(ToolBase):
|
|
|
401
395
|
response["summary"] = compact
|
|
402
396
|
return response
|
|
403
397
|
|
|
404
|
-
return self._run(profile, runner)
|
|
398
|
+
return self._run(profile, runner, tool_name='应用表单结构')
|
|
405
399
|
|
|
406
|
-
@tool_cn_name("应用编辑版本号")
|
|
407
400
|
def app_get_edit_version_no(self, *, profile: str, app_key: str) -> JSONObject:
|
|
408
401
|
"""执行应用相关逻辑。"""
|
|
409
402
|
self._require_app_key(app_key)
|
|
@@ -412,9 +405,8 @@ class AppTools(ToolBase):
|
|
|
412
405
|
result = self.backend.request("GET", context, f"/app/{app_key}/editVersionNo")
|
|
413
406
|
return {"profile": profile, "ws_id": session_profile.selected_ws_id, "app_key": app_key, "result": result}
|
|
414
407
|
|
|
415
|
-
return self._run(profile, runner)
|
|
408
|
+
return self._run(profile, runner, tool_name='应用编辑版本号')
|
|
416
409
|
|
|
417
|
-
@tool_cn_name("应用流程基础信息")
|
|
418
410
|
def app_get_apply_base_info(self, *, profile: str, app_key: str, list_type: int) -> JSONObject:
|
|
419
411
|
"""执行应用相关逻辑。"""
|
|
420
412
|
self._require_app_key(app_key)
|
|
@@ -431,9 +423,8 @@ class AppTools(ToolBase):
|
|
|
431
423
|
"result": result,
|
|
432
424
|
}
|
|
433
425
|
|
|
434
|
-
return self._run(profile, runner)
|
|
426
|
+
return self._run(profile, runner, tool_name='应用流程基础信息')
|
|
435
427
|
|
|
436
|
-
@tool_cn_name("更新应用流程配置")
|
|
437
428
|
def app_update_apply_config(self, *, profile: str, app_key: str, payload: JSONObject) -> JSONObject:
|
|
438
429
|
"""执行应用相关逻辑。"""
|
|
439
430
|
self._require_app_key(app_key)
|
|
@@ -452,9 +443,8 @@ class AppTools(ToolBase):
|
|
|
452
443
|
target="app apply list configuration",
|
|
453
444
|
)
|
|
454
445
|
|
|
455
|
-
return self._run(profile, runner)
|
|
446
|
+
return self._run(profile, runner, tool_name='更新应用流程配置')
|
|
456
447
|
|
|
457
|
-
@tool_cn_name("更新应用表单结构")
|
|
458
448
|
def app_update_form_schema(self, *, profile: str, app_key: str, payload: JSONObject) -> JSONObject:
|
|
459
449
|
"""执行应用相关逻辑。"""
|
|
460
450
|
self._require_app_key(app_key)
|
|
@@ -468,9 +458,8 @@ class AppTools(ToolBase):
|
|
|
468
458
|
target="app form schema",
|
|
469
459
|
)
|
|
470
460
|
|
|
471
|
-
return self._run(profile, runner)
|
|
461
|
+
return self._run(profile, runner, tool_name='更新应用表单结构')
|
|
472
462
|
|
|
473
|
-
@tool_cn_name("应用编辑完成")
|
|
474
463
|
def app_edit_finished(self, *, profile: str, app_key: str, payload: JSONObject) -> JSONObject:
|
|
475
464
|
"""执行应用相关逻辑。"""
|
|
476
465
|
self._require_app_key(app_key)
|
|
@@ -480,9 +469,8 @@ class AppTools(ToolBase):
|
|
|
480
469
|
result = self.backend.request("POST", context, f"/app/{app_key}/editFinished", json_body=body)
|
|
481
470
|
return {"profile": profile, "ws_id": session_profile.selected_ws_id, "app_key": app_key, "result": result}
|
|
482
471
|
|
|
483
|
-
return self._run(profile, runner)
|
|
472
|
+
return self._run(profile, runner, tool_name='应用编辑完成')
|
|
484
473
|
|
|
485
|
-
@tool_cn_name("创建应用")
|
|
486
474
|
def app_create(self, *, profile: str, payload: JSONObject) -> JSONObject:
|
|
487
475
|
"""执行应用相关逻辑。"""
|
|
488
476
|
body = self._require_dict(payload)
|
|
@@ -528,9 +516,8 @@ class AppTools(ToolBase):
|
|
|
528
516
|
assert last_error is not None
|
|
529
517
|
raise last_error
|
|
530
518
|
|
|
531
|
-
return self._run(profile, runner)
|
|
519
|
+
return self._run(profile, runner, tool_name='创建应用')
|
|
532
520
|
|
|
533
|
-
@tool_cn_name("删除应用")
|
|
534
521
|
def app_delete(self, *, profile: str, app_key: str) -> JSONObject:
|
|
535
522
|
"""执行应用相关逻辑。"""
|
|
536
523
|
self._require_app_key(app_key)
|
|
@@ -543,9 +530,8 @@ class AppTools(ToolBase):
|
|
|
543
530
|
target="app configuration",
|
|
544
531
|
)
|
|
545
532
|
|
|
546
|
-
return self._run(profile, runner)
|
|
533
|
+
return self._run(profile, runner, tool_name='删除应用')
|
|
547
534
|
|
|
548
|
-
@tool_cn_name("发布应用")
|
|
549
535
|
def app_publish(self, *, profile: str, app_key: str, payload: JSONObject) -> JSONObject:
|
|
550
536
|
"""执行应用相关逻辑。"""
|
|
551
537
|
self._require_app_key(app_key)
|
|
@@ -555,7 +541,7 @@ class AppTools(ToolBase):
|
|
|
555
541
|
result = self.backend.request("POST", context, f"/app/{app_key}/publish", json_body=body)
|
|
556
542
|
return {"profile": profile, "ws_id": session_profile.selected_ws_id, "app_key": app_key, "result": result}
|
|
557
543
|
|
|
558
|
-
return self._run(profile, runner)
|
|
544
|
+
return self._run(profile, runner, tool_name='发布应用')
|
|
559
545
|
|
|
560
546
|
def _require_app_key(self, app_key: str) -> None:
|
|
561
547
|
"""执行内部辅助逻辑。"""
|